今天应用方反馈集群不能访问,测试发现提示
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0
意思是数据库关了,简单思考了一下先一步一步看看:
1、之前因为空间不足宕机过,第一感觉是看空间是否已满,df -h 执行后显示正常
2、查看集群状态 crsctl stat res -t 执行后显示均正常
3、检查crs集群服务情况 crsctl check cluster -all 执行后显示正常
4、查看单机数据库的状态,登录1号机,查看数据库状态select open_mode from v$database;查看PDB数据库状态select name,open_mode from v$pdbs;
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SQL> select name,open_mode from v$pdbs;
NAME
--------------------------------------------------------------------------------
OPEN_MODE
----------
PDB$SEED
READ ONLY
ORCL1PDB
READ WRITE
登录2号机执行同样的两条命令,查看数据库状态正常,查看PDB数据库状态结果为
SQL> select name,open_mode from v$pdbs;
NAME
--------------------------------------------------------------------------------
OPEN_MODE
----------
PDB$SEED
READ ONLY
ORCL1PDB
MOUNTED
2号机的PDB数据库没有启动,应该是服务器重启导致的,执行启动命令
alter pluggable database ORCL1PDB open;
SQL> alter pluggable database ORCL1PDB open;
Pluggable database altered.
执行保存启动状态命令alter pluggable database ORCL1PDB save state;保证下次自动启动PDB
SQL> alter pluggable database ORCL1PDB save state;
Pluggable database altered.
至此数据库已正常访问。
反思,原则上数据库集群只要有一个节点正常,集群应该都能正常访问,但是这次只是其中一个节点的PDB没有启动,集群数据库就不能访问,这是个问题?网上搜罗了一番,没有找到原因,有点遗憾。