ITPub博客

首页 > Linux操作系统 > Linux操作系统 > FAL_SERVER设置错误导致SWITCHOVER切换HANG住

FAL_SERVER设置错误导致SWITCHOVER切换HANG住

原创 Linux操作系统 作者:yangtingkun 时间:2011-10-25 23:57:45 0 删除 编辑

客户在进行DATA GUARD的SWITCHOVER时,操作长时间没有反应。

 

 

操作如下:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

这个命令等待很长时间没有结束,虽然数据库的SWITCHOVER_STATUS并非TO STANDBY而是SESSION ACTIVE,但是几乎所有的LOCAL=NO的连接已经在操作系统级kill掉了,而且使用了WITH SESSION SHUTDOWN语法,理论上不应该是连接问题导致SWITCHOVER无法完成。

检查告警日志:

Fri Oct 14 23:03:45 2011
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN
Fri Oct 14 23:03:45 2011
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY (db1)
Fri Oct 14 23:03:47 2011
Thread 1 cannot allocate new log, sequence 133983
Private strand flush not complete
Current log# 4 seq# 133982 mem# 0: /dev/rredodbs41
Current log# 4 seq# 133982 mem# 1: /dev/rredodbs42
Fri Oct 14 23:03:50 2011
Thread 1 advanced to log sequence 133983 (LGWR switch)
Current log# 5 seq# 133983 mem# 0: /dev/rredodbs51
Current log# 5 seq# 133983 mem# 1: /dev/rredodbs52
Fri Oct 14 23:03:50 2011
Waiting for all non-current ORLs to be archived...
Fri Oct 14 23:03:50 2011
Waiting for the ORL for thread 1 sequence 133982 to be archived...
Fri Oct 14 23:04:00 2011
ORL for thread 1 sequence 133982 has been archived...
Fri Oct 14 23:04:00 2011
All non-current ORLs have been archived.
Fri Oct 14 23:04:00 2011
Waiting for all FAL entries to be archived...
Fri Oct 14 23:25:29 2011
ORA-1013 signalled during: ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN...

数据库在等待和FAL配置有关,由于数据库的操作一直停在了这里,最后不得以中止了SWITCHOVER的操作。

检查客户的FAL相关配置,发现FAL_SERVER的设置可能存在问题:

SQL> SHOW PARAMETER FAL

NAME                       TYPE        VALUE
-------------------------- ----------- --------------------
fal_client                 string      db1
fal_server                 string      db1st,db1st2

由于当前主库配置了两个STANDBY数据库,分别是db1st和db2st,当前的设置明显是希望无论主库和那个备库进行切换后,通过设置两个fal_server,DATA GUARD配置都可以正常,而不需要修改配置。

但是目前看来,似乎这种设置两个参数的方式并不生效,使得在SWITCHOVER的时Oracle停了下来。

将FAL_SERVER设置为要进行SWITCHOVER的备库的TNS服务名:

SQL> ALTER SYSTEM SET fal_server='db1st';

System altered.

重启数据库,使得参数生效。虽然这个参数的修改不需要重启数据库,但是在运行SWITCHOVER的时候发现,如果不重启数据库,Oracle并没有重新获取FAL_SERVER的值,而是根据本次启动时加载的FAL_SERVER的值。

重新启动后再次运行SWITCHOVER,切换成功完成:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

Database altered.

一直认为FAL_SERVER和FAL_CLIENT只是DATA GUARD配置用来自动获取GAP的参数,没想到这个参数的设置对于SWITCHOVER也有这么大的影响。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-709669/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1964
  • 访问量
    11076577