(原创--网上办法经过改良)系统重装后,如何快速的回复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