使用RMAN对数据库进行异机还原

 

系统环境:

操作系统:Window2000 +

Oracle版本: 9.0.1.1.1

RMAN恢复目录的机器:catalog

已损坏的数据库主机为:old_host

要还原到的数据库主机为:new_host

 

使用RMAN对已损坏数据库进行异机还原的前提条件:

1、  old_host上的数据库已使用RMAN进行了备份

2、  old_host上的数据库的PFILESPFILE已做了备份

3、  catalog上的恢复目录完好,并且可用,如果不可用,先恢复恢复目录数据库

4、  备份服务器上的备份数据完好,并且可用

5、  确保new_host机器上装有的Oracle版本与old_host机器上的一致

6、  new_host上创建dba组和与old_host相同的Oracle用户。将\data的可写权限给Oracle用户。确定new_host上有足够的硬盘空间存放新的datafilearchive log file

7、  修改.profile文件中相关的Oracle环境变量,ORACLE_SID保持与old_host中一致

8、还原前需收集的信息

   Oracle数据库SID DBID.

   Oracle数据库在线日志文件全路径

   Oraexp 路径

   rman用户 rman 用户的表空间 (以导入方式恢复恢复目录时要用)

   源数据库的参数文件pfile文件

RMAN异机还原的步骤:

1、  new_host上安装Oracle备份代理,将从old_host备份到服务器上的数据库备份,手工还原到new_host上(oraexp的路径一定要一样)。

2、  创建相关的目录。通常所需建立的目录为background_dump_destcore_dump_destuser_dump_destlog_archive_dest

参考脚本: createdirectory.txt

3、  创建参数文件pfile,要和源数据库一致

old_host$ORACLE_HOME\dbs下的initSID.ora文件拷至new_host$ORACLE_HOME\dbs下。如果initSID.ora中有ifile='xxx.ora',则将xxx.ora也进行拷贝。Oracle9也可能用spinitSID.ora

4、  创建密码文件pwdsid.ora

使用orapwd.exe命令,创建口令文件pwdSID.ora,命令格式如下:

    orapwd.exe  file=e:\oracle\ora90\database\pwdSID.ora  password=change_on_install entries=5

    参考脚本: createpwdfile.txt

5、  创建windows服务

通过oradim.exe命令,在服务里生成一个新的实例管理服务,启动方式为手工:

set ORACLE_SID=SID

e:\oracle\ora90\bin\oradim -new  -sid SID -startmode m –pfile e:\oracle\ora90\database\initSID.ora

参考脚本: createservice.txt

6、  配置listener tns

new_host上为Oracle要还原数据库SIDRMAN数据配置出TNSListener

tns文件为:e:\Oracle\Ora90\network\ADMIN\ tnsnames.ora

listener 文件e:\Oracle\Ora90\network\ADMIN\ listener.ora

7、  从前面创建的pfile里创建spfile.

Windows命令行中输入:

set ORACLE_SID=SID

sqlplus /nolog

connect sys/change_on_install

create spfile from pfile=’ e:\oracle\ora90\database\initwar.ora’;

startup nomount;

exit

8、  运行恢复脚本, 恢复控制文件和数据文件:(其中的一些数据可从恢复目录中查到)

> rman

> catalog 用户名/密码@rman

> set dbid 21132232(原目标数据库的dbid;

> target 用户名/密码@SID

> listbackup (应该可以列出备份集的信息)

run {

shutdown immediate;

startup nomount;

restore controlfile;

}

Run {

set newname for datafile 1 to ‘数据文件1的新路径’;

set newname for datafile 2 to ‘数据文件2的新路径’;

set newname for datafile 3 to ‘数据文件3的新路径’;

Startup mount;

restore database;

switch datafile all;

recover database; (可能有错误信息,因为online 日志还没设置)

}

alter tablespace temp add tempfile '/u01/oradata/orcl/temp01.dbf' size 20971520 reuse autoextend on nest 65560 maxsize 32767m; 重建临时表空间

 

如果恢复到与原机相同的位置,不需要set newnameswitch datafile

10、重置在线日志,启动数据库.

sqlplus /nolog

connect sys/change_on_install@SID as sysdba;

alter database rename file ‘旧的redolog1文件路径’ to ‘新的redolog1文件路径’;

alter database open resetlogs;

(如果恢复到与原机相同的位置,不需要更改redolog文件路径在更改redolog文件路径时可能旧的redolog文件路径必须存在)

LINUX/UNIX 平台异机还原基本和Window 一致,只是不需要步骤5

总体思路同样是:

1.       配环境变量,建相关目录等,

2.       listenertns, 这样sqlplus /nolog connect / as sysdba. 就可以连接该服务了。

3.       生成pfile 文件,就可以 startup nomount 一个实例

4.       nomount 状态下,还原控制文件,然后就可以mount 数据库了。

5.       mount状态下, 还原数据文件,恢复数据库如果联机日志不存在,需要步骤6

6.       生成新的联机日志,然后打开数据库并重置日志.alter database open resetlogs.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7755871/viewspace-735527/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7755871/viewspace-735527/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值