oracle 11g 从rman全备中恢复控制文件,【Rman全备迁移恢复11G r1数据库详情】

4)恢复控制文件

RMAN> shutdown immediate;

Oracle instance shut down

RMAN> startup nomount;

connected to target database (not started)

Oracle instance started

Total System Global Area     167772160 bytes

Fixed Size                     1266392 bytes

Variable Size                 62917928 bytes

Database Buffers             100663296 bytes

Redo Buffers                   2924544 bytes

RMAN> restore controlfile from '/mnt/backup/cf_201108106_07lo1lg8_1_1';

Starting restore at 10-AUG-11

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=101 devtype=DISK

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:02

output filename=/opt/oracle/oradata/orcl/control01.ctl

output filename=/opt/oracle/oradata/orcl/control02.ctl

output filename=/opt/oracle/oradata/orcl/control03.ctl

Finished restore at 10-AUG-11

5)将数据启动到mount状态

RMAN> alter database mount;

database mounted

released channel: ORA_DISK_1

6)恢复数据库

后面出现的错误是指个别日志不同步,所以最好就是把归档一起拷贝全

RMAN> restore database;

在一次恢复时,报错了如下:

channel c1: restore complete, elapsed time: 06:01:33

channel c2: ORA-19870: ?????? /mybak/full_db_ndmkqhpj_1_1_20110824 ???

ORA-19502: ?? "/opt/oradata/orcl/orcl/undotbs02.dbf", ??? 1522561 (???=8192) ???????

ORA-27072: ?? I/O ??

Linux-x86_64 Error: 2: No such file or directory

Additional information: 4

Additional information: 1522561

Additional information: 73728

failover to previous backup

事实是系统磁盘不足了,可以利用set newname 命令,直接恢复未恢复的数据文件哦!。

后来重新恢复,就全部数据文件都用了set newname 命令转移恢复的数据文件位置

命令如下:

run{

allocate channel c1 type disk;

allocate channel c2 type disk;

set newname for datafile '/opt/oradata/orcl/orcl/system01.dbf' to '/mnt/oradata/orcl/system01.dbf';

set newname for datafile '/opt/oradata/orcl/orcl/sysaux01.dbf' to '/mnt/oradata/orcl/sysaux01.dbf';

………………【其他文件这里省略了,要对应好各个数据文件的原始路径哦】

restore database;

switch datafile all;【因为set newname了,要转换下数据文件位置】

release channel c1;

release channel c2;

}

RMAN>recover database;【报错了,正常的,数据库不知道恢复到哪个scn啥的】

可以如下操作:

RMAN>list backup;【查看备份集里面最大的SCN号,然后恢复】

RMAN>recover database until scn 12006846;

还可以不完整恢复:【当报如下的错误时】

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 08/28/2011 09:18:18

RMAN-06556: datafile 1 must be restored from backup older than SCN 7355241936

可以直接 alter database open resetlogs命令打开数据库。

RMAN> alter database open resetlogs;

database opened

恢复完成,可以打开了

7)以resetlogs打开数据库

RMAN>alter database open resetlogs;

8)之后可以根据情况重建temp表空间;【11G数据库,temp空间会在 如上命令执行时,在默认数据库目录生产个新的tmp数据文件的】

RMAN备份迁移数据库 异地恢复总结:

1.做好全备脚本,最好备份过程日志也要加上,方便恢复时查看相关参数等;

2.一定要备份归档,备份前,可以做个日志切换,如果当时没备份,可以复制归档到备份机;

3.rman迁移恢复,还是同版本比较好顺利迁移解决;

【如有错误,请指正,谢谢】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值