10G DG最大可用模式下备库发生故障时主库保护级别的变化

上一篇 / 下一篇  2007-06-25 00:00:00 / 个人分类:Oracle技术

本为主要讨论在10G DG的最大可用保护级别下,如果备库发生故障,主库如何应对。


DG处于最大可用保护模式下,只有一个备库。


1、查看原来主库的保护模式
SQL> SELECT PROTECTION_MODE,PROTECTION_LEVEL FROM V$DATABASE;

PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

2、在备库中停掉网卡
[root@standby ~]# ifdown eth0

3、此时在主库上执行

SQL> CREATE TABLE T(ID INT);
--这个会停顿180秒(默认值)才能完成建表
Table created.

4、查看此时后台的alert信息
Sun Jun 24 22:37:06 2007
ORA-16198: LGWR received timedout error from KSR
LGWR: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (16198)
LGWR: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned
Sun Jun 24 22:37:06 2007
Errors in file /u01/oracle/admin/primary/bdump/primary_lgwr_3822.trc:
ORA-16198: Timeout incurred on internal channel during remote archival
LGWR: Network asynch I/O wait error 16198 log 1 service 'standby'
Sun Jun 24 22:37:06 2007
Destination LOG_ARCHIVE_DEST_2 is UNSYNCHRONIZED
LGWR: Failed to archive log 1 thread 1 sequence 19 (16198)
Sun Jun 24 22:37:06 2007
LGWR: Closing remote archive destination LOG_ARCHIVE_DEST_2: 'standby' (error 16198)
(primary)

可以看到,主库在尝试连接备库失败后,会放弃传送日志到备库。

5、此时查看DG的保护模式
SQL> SELECT PROTECTION_MODE,PROTECTION_LEVEL FROM V$DATABASE;

PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION

可以看到,DG仍然处于最大可用保护模式下,但PROTECTION_LEVEL已经变为RESYNCHRONIZATION。
当然,主库隔一段时间就会重试连接备库,如果网络修复后,DG的PROTECTION_LEVEL会重新成为MAXIMUM AVAILABILITY。

6、此时启用备库的网卡
service network restart

7、查看主库的alert日志
隔一段时间后,可以在alert中看到如下信息:
Sun Jun 24 22:57:32 2007
Thread 1 advanced to log sequence 22
Current log# 1 seq# 22 mem# 0: /u01/oracle/oradata/primary/redo01.log
LNSb started with pid=18, OS id=3904
Sun Jun 24 23:00:35 2007
LGWR: Standby redo logfile selected to archive thread 1 sequence 23
LGWR: Standby redo logfile selected for thread 1 sequence 23 for destination LOG_ARCHIVE_DEST_2
Thread 1 advanced to log sequence 23
Current log# 2 seq# 23 mem# 0: /u01/oracle/oradata/primary/redo02.log
Sun Jun 24 23:00:35 2007
ARC3: LGWR is actively archiving destination LOG_ARCHIVE_DEST_2
ARC3: Standby redo logfile selected for thread 1 sequence 22 for destination LOG_ARCHIVE_DEST_2
Sun Jun 24 23:01:26 2007
Thread 1 cannot allocate new log, sequence 24
Checkpoint not complete
Current log# 2 seq# 23 mem# 0: /u01/oracle/oradata/primary/redo02.log
Sun Jun 24 23:01:30 2007
Destination LOG_ARCHIVE_DEST_2 is SYNCHRONIZED
LGWR: Standby redo logfile selected to archive thread 1 sequence 24
LGWR: Standby redo logfile selected for thread 1 sequence 24 for destination LOG_ARCHIVE_DEST_2
Thread 1 advanced to log sequence 24
Current log# 3 seq# 24 mem# 0: /u01/oracle/oradata/primary/redo03.log

8、再次查询主库的保护模式
SQL> SELECT PROTECTION_MODE,PROTECTION_LEVEL FROM V$DATABASE;

PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

可以看到,主库的PROTECTION_LEVEL会重新成为MAXIMUM AVAILABILITY。

至此,可以得到结论:
在最大保护模式下,如果备库出现故障,主库会自动降低保护级别,以使得主库的操作能继续执行,但是主库会有一小段时间的停顿。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-30  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 10187
  • 日志数: 410
  • 建立时间: 2007-12-30
  • 更新时间: 2008-08-21

RSS订阅

Open Toolbar