|
RMAN 异机完全恢复(ASM)
Author:Jarwang(王重东) Date:2009-8-26
本例环境:操作系统rhel5.3、数据库10g2,ASM存储+archive模式。
本例在假记原来的机器彻底over 的情况,所尝试做的rman 恢复。
a) 在机器A上做一个ramn完全备份。这个是前提条件,有点废话。^_^
RMAN> run{
configure controlfile autobackup on;
backup spfile format ‘/opt/backup/spfile.bak;
backup full database format '/opt/backup/prodfull%u_%s_%p' tag 'prodfullbk'
include current controlfile;
}
b) 在机器B上安装数据库软件及配置SID环境,但不用创建数据库。
# mkdir –p $ORACLE_BASE/admin/$ORACLE_SID/adump
# mkdir $ORACLE_BASE/admin/$ORACLE_SID/bdump
# mkdir $ORACLE_BASE/admin/$ORACLE_SID/cdump
# mkdir $ORACLE_BASE/admin/$ORACLE_SID/bpdump
# mkdir $ORACLE_BASE/admin/$ORACLE_SID/udump
# mkdir $ORACLE_BASE/admin/$ORACLE_SID/pfile
c) 在机器B上配置好ASM环境
c.1 oracleasm配置
c.2 fdisk分区
以同样的方式给另一个磁盘分区。
c.3 建立ASM磁盘
查看是否创建成功:/etc/init.d/oracleasm listdisks
c.3 启动OCSSD
d) 在机器B上配置ASM实例。运行DBCA
注:ASM实例、ASM磁盘组保持一致(如不同,请修改后面的参数文件),并重启ASM实
例。
e) 将机器A上备份好的参数文件、控制文件、数据文件复制到机器B的/opt/backup下,并
执行restore还原参数文件。
RMAN>startup nomount
RMAN>restore spfile from ‘/opt/backup/spfile.bak’
SQL>create pfile from spfile
SQL>startup force nomount;
f) 机器B上执行restore还原控制文件。
RMAN>restore controlfile from ‘/opt/backup/controlfile.ctl.bak’;
RMAN>startup force mount;
g) 机器B上并执行restore数据文件。
先查询一下rman是否找到了备份文件
RMAN>list backup
RMAN>restore database;
错误一:如果显示为空,可尝试从静态文件启动,然后重新还原控制文件。
SQL>create pfile from spfile
RMAN>startup mount pfile =’$ORACLE_HOME/dbs/initSID.ora’
如果上述方法无效,建议在rman备份加上include current controlfile 。
错误二:如果显示备份为expired,可以强行更改为unavailable。
RMAN>change backup of database tag=' fullbk ' unavailable
错误三:如果显示ora-01180、ora-0110错误
请仔细对比一下list backup中的文件名与备份文件名是否一致?偶在这边折腾好久。^_^
h)机器B上并执行recover数据文件。
RMAN>recover database noredo
i) 机器B上并执行不完全恢复。
由于前面的备份脚本并没备份归档日记,也没手工备份联机重做日志文件。所这边只能做
不完全恢复了,并打一个新的场景。
SQL>startup mount;
SQL>recover database until cancel
#输入:AUTO
SQL>recover database until cancel
#输入:CANCEL
SQL>alter database open resetlogs |
|