(原创--网上办法经过改良)系统重装后,如何快速的回复oracle 10g(测试环境:windows server 2003 sp1+Oracle 10g)

一、事前准备工作:
    把旧的ORACLE重命名,比如oracle_back,再重新安装ORACLE,
要求:目录,sid等跟原来的一模一样,利于恢复。
二、安装Oracle数据库软件

    只安装ORACLE(可以通过高级安装---只安装数据库软件),不创建数据库,如果已经创建了数据库,
用" 开始 ==>所有程序==>Oracle - OraDb10g_home1==>Database Configuration Assistant" 删除掉.

我的数据库的实例名为Orcl,下面为整个恢复过程
二、回复操作:

开始

C:/Documents and Settings/gxlineji>oradim -new -sid Orcl
实例已创建。
C:/Documents and Settings/gxlineji>set ORACLE_SID=Orcl

C:/Documents and Settings/gxlineji>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 2月 7 22:54:32 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'E:/ORACLE/PRODUCT/10.2.0/DB_1/DATABASE/INITOrcl.ORA'

把原目录下的INITHWDB.ORA复制到提示的路径下INITOrcl.ORA.再次startup,

SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file 'E:/oracle/product/10.2.0/db_1/dbs/spfileOrcl.ora'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????

用旧目录下的spfileOrcl.ora,代替现有的spfileOrcl.ora文件

将旧目录下的10.2.0的admin,flash_recovery_area,oradata这三个文件夹全部拷贝到新的下面,因为安装数据库软件,这三个文件不会被创建
.再startup,OK大功告成!

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  314572800 bytes
Fixed Size                  1248768 bytes
Variable Size              83886592 bytes
Database Buffers          222298112 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn scott/tiger
已连接。


按照上面的步骤,此时虽然能导出oracle数据库的文件了,但是发现net manager中并没有实例名,网上说照下面的办,但是我没有成功.
所以才用的导出功能。(
(现在可以连接我们自己的用户了,比如conn sthy/sthy),导出也可以了,可以再sqlplus中导出数据,导出一个dmp的,然后重做系统,重新安装完全的oracle,之后导入数据库,就ok了)


---网上找的办法,没试验成功。-开始-----
现在可以连接ORACLE了,但有一个缺点,就是每次连接前都要设置环境变量ORACLE_SID,使用的DOS命令:SET ORACLE_SID=HWDB
为了省去这个麻烦,必须配置环境变量.

将以下内容保持成一个后缀名为reg的文件(文件名随便起),然后双击,即可将信息导入到注册表中。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"ORACLE_SID"="HWDB"

 

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1]
"ORACLE_SID"="HWDB"

 

为了确保注册表里的ORACLE_SID都正确设置了,可以搜索注册表,找出所有的ORACLE_SID,
如果发现有设置不正确的,将值修改为正确值("ORACLE_SID"="SID"改为"ORACLE_SID"="HWDB").

重新计算机,OK!!


---网上找的办法,结束----------------

---2012-9-13-  Start--

今天又碰到这个问题了,研究了2个小时终于解决了,继续写哈,这次不用倒dmp了,直接恢复到原来的数据库了,不用重新安装数据库

1、重新建立listener,监听程序,开始菜单--oracle--配置和移植工具--net configuration assistant--一路默认就行了

2、建立实例名。开始菜单--oracle--配置和移植工具--net manager --服务命名。。其中服务名和本地连接名 均为之前的的实例名,主机名填写本机计算机名称,端口号1521

3、这样,一般就启动起来了,但是有一个问题,这样每次重启计算机都需要在sqlplus 中startup,这种情况算windows下oracle假启动问题,解决方法有以下两种(http://zhidao.baidu.com/question/113949114.html)

  a)

 

开始→Oracle - OraDb10g_home1→Configuration and Migration Tools

 

→Administration Assistant for Windows→【把菜单全部打开找到你的database下有你建的数据库实例名】→【选中实例名右键】

 

→startup/shutdown option→【把第一个选项选中,这个选项的作用就是启动服务时自动启动实例】。

 

说明:我上面说的只是我的电脑上的oracle设置方法,具体路径可能会和你的不一样,请参照你自己的实际情况修改,最终目的就是找到【Administration Assistant for Windows】。

  b)因为实例的启动方式是手动需要改成auto啊
  1.编辑此实例,启动方式改为自动
   oradim -EDIT -SID test -STARTMODE auto
  2.编辑此实例,启动方式改为手动
   oradim -EDIT -SID test -STARTMODE manual

 

 

 

posted @ 2012-05-30 22:12  倚楼听雨  阅读(444)  评论(0编辑  收藏  举报