dataguard丢失归档案例(ARCHIVE GAP)
Dec052013
在本人虚拟机上有一套11.2.0.3.0版本的DG环境,用于做一些相关的测试,在平时需要用到11.2.0.3.0版本的数据库时,都是将主库打开应用,备库的虚拟机一直都是挂起状态,前几天用到DG环境,在将备库起来后发现少了很多的归档没有传输过来,正常在备库可以访问后,主库会自动向备库传出备库需要的归档,这次竟然没有传,尝试让备库应用日志,也不会传输这些归档。
Fri Nov 29 16:26:12 2013 ALTER DATABASE recover managed standby database using current logfile disconnect Attempt to start background Managed Standby Recovery process (stream) Fri Nov 29 16:26:12 2013 MRP0 started with pid=22, OS id=24980 MRP0: Background Managed Standby Recovery process started (stream) Serial Media Recovery started Managed Standby Recovery starting Real Time Apply Waiting for all non-current ORLs to be archived... All non-current ORLs have been archived. Clearing online redo logfile 1 /u01/app/oracle/oradata/stream/redo01.log Clearing online log 1 of thread 1 sequence number 139 Clearing online redo logfile 1 complete Clearing online redo logfile 2 /u01/app/oracle/oradata/stream/redo02.log Clearing online log 2 of thread 1 sequence number 137 Clearing online redo logfile 2 complete Clearing online redo logfile 3 /u01/app/oracle/oradata/stream/redo03.log Clearing online log 3 of thread 1 sequence number 138 Clearing online redo logfile 3 complete Media Recovery Waiting for thread 1 sequence 110 Fetching gap sequence in thread 1, gap sequence 110-135 Completed: ALTER DATABASE recover managed standby database using current logfile disconnect
告警日志提示缺少110-135号归档日志,这些日志在主库上是存在的。
[oracle@secdb1 arch]$ ls 1_100_808409555.dbf 1_105_808409555.dbf 1_110_808409555.dbf 1_115_808409555.dbf 1_120_808409555.dbf 1_125_808409555.dbf 1_130_808409555.dbf 1_135_808409555.dbf 1_101_808409555.dbf 1_106_808409555.dbf 1_111_808409555.dbf 1_116_808409555.dbf 1_121_808409555.dbf 1_126_808409555.dbf 1_131_808409555.dbf 1_136_808409555.dbf 1_102_808409555.dbf 1_107_808409555.dbf 1_112_808409555.dbf 1_117_808409555.dbf 1_122_808409555.dbf 1_127_808409555.dbf 1_132_808409555.dbf 1_137_808409555.dbf 1_103_808409555.dbf 1_108_808409555.dbf 1_113_808409555.dbf 1_118_808409555.dbf 1_123_808409555.dbf 1_128_808409555.dbf 1_133_808409555.dbf 1_138_808409555.dbf 1_104_808409555.dbf 1_109_808409555.dbf 1_114_808409555.dbf 1_119_808409555.dbf 1_124_808409555.dbf 1_129_808409555.dbf 1_134_808409555.dbf
将这些日志传输到备库归档目录下。
[oracle@secdb2 arch]$ scp 1_1* 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/ oracle@192.168.249.128's password: 1_100_808409555.dbf 100% 89KB 89.0KB/s 00:00 1_101_808409555.dbf 100% 246KB 245.5KB/s 00:00 1_102_808409555.dbf 100% 9787KB 9.6MB/s 00:01 1_103_808409555.dbf 100% 939KB 939.0KB/s 00:00 1_104_808409555.dbf 100% 5490KB 5.4MB/s 00:00 1_105_808409555.dbf 100% 13KB 12.5KB/s 00:00 1_106_808409555.dbf 100% 39MB 9.6MB/s 00:04 1_107_808409555.dbf 100% 28MB 14.1MB/s 00:02 1_108_808409555.dbf 100% 82KB 82.0KB/s 00:00 1_109_808409555.dbf 100% 2729KB 2.7MB/s 00:01 1_110_808409555.dbf 100% 1536 1.5KB/s 00:00 1_111_808409555.dbf 100% 6873KB 6.7MB/s 00:00 1_112_808409555.dbf 100% 1509KB 1.5MB/s 00:00 1_113_808409555.dbf 100% 42MB 13.9MB/s 00:03 1_114_808409555.dbf 100% 24MB 24.3MB/s 00:01 1_115_808409555.dbf 100% 1536 1.5KB/s 00:00 1_116_808409555.dbf 100% 6894KB 6.7MB/s 00:00 1_117_808409555.dbf 100% 1413KB 1.4MB/s 00:00 1_118_808409555.dbf 100% 46MB 23.0MB/s 00:02 1_119_808409555.dbf 100% 40MB 13.4MB/s 00:03 1_120_808409555.dbf 100% 43MB 21.5MB/s 00:02 1_121_808409555.dbf 100% 48MB 15.9MB/s 00:03 1_122_808409555.dbf 100% 44MB 14.8MB/s 00:03 1_123_808409555.dbf 100% 44MB 21.9MB/s 00:02 1_124_808409555.dbf 100% 48MB 15.9MB/s 00:03 1_125_808409555.dbf 100% 48MB 23.9MB/s 00:02 1_126_808409555.dbf 100% 48MB 23.9MB/s 00:02 1_127_808409555.dbf 100% 48MB 11.9MB/s 00:04 1_128_808409555.dbf 100% 38MB 19.1MB/s 00:02 1_129_808409555.dbf 100% 38MB 12.8MB/s 00:03 1_130_808409555.dbf 100% 6119KB 6.0MB/s 00:00 1_131_808409555.dbf 100% 2048 2.0KB/s 00:00 1_132_808409555.dbf 100% 6100KB 6.0MB/s 00:00 1_133_808409555.dbf 100% 26KB 26.0KB/s 00:00 1_134_808409555.dbf 100% 382KB 382.0KB/s 00:00 1_135_808409555.dbf 100% 31KB 30.5KB/s 00:00 1_136_808409555.dbf 100% 6304KB 6.2MB/s 00:00 1_137_808409555.dbf 100% 7046KB 6.9MB/s 00:00
将这些110-135号日志注册到备库。
SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_110_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_111_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_112_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_113_808409555.dbf'; Database altered. ... ... SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_134_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_135_808409555.dbf'; Database altered.
监控告警日志会发现,在注册成功会,备库应用了这些归档。
Fri Nov 29 16:30:03 2013 Archived Log entry 20 added for thread 1 sequence 146 ID 0x5dd7c213 dest 1: Fri Nov 29 16:30:18 2013 ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_110_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_110_808409555.dbf' Fri Nov 29 16:30:24 2013 Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_110_808409555.dbf Media Recovery Waiting for thread 1 sequence 111 Fetching gap sequence in thread 1, gap sequence 111-135 Fri Nov 29 16:30:36 2013 ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_111_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_111_808409555.dbf' Fri Nov 29 16:30:44 2013 Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_111_808409555.dbf Media Recovery Waiting for thread 1 sequence 112 Fetching gap sequence in thread 1, gap sequence 112-135 ... ... Fri Nov 29 16:35:09 2013 ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_135_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_135_808409555.dbf' Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_135_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_136_808409555.dbf Fri Nov 29 16:35:10 2013 Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_137_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_138_808409555.dbf Recovery of Online Redo Log: Thread 1 Group 10 Seq 139 Reading mem 0 Mem# 0: /u01/app/oracle/oradata/stream/redo10.log
并且在应用完135号归档后,自动应用136-138号归档,主库切换几次日志,看看备库是否自动应用这些日志。
SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch Oldest online log sequence 146 Next log sequence to archive 148 Current log sequence 148
看看备库是否应用这些刚切换的归档。
SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch Oldest online log sequence 139 Next log sequence to archive 0 Current log sequence 147 SQL> select * from V$ARCHIVE_GAP; THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# ---------- ------------- -------------- 1 138 145
139号-145号日志没有传过来。
1_136_808409555.dbf 1_137_808409555.dbf 1_138_808409555.dbf 1_146_808409555.dbf 1_147_808409555.dbf
将139-145号归档传到备库。
[oracle@secdb2 arch]$ scp 1_139_808409555.dbf 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch oracle@192.168.249.128's password: 1_139_808409555.dbf 100% 136KB 135.5KB/s 00:00 [oracle@secdb2 arch]$ scp 1_140_808409555.dbf 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch oracle@192.168.249.128's password: 1_140_808409555.dbf 100% 1536 1.5KB/s 00:00 [oracle@secdb2 arch]$ scp 1_141_808409555.dbf 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch oracle@192.168.249.128's password: 1_141_808409555.dbf 100% 2048 2.0KB/s 00:00 [oracle@secdb2 arch]$ scp 1_142_808409555.dbf 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch oracle@192.168.249.128's password: 1_142_808409555.dbf 100% 1024 1.0KB/s 00:00 [oracle@secdb2 arch]$ scp 1_143_808409555.dbf 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch oracle@192.168.249.128's password: 1_143_808409555.dbf 100% 1024 1.0KB/s 00:00 [oracle@secdb2 arch]$ scp 1_144_808409555.dbf 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch oracle@192.168.249.128's password: 1_144_808409555.dbf 100% 1536 1.5KB/s 00:00 [oracle@secdb2 arch]$ scp 1_145_808409555.dbf 192.168.249.128:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch oracle@192.168.249.128's password: 1_145_808409555.dbf 100% 1024 1.0KB/s 00:00
将139-145号归档注册给备库。
SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_139_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_140_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_141_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_142_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_143_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_144_808409555.dbf'; Database altered. SQL> ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_145_808409555.dbf'; Database altered.
注册成功后,备库并没有自动应用这些归档。
Fri Nov 29 16:45:45 2013 ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_139_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_139_808409555.dbf' ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_140_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_140_808409555.dbf' Fri Nov 29 16:46:03 2013 ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_141_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_141_808409555.dbf' ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_142_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_142_808409555.dbf' Fri Nov 29 16:46:21 2013 ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_143_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_143_808409555.dbf' ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_144_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_144_808409555.dbf' Fri Nov 29 16:46:36 2013 ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_145_808409555.dbf' There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_145_808409555.dbf'
重启备库应用日志进程。
Fri Nov 29 16:48:31 2013 ALTER DATABASE recover managed standby database using current logfile disconnect ORA-1153 signalled during: ALTER DATABASE recover managed standby database using current logfile disconnect... Fri Nov 29 16:49:43 2013 Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_139_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_140_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_141_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_142_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_143_808409555.dbf Fri Nov 29 16:49:43 2013 FAL[server, ARC3]: Error 16009 creating remote archivelog file 'secdb2' FAL[server, ARC3]: FAL archive failed, see trace file. ARCH: FAL archive failed. Archiver continuing ORACLE Instance stream - Archival Error. Archiver continuing. Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_144_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_145_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_146_808409555.dbf Media Recovery Log /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch/1_147_808409555.dbf Media Recovery Waiting for thread 1 sequence 148 (in transit) Recovery of Online Redo Log: Thread 1 Group 11 Seq 148 Reading mem 0 Mem# 0: /u01/app/oracle/oradata/stream/redo11.log
由于应用日志进程已经启动,所以启动是报错,但是激活了应用日志进程,应用了这些日志。主库再切换日志,备库可正常应用,故障解决。
主库:
SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch Oldest online log sequence 146 Next log sequence to archive 148 Current log sequence 148 SQL> alter system switch logfile; System altered. SQL> / System altered. SQL>
备库:
Fri Nov 29 16:50:54 2013 Archived Log entry 55 added for thread 1 sequence 148 ID 0x5dd7c213 dest 1: Fri Nov 29 16:50:54 2013 Media Recovery Waiting for thread 1 sequence 149 Fri Nov 29 16:50:54 2013 RFS[2]: Selected log 10 for thread 1 sequence 149 dbid 1574437395 branch 808409555 Recovery of Online Redo Log: Thread 1 Group 10 Seq 149 Reading mem 0 Mem# 0: /u01/app/oracle/oradata/stream/redo10.log Fri Nov 29 16:51:15 2013 RFS[2]: Selected log 11 for thread 1 sequence 150 dbid 1574437395 branch 808409555 Fri Nov 29 16:51:15 2013 Archived Log entry 56 added for thread 1 sequence 149 ID 0x5dd7c213 dest 1: Fri Nov 29 16:51:15 2013 Media Recovery Waiting for thread 1 sequence 150 (in transit) Recovery of Online Redo Log: Thread 1 Group 11 Seq 150 Reading mem 0 Mem# 0: /u01/app/oracle/oradata/stream/redo11.log
主库再切换日志,归档可以自动传输到备库,不会在产生GAP现象,备库接受到主库传过来的归档后,也可自动应用。至此DG环境实现自动同步。