DG数据库db_unique_name引发主库宕机报错ORA-600
问题现象:
主备库两者环境采用同名db_unique_name,并且主库采用lgwr sync或者async进程投递到备库RFS,主库发生日志切换,主库直接因为LGWR进程宕机
ORA-00600: internal error code, arguments: [krsu_upi_atc.7], [], [], [], [], [], [], [], [], [], [], []
环境
版本:单机 11.2.0.4
主库:db_unique_name marvin
db_name marvin
DG: db_unique_name marvin
db_name marvin
主库投递log_archive_dest_2进程采用lgwr sync或者 async
备库重做备库日志实时应用
手工切换日志,或者应用自己切换日志,主库直接宕机,数据库告警日志报错:
ORA-00600: internal error code, arguments: [krsu_upi_atc.7], [], [], [], [], [], [], [], [], [], [], []
主要是因为LGWR进程问题,导致数据库宕机...
但是主库投递log_archive_dest_2进程采用默认ARCH,貌似没出现这个问题,涉及到LGWR跟ARCH进程投递的区别,请自行百度.....
解决:
备库:
1、修改参数文件参数
*.dispatchers='(PROTOCOL=TCP)(SERVICE=marvindgXDB)' --跟db_unique_name一致
*.db_unique_name='marvindg'
*.log_archive_dest_1='location=/u02/rac1_arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=marvindg'
2、重新起库,生成新的spfile
SQL> alter system set log_archive_config = 'DG_CONFIG=(marvindg,marvin)';
System altered.
SQL> show parameter log_archive_config
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
log_archive_config string
DG_CONFIG=(marvindg,marvin)
主库:
1、修改log_archive_dest_2 备库db_unique_name
SQL> alter system set log_archive_dest_2='service=marvindg LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=marvindg';
alter system set log_archive_dest_2='service=marvindg LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=marvindg'
*
ERROR at line 1:
ORA-02097: 无法修改参数, 因为指定的值无效 ORA-16053:
Data Guard 配置中没有 DB_UNIQUE_NAME marvindg
需要先行修改log_archive_config,否则报错无法修改
SQL> alter system set log_archive_config='DG_CONFIG=(marvin,marvindg)'
2 /
System altered.
SQL> alter system set log_archive_dest_2='service=marvindg LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=marvindg';
System altered.
2、重新激活log_archive_dest_state_2
SQL> alter system set log_archive_dest_state_2=defer scope=both;
System altered.
SQL> alter system set log_archive_dest_state_2=enable scope=both;
System altered.
SQL> alter system set log_archive_config = 'DG_CONFIG=(marvin,marvindg)';
System altered.
SQL> show parameter log_archive_config
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
log_archive_config string
DG_CONFIG=(marvin,marvindg)
SQL> alter system set log_archive_dest_state_2=enable scope=both;
System altered.
总结:
1、主备数据库正常实时运行
2、主库未出现宕机.
版权声明:本文为博主原创文章,未经博主允许不得转载。



