Dataguard备机的差异备份还原

数据库服务器,主备之间dataguard,主服务器每天另外做全备份,全备份完成的同时删除掉备份成功的归档日志,结果因为备份磁盘的空间不足,就删除了除当天的所有备份,想想也没有什么,反正都有最新的全备,但没有想到了是dataguard里面的备机上面缺日志,日子应用不成功了。
还原完整备份太麻烦,就采用差异备份方式。
1.找出备份机器最后一个检查点;
SQL> select name,file#,checkpoint_change# from v$datafile order by checkpoint_change#;
     FILE# CHECKPOINT_CHANGE#
---------- ------------------
/u01/app/oracle/oradata/dbdatabase/system01.dbf     1        104990427

2.在主机上做这个检查点后差异备份
RMAN> run   
2> {
3> allocate channel c1 device type disk;
4> backup as compressed backupset incremental from scn 104990427 database format '/u01/nasbackup/%U';
5> release channel c1;
6> }

using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=578 device type=DISK
...............
piece handle=/u01/nasbackup/d8uj8tkd_1_1 tag=TAG20191212T193312 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-DEC-19

released channel: c1

RMAN> exit

3.将主机的差异备份拷贝到备机
oracle@suse12sp3:/u01/nasbackup> scp d* 10.0.0.225:/nasbackup
..........
Password: 

4.在备机上还原控制文件
RMAN> shutdown immediate;
RMAN> startup nomount;
RMAN> restore standby controlfile from '/u01/nasbackup/d8uj8tkd_1_1';

Starting restore at 12-DEC-19
using channel ORA_DISK_1
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/u01/app/oracle/oradata/dbdatabase/control01.ctl
output file name=/u01/app/oracle/oradata/dbdatabase/control02.ctl
Finished restore at 12-DEC-19

5.备机切换到mount模式
RMAN> alter database mount standby database;
RMAN> catalog start with '/u01/nasbackup';
searching for all files that match the pattern /u01/nasbackup
........

Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /u01/nasbackup/d8uj8tkd_1_1
.........

6.还原差异备份数据
RMAN> recover database;
结果失败,提示14号数据文件需要恢复。

RMAN> restore database;
Starting restore at 12-DEC-19
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00014 to /u01/app/oracle/oradata/dbdatabase/system04.dbf
channel ORA_DISK_1: reading from backup piece /u01/nasbackup/d7uj8t7o_1_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00014 to /u01/app/oracle/oradata/dbdatabase/system04.dbf
channel ORA_DISK_1: reading from backup piece /u01/nasbackup/d7uj8t7o_1_1
channel ORA_DISK_1: errors found reading piece handle=/u01/nasbackup/d7uj8t7o_1_1
channel ORA_DISK_1: failover to piece handle=/u01/nasbackup/d7uj8t7o_1_1_1 tag=TAG20191212T193312
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:03:45
failover to previous backup
接下来继续还原差异备份。
RMAN> restore database;
完成。

7.重启并切换到standby模式应用新的归档日志
SQL> shutdown immediate;
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> alter database recover managed standby database using current logfile disconnect from session;
日志可以正常应用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值