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

系统环境:
操作系统:Window2000 +
Oracle版本: 9.0.1.1.1
RMAN恢复目录的机器:catalog
已损坏的数据库主机为:old_host
要还原到的数据库主机为:new_host
 
使用RMAN对已损坏数据库进行异机还原的前提条件:
1、  old_host上的数据库已使用RMAN进行了备份
2、  old_host上的数据库的PFILE或SPFILE已做了备份
3、  catalog上的恢复目录完好,并且可用,如果不可用,先恢复恢复目录数据库
4、  备份服务器上的备份数据完好,并且可用
5、  确保new_host机器上装有的Oracle版本与old_host机器上的一致
6、  在new_host上创建dba组和与old_host相同的Oracle用户。将\data的可写权限给Oracle用户。确定new_host上有足够的硬盘空间存放新的datafile及archive 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_dest、core_dump_dest、user_dump_dest、log_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要还原数据库SID和RMAN数据配置出TNS和Listener,
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 newname和switch 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.       配listener和tns, 这样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/196700/viewspace-738402/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/196700/viewspace-738402/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值