数据库:oracle 11.2.0.4

系统:centos 7.9

环境:rac(2节点)+2个dg

问题描述:检查集群发现节点2数据库状态为instance Shutdown,如下所示:

[grid@hisdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.LISTENER.lsnr
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.OCR.dg
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.asm
ONLINE ONLINE hisdb1 Started
ONLINE ONLINE hisdb2 Started
ora.gsd
OFFLINE OFFLINE hisdb1
OFFLINE OFFLINE hisdb2
ora.net1.network
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.ons
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE hisdb1
ora.cvu
1 ONLINE ONLINE hisdb1
ora.hisdb1.vip
1 ONLINE ONLINE hisdb1
ora.hisdb2.vip
1 ONLINE ONLINE hisdb2
ora.oc4j
1 ONLINE ONLINE hisdb2
ora.orcl.db
1 ONLINE ONLINE hisdb1 Open
2 ONLINE OFFLINE Instance Shutdown
ora.pacs.db
1 ONLINE ONLINE hisdb1 Open
2 ONLINE ONLINE hisdb2 Open
ora.scan1.vip
1 ONLINE ONLINE hisdb1

重启orcl数据库,报错ORA-01102.

[grid@hisdb1 ~]$ srvctl stop database -d orcl
[grid@hisdb1 ~]$ srvctl start database -d orcl
PRCR-1079 : Failed to start resource ora.orcl.db
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-01102: cannot mount database in EXCLUSIVE mode
. For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/hisdb2/agent/crsd/oraagent_oracle/oraagent_oracle.log".

日志文件oraagent_oracle.log主要存在以下告警:
2022-08-06 23:57:12.737: [ora.orcl.db][3547522816]{1:51157:512} [clean] ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
……
CRS-2674: Start of 'ora.orcl.db' on 'hisdb2' failed
CRS-2632: There are no more servers to try to place resource 'ora.orcl.db' on that would satisfy its placement policy

Change:

orcl数据库此前做过字符集的修改,曾将cluster_database参数设置为false,很可能在修改完字符集后没有将此参数修改回true.

检查节点1 pfile中该参数值.

节点1执行:

节点1执行:
SQL> create pfile from spfile;

File created.
[oracle@hisdb1 dbs]$ cat initorcl1.ora
*.cluster_database=FALSE (该参数值果然是FALSE)
将节点1中该参数值修改为ture.
SQL> alter system set cluster_database=true scope=spfile sid='*';

System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

[oracle@hisdb1 ~]$ srvctl start database -d orcl (此处成功开启orcl数据库)
[oracle@hisdb1 ~]$ logout
[root@hisdb1 ~]# su - grid
Last login: Sat Aug 6 23:45:37 CST 2022 on pts/2
[grid@hisdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.LISTENER.lsnr
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.OCR.dg
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.asm
ONLINE ONLINE hisdb1 Started
ONLINE ONLINE hisdb2 Started
ora.gsd
OFFLINE OFFLINE hisdb1
OFFLINE OFFLINE hisdb2
ora.net1.network
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
ora.ons
ONLINE ONLINE hisdb1
ONLINE ONLINE hisdb2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE hisdb1
ora.cvu
1 ONLINE ONLINE hisdb1
ora.hisdb1.vip
1 ONLINE ONLINE hisdb1
ora.hisdb2.vip
1 ONLINE ONLINE hisdb2
ora.oc4j
1 ONLINE ONLINE hisdb2
ora.orcl.db
1 ONLINE ONLINE hisdb1 Open
2 ONLINE ONLINE hisdb2 Open
ora.pacs.db
1 ONLINE ONLINE hisdb1 Open
2 ONLINE ONLINE hisdb2 Open
ora.scan1.vip
1 ONLINE ONLINE hisdb1

SQL> create pfile from spfile;

File created.
[oracle@hisdb1 dbs]$ cat initorcl1.ora
*.cluster_database=TRUE (最新pfile文件中该参数已成功修改)