签到成功

知道了

CNDBA社区CNDBA社区

DG数据库db_unique_name引发主库宕机报错ORA-600

2018-08-14 15:09 2842 0 原创 数据库异常
作者: Marvinn

DG数据库db_unique_name引发主库宕机报错ORA-600

问题现象:

主备库两者环境采用同名db_unique_name,并且主库采用lgwr sync或者async进程投递到备库RFS,主库发生日志切换,主库直接因为LGWR进程宕机http://www.cndba.cn/Marvinn/article/2950

http://www.cndba.cn/Marvinn/article/2950

ORA-00600: internal error code, arguments: [krsu_upi_atc.7], [], [], [], [], [], [], [], [], [], [], []http://www.cndba.cn/Marvinn/article/2950http://www.cndba.cn/Marvinn/article/2950http://www.cndba.cn/Marvinn/article/2950

环境

版本:单机 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进程投递的区别,请自行百度.....

解决:http://www.cndba.cn/Marvinn/article/2950http://www.cndba.cn/Marvinn/article/2950

备库:

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.

总结:

http://www.cndba.cn/Marvinn/article/2950
http://www.cndba.cn/Marvinn/article/2950

1、主备数据库正常实时运行

2、主库未出现宕机.http://www.cndba.cn/Marvinn/article/2950

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Marvinn

Marvinn

关注

路漫漫其修远兮、吾将上下而求索

  • 99
    原创
  • 0
    翻译
  • 2
    转载
  • 36
    评论
  • 访问:458453次
  • 积分:449
  • 等级:中级会员
  • 排名:第12名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ