12C -- ORA-01033: ORACLE initialization or shutdown in progress


初裝oracle 12.2 rac數據庫。

登錄RAC數據庫中第1節點

$ sqlplus '/as sysdba'
SQL> select name,open_mode from v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
DB12PDB1                       MOUNTED
DB12PDB2                       MOUNTED
PLUG_TEST                      MOUNTED

打開PDB(plug_test)
SQL> alter pluggable database plug_test open;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
DB12PDB1                       MOUNTED
DB12PDB2                       MOUNTED
PLUG_TEST                      READ WRITE

SQL> 

 

嘗試通過scan ip連接pdb(plug_test),有時候能登錄數據庫plug_test;但是有時候會無法登錄,並報以下錯誤:

$ sqlplus  robert/robert@plug_test

SQL*Plus: Release 12.2.0.1.0 Production on Thu Apr 13 19:04:18 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus

困惑從這里開始。不明白為何有時能登錄,有時又不能登錄。

登錄第二節點查看pdb狀態:

SQL> select name,open_mode from v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
DB12PDB1                       MOUNTED
DB12PDB2                       MOUNTED
PLUG_TEST                      MOUNTED

SQL> 

從這里可以看出,在第二節點上,實例plug_test處於mounted狀態

 

查看gv$pdbs:

SQL>  select inst_id,name,open_mode from gv$pdbs;

   INST_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         1 PDB$SEED                       READ ONLY
         1 DB12PDB1                       MOUNTED
         1 DB12PDB2                       MOUNTED
         1 PLUG_TEST                      READ WRITE
         2 PDB$SEED                       READ ONLY
         2 DB12PDB1                       MOUNTED
         2 DB12PDB2                       MOUNTED
         2 PLUG_TEST                      MOUNTED

8 rows selected.

SQL>

這里可以看出,出現上面的問題是因為只在節點1開啟了pdb(plug_test)實例。而通過scan ip連接該pdb的時候,scan ip會隨機路由,如果路由到第二節點的時候,就會報錯無法連接。

為了驗證這個問題,增加了一個測試環節。直接通過節點1的vip連接,就不會報上面的錯誤。

 

通過查看alter pluggable database 語法可以看出,使用該命令的時候,還要指定參數instances。如果不加,默認是本地實例。

 

所以,從第二節點啟動plug_test實例即可。

alter pluggable database plug_test open instances=('DB12C2');

 

如果想啟動所有實例,可以使用一下命令:

SQL> alter pluggable database plug_test close instances=all;

或者 

SQL> alter pluggable database plug_test OPEN instances=('DB12C1','DB12C2');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM