模拟物理standby产生GAP,以及解决过程演示

一、模拟产生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的产生过程以及处理过程演示完毕。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章