1.错误描述
SQL> startup
ORACLE instance started.
Total System Global Area 1.3683E+11 bytes
Fixed Size 2270360 bytes
Variable Size 4.5902E+10 bytes
Database Buffers 9.0731E+10 bytes
Redo Buffers 189456384 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 20288
Session ID: 2065 Serial number: 3
SQL>
告警日志:
WARNING: The 'LOG_ARCHIVE_CONFIG' init.ora parameter settings are inconsistent with another started instance.
This may be caused by the 'DB_UNIQUE_NAME' init.ora parameter being specified differently on one or more of the other RAC instances; the DB_UNIQUE_NAME parameter value MUST be identical for all instances of the database.
Errors in file /u01/app/oracle/diag/rdbms/sljj/sljj2/trace/sljj2_lgwr_23195.trc:
ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance LGWR (ospid: 23195): terminating the instance due to error 16188
查看trc文件
[root@sljj02 trace]# vi /u01/app/oracle/diag/rdbms/sljj/sljj2/trace/sljj2_lgwr_38174.trc
Trace file /u01/app/oracle/diag/rdbms/sljj/sljj2/trace/sljj2_lgwr_38174.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1
System name: Linux
Node name: sljj02
Release: 2.6.32-696.el6.x86_64
Version: #1 SMP Mon Mar 4 15:25:44 CST 2019
Machine: x86_64
Instance name: sljj2
Redo thread mounted by this instance: 2
Oracle process number: 28
Unix process pid: 38174, image: oracle@sljj02 (LGWR)
*** 2025-08-26 13:59:42.583
*** SESSION ID:(1345.1) 2025-08-26 13:59:42.583
*** CLIENT ID:() 2025-08-26 13:59:42.583
*** SERVICE NAME:() 2025-08-26 13:59:42.583
*** MODULE NAME:() 2025-08-26 13:59:42.583
*** ACTION NAME:() 2025-08-26 13:59:42.583
Standby database verification failed:16188
error 16188 detected in background process
ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance
kjzduptcctx: Notifying DIAG for crash event
----- Abridged Call Stack Trace -----
ksedsts()+465<-kjzdssdmp()+267<-kjzduptcctx()+232<-kjzdicrshnfy()+63<-ksuitm()+5570<-ksbrdp()+3507<-opirip()+623<-opidrv()+603<-sou2o()+103<-opimai_real()+250<-ssthrdmain()+265<-main()+201<-__libc_start_main()+253
----- End of Abridged Call Stack Trace -----
*** 2025-08-26 13:59:42.599
LGWR (ospid: 38174): terminating the instance due to error 16188
ksuitm: waiting up to [5] seconds before killing DIAG(38122)
问题原因
RAC通过ADG方式迁移数据库后,使用以下命令清除DG参数后,单独启动集群数据库实例。
alter system set log_archive_config='' scope=both sid='*'
SQL> show parameter log_archive_config
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string
SQL>
另一个节点实例启动无法启动。
问题在于 v$dataguard_config 在集群间未被同步更新
SQL> select * from v$dataguard_config;
DB_UNIQUE_NAME
------------------------------
sljj
sljj2dg
SQL>
其实根本原因在于参数log_archive_config的默认值设置错误;在官方文档,该参数的默认值为: SEND, RECEIVE, NODG_CONFIG
重启幸存实例
重启以后,所以实力也无法启动,查看alertlog
Lost write protection disabled
Completed: ALTER DATABASE MOUNT /* db agent *//* {0:7:13143} */
ALTER DATABASE OPEN /* db agent *//* {0:7:13143} */
This instance was first to open
Picked broadcast on commit scheme to generate SCNs
LGWR: STARTING ARCH PROCESSES
Wed Jul 26 23:39:09 2023
ARC0 started with pid=44, OS id=27434
Wed Jul 26 23:39:10 2023
ARC0: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC0: STARTING ARCH PROCESSES
LGWR: Primary database is in MAXIMUM AVAILABILITY mode
LGWR: Destination LOG_ARCHIVE_DEST_1 is not serviced by LGWR
LGWR: Minimum of 1 LGWR standby database required
Errors in file /u01/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_lgwr_27288.trc:
ORA-16072: a minimum of one standby database destination is required
Wed Jul 26 23:39:10 2023
ARC1 started with pid=45, OS id=27436
LGWR (ospid: 27288): terminating the instance due to error 16072
Wed Jul 26 23:39:10 2023
System state dump requested by (instance=1, osid=27288 (LGWR)), summary=[abnormal instance te
System State dumped to trace file /u01/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_diag_2
Dumping diagnostic data in directory=[cdmp_20230726233910], requested by (instance=1, osid=27
Instance terminated by LGWR, pid = 27288
这里的提示已经很明确,主库目前是最大可用模式,至少需要1个standby, 而我们这个库已经清理了所有的standby ,只是一直未重启过, 数据库处于open状态。
关于 ORA-16135
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16135: Invalid LOG_ARCHIVE_CONFIG modification while in protected mode
Cause: The LOG_ARCHIVE_CONFIG parameter can not be modified while any RAC instance is open in either maximum protection or maximum availability mode. Also, the parameter can not be modified in such way that would cause all destinations to fail while in maximum protection mode.
Action: Make the modification before the database is opened by any instance.
这个错误时忽略了检查一下原来database 的保护模式。 禁用dg或清理参数前记的检查, 既然一个dg standby都没有,也只能重启所有节点,切到最大性能模式。
这个错误时忽略了检查一下原来database 的保护模式. 以后禁用dg或清理参数前记的检查, 既然一个dg standby都没有,也只能重启所有节点,切到最大性能模式。
SQL> select database_name,database_role,force_logging,PROTECTION_MODE from v$database;
DATABASE_NAME DATABASE_ROLE FOR PROTECTION_MODE
------------------------------------------------------------------------------------------------ ---
SLJJ PRIMARY YES MAXIMUM PERFORMANCE
SQL>
解决方法:
仅在故障节点操作时不能生效,需要在正常节点修改log_archive_config参数,然后再启动实例。
alter system set log_archive_config=NODG_CONFIG scope=both sid='*';
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 27577
Session ID: 2065 Serial number: 3
SQL>
[oracle@sljj02 trace]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 26 13:57:23 2025
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount
ORA-10997: another startup/shutdown operation of this instance inprogress
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 36701
SQL>
修改保护模式
SQL> startup mount
ORACLE instance started.
Total System Global Area 2.2448E+11 bytes
Fixed Size 2266664 bytes
Variable Size 3.4897E+10 bytes
Database Buffers 1.8952E+11 bytes
Redo Buffers 64827392 bytes
Database mounted.
SQL> alter database set standby to maximize performance;
Database altered.
SQL> alter database open;
Database altered.
当清理或删除Standby时,在主库需要检查当前的保护模式,如最大可用和最大保护模式至少要有1 standby, 在12c之前RAC 修改LOG_ARCHIVE_CONFIG参数记的使用NODG_CONFIG而不是置为空值,否则可能会出现后期实例重启无法启动的风险。
SQL> select * from v$dataguard_config;
DB_UNIQUE_NAME
------------------------------
sljj
SQL>
参考文档
Standby Instance Crash or Failed to Startup with ORA-16188 (Doc ID 1580482.1)




