一、模拟产生gap
a、主库查询,可以看出当前日志组66
SQL> select sequence#,status from v$log;
SEQUENCE# STATUS
---------- ----------------
66 CURRENT
65 ACTIVE
64 INACTIVE
b、禁用备库网卡
[oracle@dg2 ~]$ ifconfig eth0 down
c、主库日志多次切换,mv归档
SQL> alter system switch logfile;
System altered.
SQL> select SEQUENCE#,NAME from v$archived_log;
SEQUENCE# NAME
--------- --------------------------------------------------
67 /u01/oracle/arch1/WENDING/1_67_795970778.dbf
68 /u01/oracle/arch1/WENDING/1_68_795970778.dbf
69 /u01/oracle/arch1/WENDING/1_69_795970778.dbf
d、主库进行日志切换,将归档mv到其他目录下,然后启用备库网库
[oracle@dg1 ~]$ mv /u01/oracle/arch1/WENDING/1_67_795970778.dbf /u01/bak [oracle@dg2 ~]$ ifconfig eth0 up
e、继续几次切换,查看日志
主库:
FAL[server]: Fail to queue the whole FAL gap GAP - thread 1 sequence 67-67 DBID 2231924310 branch 795970778
备库:
Fetching gap sequence in thread 1, gap sequence 67-67 Tue Jan 7 11:26:55 2014 FAL[client]: Failed to request gap sequence GAP - thread 1 sequence 67-67 DBID 2231924310 branch 795970778 FAL[client]: All defined FAL servers have been attempted. ------------------------------------------------------------- Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization parameter is defined to a value that is sufficiently large enough to maintain adequate log switch information to resolve archivelog gaps.
备库视图:
SQL> select * from v$archive_gap; THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# ---------- ------------- -------------- 1 67 67
二、解决GAP问题
前面我们已经知道,我们将67号归档放在了/u01/bak目录下,我们现在将其传送到备库,并且进行注册。
[oracle@dg1 bak]$ scp /u01/bak/1_67_795970778.dbf dg2:/u01/ The authenticity of host 'dg2 (192.168.1.2)' can't be established. RSA key fingerprint is a3:2c:9a:c2:b3:be:01:4d:37:37:67:11:fa:cb:1b:b7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'dg2' (RSA) to the list of known hosts. oracle@dg2's password: 1_67_795970778.dbf 100% 47KB 47.0KB/s 00:00
备库注册缺失的归档文件
SQL> alter database register logfile '/u01/1_67_795970778.dbf'; Database altered.
查看备库日志,可以看出已经日志已经正常应用,备库恢复正常。
RFS[15]: Identified database type as 'physical standby' Tue Jan 7 11:33:46 2014 alter database register logfile '/u01/1_67_795970778.dbf' Tue Jan 7 11:33:46 2014 There are 1 logfiles specified. ALTER DATABASE REGISTER [PHYSICAL] LOGFILE Completed: alter database register logfile '/u01/1_67_795970778.dbf' Tue Jan 7 11:33:56 2014 Media Recovery Log /u01/1_67_795970778.dbf Media Recovery Log /u01/oracle/arch1/1_68_795970778.dbf Media Recovery Log /u01/oracle/arch1/1_69_795970778.dbf Media Recovery Log /u01/oracle/arch1/PHYSTDBY/1_70_795970778.dbf Media Recovery Log /u01/oracle/arch1/PHYSTDBY/1_71_795970778.dbf Media Recovery Waiting for thread 1 sequence 72 (in transit)
备库视图:
SQL> select * from v$archive_gap; no rows selected
至此,GAP的产生过程以及处理过程演示完毕。
转载于:https://blog.51cto.com/carefree/1352238