首页 / 数据库 / MySQL / 如何使用 RMAN 增量备份恢复 data guard log gap(日志断档)
主库查询最小scn 信息: SQL> col current_scn for 999999999999999 SQL> SELECT CURRENT_SCN FROM V$DATABASE;
select min(fhscn) from x$kcvfh;
select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != "READ ONLY" ; CURRENT_SCN ---------------- 12614205226673
MIN(FHSCN) ---------------- 12614205076072
MIN(F.FHSCN) ---------------- 12614205076072
+++++++++++++++++++++++++++++++++++++++++++++++= 1.----备库取消归档应用 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 2.----备库确定 lowest scn col current_scn for 99999999999999 SELECT CURRENT_SCN FROM V$DATABASE; select min(fhscn) from x$kcvfh; select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != "READ ONLY" ;取上述查询中的最小值SQL> col current_scn for 999999999999999999 SQL> SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN ------------------- 12611050666604
SQL> select min(fhscn) from x$kcvfh;
MIN(FHSCN) ---------------- 12611050666605
SQL> select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != "READ ONLY" ; 2 3
MIN(F.FHSCN) ---------------- 12611050666605 3.-----on primary db 端根据第2步中获取的最小scn 来进行增量备份 BACKUP INCREMENTAL FROM SCN 12611050666604 DATABASE FORMAT "/lixora/ForStandby_%U" tag "FORSTANDBY"; 4.-----拷贝备份到 备库 $scp ForStandby_07pqprm4_1_1 192.168.0.10:/tmp 5.----on standby db 在备库端注册备份片,注意用户属主,权限 RMAN> CATALOG START WITH "/lixora/ForStandby"; 6.----执行恢复 RMAN> RECOVER DATABASE NOREDO; 7.-----on primary db 生成新的standby 控制文件 RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT "/lixora/ForStandbyCTRL.bck"; 8.----把主库端生成的standby 控制文件拷贝到备库,注意用户属主,权限RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT "/lixora/ForStandbyCTRL.bck";
scp /lixora/ForStandbyCTRL.bck 192.168.0.10:/tmp 9.------备份备库数据文件信息,用于在恢复新的standby 控制文件后比对 spool datafile_names_step8.txt set lines 200 col name format a60 select file#, name from v$datafile order by file# ; spool off 10.------on standby Db 恢复新的standby 控制文件RMAN> SHUTDOWN IMMEDIATE ; RMAN> STARTUP NOMOUNT; RMAN> RESTORE STANDBY CONTROLFILE FROM "/tmp/ForStandbyCTRL.bck"; 11.-----更新控制文件中的数据文件信息 使新的standby 控制文件生效 RMAN> SHUTDOWN; RMAN> STARTUP MOUNT;CATALOG START WITH "+DATA/zhglptdg/datafile/"; 12.------on primary db。确保在备库发生日志gap 后,主库没有添加过新的数据文件。 SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 12611050666604;如果有记录,则不能进行witch 操作,可以参考一下文档来恢复: Note 1531031.1 Steps to perform for Rolling forward a standby database using RMAN incremental backup when datafile is added to primary 13.-----重命名数据文件 RMAN> SWITCH DATABASE TO COPY;
14.-----再次确认在恢复增量备份片后主库和备库scn 差距没有太大 SQL> col current_scn for 99999999999999 SELECT CURRENT_SCN FROM V$DATABASE;
select min(fhscn) from x$kcvfh;
select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != "READ ONLY" ;
CURRENT_SCN --------------- 12614205662375
MIN(FHSCN) ---------------- 12614205076072
MIN(F.FHSCN) ---------------- 12614205076072 15.------ On standby database, 清理standby 日志组 select * from v$standby_log;SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1; SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2; SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3; 16.------启动redo data apply SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;如果遇到一些由于设置 nologgling 而导致部分数据丢失,可以安装下述方法来进行恢复 To resolve NOLOGGING operations only, see Note 958181.1. In addition to this information, see the online documentation: 10.2: http://download.Oracle.com/docs/cd/B19306_01/server.102/b14239/scenarios.htm#CIHIAADC 11.1: http://download.oracle.com/docs/cd/B28359_01/server.111/b28294/rman.htm#SBYDB00759 11.2: http://download.oracle.com/docs/cd/E11882_01/server.112/e17022/rman.htm#CIHIAADC 后记 如果要启用实时应用,需要在备库添加standby redo log,大小应和主库一样,且比主库多一组; ALTER DATABASE add standby LOGFILE GROUP 6 size 500M; ALTER DATABASE add standby LOGFILE GROUP 7 size 500M; ALTER DATABASE add standby LOGFILE GROUP 8 size 500M; ALTER DATABASE add standby LOGFILE GROUP 9 size 500M; 启用命令: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE; 具体内容参见:Oracle 10g standby database 实时应用 redo 数据 http://www.linuxidc.com/Linux/2014-12/110740.htm如何确保dg 已经正常,后台日志类似如下: Mon Dec 22 10:03:04 CST 2014 RFS[1]: Archived Log: "+DATA/lixora/archivelog/1_23094_790186477.dbf" Mon Dec 22 10:03:25 CST 2014 Media Recovery Log +DATA/lixora/archivelog/1_23094_790186477.dbf Media Recovery Waiting for thread 1 sequence 23095 (in transit) Mon Dec 22 10:05:53 CST 2014 RFS[2]: Archived Log: "+DATA/lixora/archivelog/1_23095_790186477.dbf" Primary database is in MAXIMUM PERFORMANCE mode RFS[2]: No standby redo logfiles of size 1024000 blocks exist Mon Dec 22 10:05:55 CST 2014 Media Recovery Log +DATA/zhglptdg/archivelog/1_23095_790186477.dbf Media Recovery Waiting for thread 1 sequence 23096 (in transit) Mon Dec 22 10:05:57 CST 2014 RFS[2]: Archived Log: "+DATA/lixora/archivelog/1_23096_790186477.dbf" Primary database is in MAXIMUM PERFORMANCE mode RFS[2]: No standby redo logfiles of size 1024000 blocks exist Mon Dec 22 10:06:00 CST 2014 Media Recovery Log +DATA/lixora/archivelog/1_23096_790186477.dbf Media Recovery Waiting for thread 1 sequence 23097 (in transit)类似一下日志,表明日志只是传过来,但是没有应用: Tue Dec 16 17:28:48 CST 2014 Primary database is in MAXIMUM PERFORMANCE mode RFS[3]: Successfully opened standby log 7: "+DATA/lixora/onlinelog/group_7.360.857131345" Tue Dec 16 18:57:12 CST 2014 Primary database is in MAXIMUM PERFORMANCE mode RFS[3]: Successfully opened standby log 8: "+DATA/lixora/onlinelog/group_8.361.857131375" Tue Dec 16 20:12:13 CST 2014 Primary database is in MAXIMUM PERFORMANCE mode RFS[3]: Successfully opened standby log 7: "+DATA/lixora/onlinelog/group_7.360.857131345" Tue Dec 16 21:40:39 CST 2014 Primary database is in MAXIMUM PERFORMANCE mode RFS[3]: Successfully opened standby log 8: "+DATA/lixora/onlinelog/group_8.361.857131375"如何可以确保dg 正常: 1)v$archive_log.applied 是否为yes 2)主库切换日志:ALTER system swtich logfile; 看备库v$database.CURRENT_SCN 是否有增长?--------------------------------------推荐阅读 --------------------------------------RMAN 配置归档日志删除策略 http://www.linuxidc.com/Linux/2013-11/92670.htmOracle基础教程之通过RMAN复制数据库 http://www.linuxidc.com/Linux/2013-07/87072.htmRMAN备份策略制定参考内容 http://www.linuxidc.com/Linux/2013-03/81695.htmRMAN备份学习笔记 http://www.linuxidc.com/Linux/2013-03/81892.htmOracle数据库备份加密 RMAN加密 http://www.linuxidc.com/Linux/2013-03/80729.htm--------------------------------------分割线 --------------------------------------本文永久更新链接地址