0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PDBの Save State と Disable /Enable

Posted at

はじめに

CDB構成におけるPDBはデフォルトでは、CLOSE状態です。Alter Pluggable Database コマンドなどで OPEN状態にし、CDBが再起動された際に自動的にPDBまでOPENさせたい場合などでは SAVE STATE などで状態を維持する事ができます。
Q12-01.png
ただ、これはシングル・インスタンスの場合であり、21c以降のRAC環境においては違います。21cにおいてPDBは GI (Clusterware) の1リソースとして管理される事になった事に起因します。
RAC環境で再起動時に特定のPDBをCLOSE状態の維持をする場合は、クラスタリソースとして登録されたPDBのプロパティを変更する事で可能になります。
Q12-02.png
ただし、このような状態は推奨されませんのでご注意下さい。

RAC環境で再起動時のPDBについて確認

  • srvctlコマンドでRACの稼働状況を確認します
[oracle@node01 ~]$ srvctl status pdb -db orcl23ai -pdb ORCL23AIPDB1
プラガブル・データベースORCL23AIPDB1は有効です。
データベースorcl23aiのプラガブル・データベースORCL23AIPDB1は、ノード: node01,node02で実行中です

(node01から sys で接続)

SQL> show pdbs
 
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCL23AIPDB1                   READ WRITE NO
  • node01で 対象のPDBをCLOSEしてSAVE STATE を試します
SQL> alter pluggable database ORCL23AIPDB1 close;
プラガブル・データベースが変更されました。
 
経過: 00:00:09.45
SQL> show pdbs
 
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCL23AIPDB1                   MOUNTED
SQL> alter pluggable database ORCL23AIPDB1 save state;
プラガブル・データベースが変更されました。
[oracle@node01 ~]$ srvctl status pdb -db orcl23ai -pdb ORCL23AIPDB1
プラガブル・データベースORCL23AIPDB1は有効です。
データベースorcl23aiのプラガブル・データベースORCL23AIPDB1は、ノード: node02で実行中です

node01では停止した状態で Save State しました。

  • CDBを再起動します
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 4946727280 bytes
Fixed Size                  5370224 bytes
Variable Size            3019898880 bytes
Database Buffers         1912602624 bytes
Redo Buffers                8855552 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL> show pdbs
 
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCL23AIPDB1                   READ WRITE NO
[oracle@node01 ~]$ srvctl status pdb -db orcl23ai -pdb ORCL23AIPDB1
プラガブル・データベースORCL23AIPDB1は有効です。
データベースorcl23aiのプラガブル・データベースORCL23AIPDB1は、ノード: node01,node02で実行中です

node01および node02 でOPENされた事が確認されます。(Save State が無効)

クラスタ・リソースPDB のプロパティを変更する

  • Srvctl -help よりシンタックスを確認
    使用方法: srvctl enable pdb -db -pdb [-node ]
    使用方法: srvctl disable pdb -db -pdb [-node ]
  • node1で起動されないように srvctl disable pdb します
[oracle@node01 ~]$srvctl disable pdb -db orcl23ai -pdb ORCL23AIPDB1  -node node01
[oracle@node01 ~]$ srvctl status pdb -db orcl23ai -pdb ORCL23AIPDB1
プラガブル・データベースORCL23AIPDB1は有効です。
データベースorcl23aiのプラガブル・データベースORCL23AIPDB1は、ノード: node02で実行中です
  • リブート後、node1で起動されない事を確認
    (node01から sys で接続)
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area 4946727280 bytes
Fixed Size                  5370224 bytes
Variable Size            3019898880 bytes
Database Buffers         1912602624 bytes
Redo Buffers                8855552 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCL23AIPDB1                   MOUNTED

disable 設定が機能しています。

  • 元の状態に戻す
[oracle@node01 ~]srvctl enable pdb -db orcl23ai -pdb ORCL23AIPDB1  -node node01
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCL23AIPDB1                   MOUNTED

※ Enable だけでは OPENされないことに注意

SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 4946727280 bytes
Fixed Size                  5370224 bytes
Variable Size            3019898880 bytes
Database Buffers         1912602624 bytes
Redo Buffers                8855552 bytes
データベースがマウントされました。
データベースがオープンされました。
[oracle@node01 ~]$ srvctl status pdb -db orcl23ai -pdb ORCL23AIPDB1
プラガブル・データベースORCL23AIPDB1は有効です。
データベースorcl23aiのプラガブル・データベースORCL23AIPDB1は、ノード: node01,node02で実行中です

最後に

Oracle Database 21cからの仕様変更により PDBは GI – Clusterware のリソースとして登録・管理され、よりCDBからの分離性が高まっています。これにより有益な面が増える半面、19cまでの設定や運用が変更を求められるケースや、その変更やリスクに気付けずにトラブルを引き起こす事もあるかも知れません。
推奨されない運用形態だとはされていますが、このようなケースでも可能な範囲で拾っていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?