模拟物理standby产生GAP的情形
2013-08-06 16:24
369 查看
gap的产生可能是由于归档文件太大,或者网络不稳定,导致部分归档无法传到standby上。
一般处理的方法:
-加入compression参数
log_archive_dest_2='SERVICE=orcl_standby ASYNC COMPRESSION=ENABLE'
-MAX_CONNECTIONS
log_archive_dest_2='SERVICE=orcl_standby ASYNC MAX_CONNECTIONS=3'
下面是模拟出现gap后的情形以及如何处理的。
1.停掉备库的listener
[oracle@rhel132~]$ lsnrctl stop
2.主库需要重启一下(不重启的话,即使备库关闭了监听器,由于主库和备库之间的通信还是没有断,是长连接的原故吧),之后再做几次switch logfile:
SQL>shutdown immediate;
Databaseclosed.
Databasedismounted.
ORACLE instanceshut down.
SQL> startup
ORACLE instancestarted.
Total SystemGlobal Area 281018368 bytes
Fixed Size 1218944 bytes
VariableSize 100664960 bytes
DatabaseBuffers 171966464 bytes
RedoBuffers 7168000 bytes
Databasemounted.
Databaseopened.
SQL> altersystem switch logfile;
System altered.
SQL> altersystem switch logfile;
System altered.
SQL> altersystem switch logfile;
System altered.
3.在主库查看归档信息:
SQL>select sequence#,standby_dest,archived,applied from v$archived_log;
SEQUENCE# STAARC APP
---------- ------ ---
103 NO YES NO
104 YES YES NO
104 NO YES NO
105 YES YES YES
105 NO YES NO
106 YES YES YES
106 NO YES NO
107 NO YES NO
108 NO YES NO
109 NO YES NO
110 NO YES NO
187rows selected.
在备库也查询一下:
SQL>select sequence#,standby_dest,archived,applied from v$archived_log;
SEQUENCE# STAARC APP
---------- ------ ---
94 NO YES YES
95 NO YES YES
96 NO YES YES
97 NO YES YES
98 NO YES YES
99 NO YES YES
100 NO YES YES
101 NO YES YES
102 NO YES YES
103 NO YES YES
104 NO YES YES
SEQUENCE# STA ARC APP
---------- ------ ---
105 NO YES YES
106 NO YES YES
112rows selected.
这是应该是缺少了107~110的归档。
备库的日志文件也是等待107号归档:
Tue Aug 6 11:08:04 2013
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_106_793805797.dbf
Media Recovery Waiting for thread 1 sequence 107
4.如何模拟gap呢,由于无法模拟日志文件太大和网络不稳定,只有将主库的这几个日志给改名,使无法同步到备库。
在主库:
[oracle@rhel131~]$ cd /u01/app/oracle/oradata/orcl/archivelog/
[oracle@rhel131archivelog]$ mv 1_107_793805797.dbf 1_107_793805797.dbf.bk
[oracle@rhel131archivelog]$ mv 1_108_793805797.dbf 1_108_793805797.dbf.bk
[oracle@rhel131archivelog]$ mv 1_109_793805797.dbf 1_109_793805797.dbf.bk
[oracle@rhel131archivelog]$ mv 1_110_793805797.dbf 1_110_793805797.dbf.bk
5.这时可以将备库的监听打开:
[oracle@rhel132~]$ lsnrctl start
6.在主库做几次switchlogfile:
SQL> altersystem switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
过了一会儿,备库的日志如下,说明新的arch同步到来了,而缺少了107-110的日志。
Tue Aug 6 11:24:28 2013
Redo ShippingClient Connected as PUBLIC
-- ConnectedUser is Valid
RFS[5]:Assigned to RFS process 4084
RFS[5]:Identified database type as 'physical standby'
RFS[5]:Archived Log: '/u01/app/oracle/oradata/orcl/archivelog/1_111_793805797.dbf'
RFS[5]:Archived Log: '/u01/app/oracle/oradata/orcl/archivelog/1_112_793805797.dbf'
Tue Aug 6 11:24:30 2013
Fetching gap sequence in thread 1, gap sequence107-110
Tue Aug 6 11:25:00 2013
FAL[client]: Failedto request gap sequence
GAP - thread 1 sequence 107-110
DBID 1321586530 branch 793805797
FAL[client]: All defined FAL servers have beenattempted.
通过查询备库的视图也可以获得信息:
SQL> select* from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
----------------------- --------------
1 107 110
7.现在开始做恢复,将主库的日志给copy过来,并注册到备库:
[oracle@rhel131archivelog]$ scp 1_107_793805797.dbf.bk 172.17.61.132:/tmp oracle@172.17.61.132's password:
1_107_793805797.dbf.bk 100% 1024 1.0KB/s 00:00
[oracle@rhel131archivelog]$ scp 1_108_793805797.dbf.bk 172.17.61.132:/tmp
oracle@172.17.61.132'spassword:
1_108_793805797.dbf.bk 100% 75KB 74.5KB/s 00:00
[oracle@rhel131archivelog]$ scp 1_109_793805797.dbf.bk 172.17.61.132:/tmp
oracle@172.17.61.132'spassword:
1_109_793805797.dbf.bk 100% 4608 4.5KB/s 00:00
[oracle@rhel131archivelog]$ scp 1_110_793805797.dbf.bk 172.17.61.132:/tmp
oracle@172.17.61.132'spassword:
1_110_793805797.dbf.bk 100% 2560 2.5KB/s 00:00
SQL> alterdatabase register logfile '/tmp/1_107_793805797.dbf.bk';
Databasealtered.
SQL> alterdatabase register logfile '/tmp/1_108_793805797.dbf.bk';
Databasealtered.
SQL> alterdatabase register logfile '/tmp/1_109_793805797.dbf.bk';
Databasealtered.
SQL> alterdatabase register logfile '/tmp/1_110_793805797.dbf.bk';
Databasealtered.
8.此时的备库信息:
alter databaseregister logfile '/tmp/1_107_793805797.dbf.bk'
Tue Aug 6 11:43:28 2013
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_107_793805797.dbf.bk'
Tue Aug 6 11:43:30 2013
Media RecoveryLog /tmp/1_107_793805797.dbf.bk
Media RecoveryWaiting for thread 1 sequence 108
Fetching gapsequence in thread 1, gap sequence 108-110
Tue Aug 6 11:43:42 2013
alter databaseregister logfile '/tmp/1_108_793805797.dbf.bk'
Tue Aug 6 11:43:42 2013
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_108_793805797.dbf.bk'
Tue Aug 6 11:43:49 2013
alter databaseregister logfile '/tmp/1_109_793805797.dbf.bk'
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_
b385
109_793805797.dbf.bk'
Tue Aug 6 11:43:56 2013
alter databaseregister logfile '/tmp/1_110_793805797.dbf.bk'
Tue Aug 6 11:43:56 2013
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_110_793805797.dbf.bk'
Tue Aug 6 11:44:00 2013
Media RecoveryLog /tmp/1_108_793805797.dbf.bk
Media RecoveryLog /tmp/1_109_793805797.dbf.bk
Media RecoveryLog /tmp/1_110_793805797.dbf.bk
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_111_793805797.dbf
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_112_793805797.dbf
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_113_793805797.dbf
Media Recovery Waiting for thread 1 sequence 114(in transit)
说明已应用了所有的归档日志。
一般处理的方法:
-加入compression参数
log_archive_dest_2='SERVICE=orcl_standby ASYNC COMPRESSION=ENABLE'
-MAX_CONNECTIONS
log_archive_dest_2='SERVICE=orcl_standby ASYNC MAX_CONNECTIONS=3'
下面是模拟出现gap后的情形以及如何处理的。
1.停掉备库的listener
[oracle@rhel132~]$ lsnrctl stop
2.主库需要重启一下(不重启的话,即使备库关闭了监听器,由于主库和备库之间的通信还是没有断,是长连接的原故吧),之后再做几次switch logfile:
SQL>shutdown immediate;
Databaseclosed.
Databasedismounted.
ORACLE instanceshut down.
SQL> startup
ORACLE instancestarted.
Total SystemGlobal Area 281018368 bytes
Fixed Size 1218944 bytes
VariableSize 100664960 bytes
DatabaseBuffers 171966464 bytes
RedoBuffers 7168000 bytes
Databasemounted.
Databaseopened.
SQL> altersystem switch logfile;
System altered.
SQL> altersystem switch logfile;
System altered.
SQL> altersystem switch logfile;
System altered.
3.在主库查看归档信息:
SQL>select sequence#,standby_dest,archived,applied from v$archived_log;
SEQUENCE# STAARC APP
---------- ------ ---
103 NO YES NO
104 YES YES NO
104 NO YES NO
105 YES YES YES
105 NO YES NO
106 YES YES YES
106 NO YES NO
107 NO YES NO
108 NO YES NO
109 NO YES NO
110 NO YES NO
187rows selected.
在备库也查询一下:
SQL>select sequence#,standby_dest,archived,applied from v$archived_log;
SEQUENCE# STAARC APP
---------- ------ ---
94 NO YES YES
95 NO YES YES
96 NO YES YES
97 NO YES YES
98 NO YES YES
99 NO YES YES
100 NO YES YES
101 NO YES YES
102 NO YES YES
103 NO YES YES
104 NO YES YES
SEQUENCE# STA ARC APP
---------- ------ ---
105 NO YES YES
106 NO YES YES
112rows selected.
这是应该是缺少了107~110的归档。
备库的日志文件也是等待107号归档:
Tue Aug 6 11:08:04 2013
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_106_793805797.dbf
Media Recovery Waiting for thread 1 sequence 107
4.如何模拟gap呢,由于无法模拟日志文件太大和网络不稳定,只有将主库的这几个日志给改名,使无法同步到备库。
在主库:
[oracle@rhel131~]$ cd /u01/app/oracle/oradata/orcl/archivelog/
[oracle@rhel131archivelog]$ mv 1_107_793805797.dbf 1_107_793805797.dbf.bk
[oracle@rhel131archivelog]$ mv 1_108_793805797.dbf 1_108_793805797.dbf.bk
[oracle@rhel131archivelog]$ mv 1_109_793805797.dbf 1_109_793805797.dbf.bk
[oracle@rhel131archivelog]$ mv 1_110_793805797.dbf 1_110_793805797.dbf.bk
5.这时可以将备库的监听打开:
[oracle@rhel132~]$ lsnrctl start
6.在主库做几次switchlogfile:
SQL> altersystem switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
过了一会儿,备库的日志如下,说明新的arch同步到来了,而缺少了107-110的日志。
Tue Aug 6 11:24:28 2013
Redo ShippingClient Connected as PUBLIC
-- ConnectedUser is Valid
RFS[5]:Assigned to RFS process 4084
RFS[5]:Identified database type as 'physical standby'
RFS[5]:Archived Log: '/u01/app/oracle/oradata/orcl/archivelog/1_111_793805797.dbf'
RFS[5]:Archived Log: '/u01/app/oracle/oradata/orcl/archivelog/1_112_793805797.dbf'
Tue Aug 6 11:24:30 2013
Fetching gap sequence in thread 1, gap sequence107-110
Tue Aug 6 11:25:00 2013
FAL[client]: Failedto request gap sequence
GAP - thread 1 sequence 107-110
DBID 1321586530 branch 793805797
FAL[client]: All defined FAL servers have beenattempted.
通过查询备库的视图也可以获得信息:
SQL> select* from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
----------------------- --------------
1 107 110
7.现在开始做恢复,将主库的日志给copy过来,并注册到备库:
[oracle@rhel131archivelog]$ scp 1_107_793805797.dbf.bk 172.17.61.132:/tmp oracle@172.17.61.132's password:
1_107_793805797.dbf.bk 100% 1024 1.0KB/s 00:00
[oracle@rhel131archivelog]$ scp 1_108_793805797.dbf.bk 172.17.61.132:/tmp
oracle@172.17.61.132'spassword:
1_108_793805797.dbf.bk 100% 75KB 74.5KB/s 00:00
[oracle@rhel131archivelog]$ scp 1_109_793805797.dbf.bk 172.17.61.132:/tmp
oracle@172.17.61.132'spassword:
1_109_793805797.dbf.bk 100% 4608 4.5KB/s 00:00
[oracle@rhel131archivelog]$ scp 1_110_793805797.dbf.bk 172.17.61.132:/tmp
oracle@172.17.61.132'spassword:
1_110_793805797.dbf.bk 100% 2560 2.5KB/s 00:00
SQL> alterdatabase register logfile '/tmp/1_107_793805797.dbf.bk';
Databasealtered.
SQL> alterdatabase register logfile '/tmp/1_108_793805797.dbf.bk';
Databasealtered.
SQL> alterdatabase register logfile '/tmp/1_109_793805797.dbf.bk';
Databasealtered.
SQL> alterdatabase register logfile '/tmp/1_110_793805797.dbf.bk';
Databasealtered.
8.此时的备库信息:
alter databaseregister logfile '/tmp/1_107_793805797.dbf.bk'
Tue Aug 6 11:43:28 2013
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_107_793805797.dbf.bk'
Tue Aug 6 11:43:30 2013
Media RecoveryLog /tmp/1_107_793805797.dbf.bk
Media RecoveryWaiting for thread 1 sequence 108
Fetching gapsequence in thread 1, gap sequence 108-110
Tue Aug 6 11:43:42 2013
alter databaseregister logfile '/tmp/1_108_793805797.dbf.bk'
Tue Aug 6 11:43:42 2013
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_108_793805797.dbf.bk'
Tue Aug 6 11:43:49 2013
alter databaseregister logfile '/tmp/1_109_793805797.dbf.bk'
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_
b385
109_793805797.dbf.bk'
Tue Aug 6 11:43:56 2013
alter databaseregister logfile '/tmp/1_110_793805797.dbf.bk'
Tue Aug 6 11:43:56 2013
There are 1logfiles specified.
ALTER DATABASEREGISTER [PHYSICAL] LOGFILE
Completed:alter database register logfile '/tmp/1_110_793805797.dbf.bk'
Tue Aug 6 11:44:00 2013
Media RecoveryLog /tmp/1_108_793805797.dbf.bk
Media RecoveryLog /tmp/1_109_793805797.dbf.bk
Media RecoveryLog /tmp/1_110_793805797.dbf.bk
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_111_793805797.dbf
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_112_793805797.dbf
Media RecoveryLog /u01/app/oracle/oradata/orcl/archivelog/1_113_793805797.dbf
Media Recovery Waiting for thread 1 sequence 114(in transit)
说明已应用了所有的归档日志。
相关文章推荐
- 模拟物理standby产生GAP,以及解决过程演示
- 模拟物理standby产生gap
- dojo小例子(2):dojox/widget/Standby,当前页面不可编辑,模拟进度提示
- 物理Data Guard中处理Redo GAP的进程
- Sprite Kit学习笔记(五)模拟物理世界
- 多物理场面向对象模拟环境MOOSE学习手册
- 【OS课程设计二】模拟DOS系统文件的物理结构和管理使用
- SimulateKeyEvent 模拟发送物理按键事件的插件 c
- Windows 8下 GNS3模拟ASA,接入物理网络并使用ASDM进行管理
- 【CG物理模拟系列】流体模拟--粒子法之SPH法的加权函数计算
- Flash 与物理笔记:简单的小球重力模拟
- HTML5 模拟现实物理效果,感受 Web 技术魅力
- OpenGL进阶(五) - 物理模拟
- HGE引擎学习笔记1 : 如何模拟物理碰撞
- Android通过代码模拟物理、屏幕点击事件
- oracle DG 物理standby
- 一步一步学DataGuard(9)物理standby之高级管理2
- 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一)
- 【CG物理模拟系列】开篇:介绍(上)
- c++实现模拟产生随机数