Oracle Database の 手動PDB追加は、CREATE PLUGGABLE DATABASE文で作成できます。
ということで、前回作成した 3台のマルチ・スタンバイ・データーベースの Data Gurd 構成を使用して Primary Database へ PLUGGABLE DATABASE (PDB) を追加すると 全Standby Database へ正常に伝搬して作成/変更/削除されるか確認してみてみます。
■ 手順概要
PDBを作るための主なタスクは次です。
STANDBY_FILE_MANAGEMENT設定
プライマリ・データベースでのPDBの作成
作成した PDBの マスター暗号化キー作成およびアクティブ化
スタンバイ・データベースへ マスター暗号化キー(walletsファイル)を配布転送
表領域とデータ・ファイル確認
Standby PDB へTEMP表領域作成
PDB表領域拡張チューニング
アプリケーション用デフォルト表領域作成とユーザー作成
クライアント接続のための接続記述子作成
CDB再起動時の PDBの自動起動設定
PDB削除
■ Data Guard 構成
今回は 4つの Database Server を直列に リアルタイム・カスケード・スタバイ させた Data Guard 構成へ PDB を追加してみてみます。
・参考: Oracle Cloud: Data Guard Broker で複数スタンバイ・データベース構成の REDO転送を制御
● Data Guard Coufiguration 確認
CDB_TOKYO → CDB_SHIBUYA → CDB_OSAKA → CDB_NAMBA の順番にリアルタイム・カスケード・スタバイさせています。
DGMGRL> show configuration
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
CDB_TOKYO - Primary database
CDB_SHIBUYA - Physical standby database
CDB_OSAKA - Physical standby database (receiving current redo)
CDB_NAMBA - Physical standby database (receiving current redo)
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 56 seconds ago)
■ STANDBY_FILE_MANAGEMENT 設定
STANDBY_FILE_MANAGEMENT を AUTO に設定すると、データファイル作成等すると スタンバイ・データベース上にファイルが自動的に作成されます。
この設定はでデフォルトOFFなので、AUTOへ変更してデータファイル追加を自動で スタンバイ・データベース上に作成されるようにしておきます。
・参考: データベース・リファレンス: STANDBY_FILE_MANAGEMENT
● 設STANDBY_FILE_MANAGEMENT 設定
この設定はStandby DBへは自動伝搬されないので、Primary/Standby DBへ個別にログインして設定します
1) CDB接続
コンテナデータベースへ接続
2) STANDBY_FILE_MANAGEMENT 設定
SQL> ALTER SYSTEM SET standby_file_management=AUTO SCOPE=BOTH;
System altered.
3) 確認
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO
4) 各Standby Databaseへ設定
1) ~ 3) の手順をStandby DBへ設定します。
■ プライマリ・データベースでのPDBの作成
Oracle Data Guard構成では、プライマリ・データベースのプラガブル・データベース(PDB)は、通常のデータベースのPDBを作成するのと同じ方法で作成します。
詳細な情報と例は、http://support.oracle.com にある My Oracle Support Note#2049127.1 を参照してください。
PDBのサブセットをマルチテナント・コンテナ・データベース(CDB)のフィジカル・スタンバイに複製するように指定できます。
ENABLED_PDBS_ON_STANDBYパラメータ(ENABLED_PDBS_ON_STANDBYを参照)は、フィジカル・スタンバイでのみ有効であり、プライマリ・データベースでは無視されます。(プライマリ・データベースに設定して使用できるのは、そのデータベースがスタンバイ・データベースになった場合のみです。) これは、どのPDBをフィジカル・スタンバイ・データベースで有効化するかしないかを指定するために使用できます。
このパラメータが指定されていない場合、STANDBYS句が使用されていないかぎりCDB内のすべてのPDBがスタンバイ上に作成されます。
● CREATE PDB
SYS@CDB_TOKYO SQL> CREATE PLUGGABLE DATABASE PDB ADMIN USER pdbadmin IDENTIFIED BY <adminパスワード> keystore identified by <TDE Walletパスワード> STANDBYS=All;
Pluggable database created.
TDE Wallet パスワードを指定しなかった場合、いつしか次のエラーが出力されます。
ORA-28374: typed master key not found in wallet.
● CREATE PDB 確認
1) PDB 確認
SYS@CDB_TOKYO SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB MOUNTED
● PDB起動
Primary/Standby DB全てOPENさせます
1) PDB OPEN (全DB)
SQL> alter pluggable database PDB open instances=all;
Pluggable database altered.
2) PDB OPEN 確認
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ WRITE NO
■ 表領域とデータ・ファイル確認
● Data File 確認SQL作成
表領域とData File確認するためのSQLは長文なので、ここでは tablespaces.sql というSQLファイルを作成して sql実行します。
[oracle@db-tokyo1 ~]$ cat tablespaces.sql
col FILE_NAME format a90
col TABLESPACE_NAME format a10
set lin 200 pages 1000
SELECT
a.TABLESPACE_NAME
,a.BYTES/1024/1024 as "Size(MB)"
,a.FILE_NAME
,a.autoextensible as "Auto_Extent"
,a.increment_by * (select VALUE from v$parameter where NAME='db_block_size') /1024/1024 as "Auto_Extent_Size(MB)"
,TO_CHAR(a.MAXBYTES/1024/1024,'999,999,999') as "MAX_SIZE(MB)"
,b.BLOCK_SIZE
,b.BIGFILE
,b.RETENTION
FROM DBA_DATA_FILES a
, DBA_TABLESPACES b
WHERE a.TABLESPACE_NAME=b.TABLESPACE_NAME
union all
SELECT
x.TABLESPACE_NAME
,x.BYTES/1024/1024 as "Size(MB)"
,x.FILE_NAME
,x.autoextensible as "Auto_Extent"
,x.increment_by * (select VALUE from v$parameter where NAME='db_block_size') /1024/1024 as "Auto_Extent_Size(MB)"
,TO_CHAR(x.MAXBYTES/1024/1024,'999,999,999') as "MAX_SIZE(MB)"
,y.BLOCK_SIZE
,y.BIGFILE
,y.RETENTION
FROM dba_temp_files x
, DBA_TABLESPACES y
WHERE x.TABLESPACE_NAME=y.TABLESPACE_NAME
ORDER By TABLESPACE_NAME
;
● データ・ファイル確認
SYS@CDB_TOKYO1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775 YES 10 32,768 8192 NO NOT APPLY
TEMP 223 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785 YES .625 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775 YES 5 32,768 8192 NO NOGUARANTEE
UNDO_2 65 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undo_2.270.1120232975 YES 5 32,768 8192 NO NOGUARANTEE
■ Standby PDB へ TEMP表領域作成
手動で作成した場合、Standby Database側へはTEMP表領域は自動作成されないことがあります。
1) PDB へログイン
SYS@CDB_SHIBUYA SQL> alter session set container = PDB;
Session altered.
SYS@CDB_SHIBUYA SQL> show con_name
CON_NAME
------------------------------
PDB
2) Temporary Tablespace 存在確認
SYS@CDB_SHIBUYA SQL> column tablespace_name format a12;
SYS@CDB_SHIBUYA SQL> column file_name format a100
SYS@CDB_SHIBUYA SQL> select tb.tablespace_name, tf.file_name from dba_tablespaces tb left join dba_temp_files tf on tf.tablespace_name = tb.tablespace_name where tb.contents = 'TEMPORARY';
TABLESPACE_N FILE_NAME
------------ --------------------------------------------------
TEMP
3) Temporary Tablespace 追加
SYS@CDB_SHIBUYA SQL> alter tablespace TEMP add tempfile '+DATA' size 100M reuse autoextend on next 10M maxsize unlimited;
Tablespace altered.
4) Temporary Tablespace 追加確認
SYS@CDB_SHIBUYA SQL> select tb.tablespace_name, tf.file_name from dba_tablespaces tb left join dba_temp_files tf on tf.tablespace_name = tb.tablespace_name where tb.contents = 'TEMPORARY';
TABLESPACE_NAME FILE_NAME
------------------------------ ----------------------------------------------------------------------------------------------------
TEMP +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.307.1125313413
■ 表領域とデータファイルのチューニング
作成されたData Fileは最小サイズです。本番/開発用途では小さすぎるサイズであるので、必要に応じて拡張設定する必要があります。
・参考: SQL言語リファレンス: CREATE TABLESPACE
● PDB接続
SYS@CDB_TOKYO1 SQL> alter session set container = PDB;
● UNDO表領域再作成
RAC Instance 2番以降の UNDO表領域は、UNDO_# という名前になり、Instance 1番と異なるので、1番とあわせるため再作成します。
1) 全Node Instance PDB状態確認
全InstanceのPDBが起動(READ WRITE)していることを確認
SYS@CDB_TOKYO1 SQL> col NAME format a20
SYS@CDB_TOKYO1 SQL> select INST_ID,con_id,name,open_mode,LOCAL_UNDO,restricted from gv$pdbs order by CON_ID,INST_ID;
INST_ID CON_ID NAME OPEN_MODE LOCAL_UNDO RES
---------- ---------- -------------------- ---------- ---------- ---
1 3 PDB READ WRITE 1 NO
2 3 PDB READ WRITE 1 NO
2) Instance2用 UNDOTBS 作成
Instance番号1番とおなじように UNDOTBS# の名前のUNDO表領域を作成します。
SYS@CDB_TOKYO1 SQL> CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED RETENTION NOGUARANTEE;
Tablespace created.
3) Instance2用 UNDOTBS 作成確認
Primary DB(CDB_TOKYO)に作成したUNDO表領域が作成されていることと、他の Standby DB も作成されていることを確認
・CDB_TOKYO確認
SYS@CDB_TOKYO1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775 YES 10 32,768 8192 NO NOT APPLY
TEMP 223 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785 YES .625 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.281.1120368277 YES 100 32,768 8192 NO NOGUARANTEE
UNDO_2 65 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undo_2.270.1120232975 YES 5 32,768 8192 NO NOGUARANTEE
6 rows selected.
[grid@db-tokyo2 ~]$ asmcmd ls -l +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE
Type Redund Striped Time Sys Name
DATAFILE UNPROT COARSE NOV 10 04:00:00 Y SYSAUX.277.1120232775
DATAFILE UNPROT COARSE NOV 10 04:00:00 Y SYSTEM.271.1120232775
DATAFILE UNPROT COARSE NOV 10 04:00:00 Y UNDOTBS1.275.1120232775
DATAFILE UNPROT COARSE NOV 10 05:00:00 Y UNDOTBS2.281.1120368277
DATAFILE UNPROT COARSE NOV 10 04:00:00 Y UNDO_2.270.1120232975
4) Standby DB確認
Primary DBで作成したUNDO表領域がStandby DBへ伝搬していることを確認
・CDB_SHIBUYA確認
SYS@CDB_SHIBUYA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.275.1120232791 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232787 YES 10 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.307.1125313413 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.268.1120232795 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.284.1120368279 YES 100 32,768 8192 NO NOGUARANTEE
UNDO_2 65 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undo_2.283.1120232977 YES 5 32,768 8192 NO NOGUARANTEE
・CDB_OSAKA確認
SYS@CDB_OSAKA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.301.1120232793 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.300.1120232787 YES 10 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.315.1125305101 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.302.1120232799 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.311.1120368281 YES 100 32,768 8192 NO NOGUARANTEE
UNDO_2 65 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undo_2.309.1120232977 YES 5 32,768 8192 NO NOGUARANTEE
・CDB_NAMBA確認
SYS@CCDB_NAMBA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.270.1120232791 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.277.1120232787 YES 10 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.291.1125313935 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.272.1120232797 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.286.1120368283 YES 100 32,768 8192 NO NOGUARANTEE
UNDO_2 65 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undo_2.281.1120232979 YES 5 32,768 8192 NO NOGUARANTEE
4)Instance#2 の undo_tablespaceパラメータ修正
SYS@CDB_TOKYO2 SQL> alter system set undo_tablespace='UNDOTBS2' sid='CDB2' scope=SPFILE;
System altered.
※ CDB上で実行の場合
alter system set undo_tablespace='UNDOTBS2' sid='CDB2' container='PDB' scope=SPFILE;
5)Instance#2 の PDB再起動
SYS@CDB_TOKYO2 SQL> alter pluggable database PDB close instances=('CDB2');
Pluggable database altered.
SYS@CDB_TOKYO2 SQL> alter pluggable database PDB open instances=('CDB2');
Pluggable database altered.
6) instance#2 OPEN確認
SYS@CDB_TOKYO2 SQL> select INST_ID,con_id,name,open_mode,LOCAL_UNDO,restricted from gv$pdbs order by CON_ID,INST_ID;
INST_ID CON_ID NAME OPEN_MODE LOCAL_UNDO RES
---------- ---------- -------------------- ---------- ---------- ---
1 3 PDB READ WRITE 1 NO
2 3 PDB READ WRITE 1 NO
7) PDB undo_tablespace パラメータ修正確認
SYS@CDB_TOKYO2 SQL> col NAME format a30
SYS@CDB_TOKYO2 SQL> col VALUE format a30
SYS@CDB_TOKYO2 SQL> set lin 200
SYS@CDB_TOKYO2 SQL> select INST_ID,CON_ID, NAME, VALUE from gv$parameter where NAME like 'undo%' order by NAME,INST_ID;
INST_ID CON_ID NAME VALUE
---------- ---------- -------------------- ------------------------------
1 3 undo_management AUTO
2 3 undo_management AUTO
1 3 undo_retention 900
2 3 undo_retention 900
1 3 undo_tablespace UNDOTBS1
2 3 undo_tablespace UNDOTBS2
6 rows selected.
8)旧UNDO表領域削除**
SYS@CDB_TOKYO2 SQL> drop tablespace UNDO_2 including contents and datafiles cascade constraints;
Tablespace dropped.
9)旧UNDO表領域削除確認
Primary DBの 旧UNDO表領域UNDO_2が削除されていることを確認
・表領域削除確認
SYS@CDB_TOKYO1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775 YES 10 32,768 8192 NO NOT APPLY
TEMP 223 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785 YES .625 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.281.1120368277 YES 100 32,768 8192 NO NOGUARANTEE
・OSファイル削除確認
[grid@db-tokyo2 ~]$ asmcmd ls -l +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE
Type Redund Striped Time Sys Name
DATAFILE UNPROT COARSE NOV 10 04:00:00 Y SYSAUX.277.1120232775
DATAFILE UNPROT COARSE NOV 10 04:00:00 Y SYSTEM.271.1120232775
DATAFILE UNPROT COARSE NOV 10 04:00:00 Y UNDOTBS1.275.1120232775
DATAFILE UNPROT COARSE NOV 10 05:00:00 Y UNDOTBS2.281.1120368277
10)Standby DBでの 旧UNDO表領域削除確認
Standby DBの 旧UNDO表領域UNDO_2が削除されていることを確認
・CDB_NAMBA
SYS@CDB_NAMBA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.270.1120232791 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.277.1120232787 YES 10 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.291.1125313935 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.272.1120232797 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.286.1120368283 YES 100 32,768 8192 NO NOGUARANTEE
・CDB_OSAKA
SYS@CDB_OSAKA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.301.1120232793 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.300.1120232787 YES 10 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.315.1125305101 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.302.1120232799 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.311.1120368281 YES 100 32,768 8192 NO NOGUARANTEE
・CDB_SHIBUYA
SYS@CDB_SHIBUYA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.275.1120232791 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232787 YES 10 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.307.1125313413 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.268.1120232795 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.284.1120368279 YES 100 32,768 8192 NO NOGUARANTEE
● 表領域拡張チューニング
初期サイズは小さすぎるので実際に使用するサイズまでリサイズします。
また、自動拡張サイズも小さすぎるので、自動拡張が頻繁にされないようにサイズを調整します。
1) 表領域データファイル確認
SYS@CDB_TOKYO1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 420 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775 YES 10 32,768 8192 NO NOT APPLY
SYSTEM 380 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775 YES 10 32,768 8192 NO NOT APPLY
TEMP 223 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785 YES .625 32,768 8192 NO NOT APPLY
UNDOTBS1 65 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775 YES 5 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.281.1120368277 YES 100 32,768 8192 NO NOGUARANTEE
2) 表領域データファイル拡張チューニング
SYS@CDB_TOKYO1 SQL>
ALTER DATABASE DATAFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
ALTER DATABASE DATAFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
ALTER DATABASE DATAFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
ALTER DATABASE DATAFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
ALTER DATABASE TEMPFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
3) 表領域データファイル自動拡張設定
SYS@CDB_TOKYO1 SQL>
ALTER DATABASE DATAFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775' resize 500M;
ALTER DATABASE DATAFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775' resize 500M;
ALTER DATABASE DATAFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775' resize 100M;
ALTER DATABASE TEMPFILE '+DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785' resize 250M;
4) 表領域データファイル変更確認
SYS@CDB_TOKYO1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775 YES 100 32,768 8192 NO NOT APPLY
TEMP 250 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785 YES 100 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.281.1120368277 YES 100 32,768 8192 NO NOGUARANTEE
5) Standby DB 表領域データファイル変更確認
SYS@CDB_SHIBUYA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.275.1120232791 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232787 YES 100 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.307.1125313413 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.268.1120232795 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.284.1120368279 YES 100 32,768 8192 NO NOGUARANTEE
SYS@CDB_NAMBA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.270.1120232791 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.277.1120232787 YES 100 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.291.1125313935 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.272.1120232797 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.286.1120368283 YES 100 32,768 8192 NO NOGUARANTEE
SYS@CDB_OSAKA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.301.1120232793 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.300.1120232787 YES 100 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.315.1125305101 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.302.1120232799 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.311.1120368281 YES 100 32,768 8192 NO NOGUARANTEE
■ 作成したPDBの マスター暗号化キー作成およびアクティブ化
作成した PDB のTDE暗号化が有効になっていない場合、表領域作成で ORA-28361: master key not yet set エラーが発生します。その場合この手順を実行します。
● ORA-28361 エラー発生確認
1)表領域作成で ORA-28361 エラー
SYS@CDB_TOKYO1 SQL> CREATE BIGFILE TABLESPACE USERS DATAFILE SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
CREATE BIGFILE TABLESPACE USERS DATAFILE SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
*
ERROR at line 1:
ORA-28361: master key not yet set
2) アラート・ログ確認
[oracle@db-tokyo1 ~]$ tail -f $ORACLE_BASE/diag/rdbms/${ORACLE_UNQNAME,,}/$ORACLE_SID/trace/alert_$ORACLE_SID.log
2022-11-14T15:16:18.046289+00:00
PDB1(4):CREATE BIGFILE TABLESPACE USERS DATAFILE SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
2022-11-14T15:16:18.046346+00:00
PDB1(4):Force tablespace USERS to be encrypted
PDB1(4):Master key not set for this container (4). Please ensure that wallet is configured and master key is set.
PDB1(4):ORA-28361 signalled during: CREATE BIGFILE TABLESPACE USERS DATAFILE SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED...
● Wallet Status 確認
追加した PDB の STATUS が OPEN_NO_MASTER_KEY であることを確認
OPEN_NO_MASTER_KEYである場合、表領域を作成しようとすると ORA-28361: master key not yet set が出力され表領域を作成することはできません。
SQL> set lin 200
SQL> col WRL_PARAMETER format a60
SQL> col NAME format a20
SQL> select a.*,b.NAME from v$encryption_wallet a, v$pdbs b where a.CON_ID=b.CON_ID(+) order by a.CON_ID;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC CON_ID NAME
-------------------- ------------------------------------------------------------ ------------------------------ -------------------- --------- -------- --------- ---------- --------------------
FILE /opt/oracle/dcs/commonstore/wallets/CDB_NAMBA/tde/ OPEN AUTOLOGIN SINGLE NONE NO 1
FILE OPEN AUTOLOGIN SINGLE UNITED NO 2 PDB$SEED
FILE OPEN_NO_MASTER_KEY AUTOLOGIN SINGLE UNITED UNDEFINED 3 PDB
● Wallet ファイル(cwallet.sso and ewallet.p12)をバックアップ
slnet.ora にある ENCRYPTION_WALLET_LOCATION に Wallet ファイルがあるのでバックアップします。
バックアップはPrimary\Standby DB全てのノードの Wallet ファイルをバックアップします。
1) ENCRYPTION_WALLET_LOCATION確認
[oracle@db-tokyo1 ~]$ cat $TNS_ADMIN/sqlnet.ora | grep ENCRYPTION_WALLET_LOCATION
# ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/$ORACLE_UNQNAME/tde)))
2) Wallet ファイル確認
[oracle@db-tokyo1 ~]$ cd /opt/oracle/dcs/commonstore/wallets/$ORACLE_UNQNAME
[oracle@db-tokyo1 CDB_TOKYO]$ ls -l
total 212
-rw-r--r-- 1 oracle oinstall 309 Nov 9 05:08 cdb_ocids.json
drwx------ 2 oracle oinstall 20480 Oct 5 13:02 db
drwxr-xr-x 2 oracle oinstall 20480 Oct 5 13:09 EA4A2316EB740870E0530A010A0AA68A
drwx------ 2 oracle oinstall 20480 Oct 5 12:59 tde
[oracle@db-tokyo1 CDB_TOKYO]$ ls -l ./tde
total 32
-rwx------ 1 oracle oinstall 5512 Oct 5 12:59 cwallet.sso
-rwx------ 1 oracle oinstall 2555 Oct 5 12:53 ewallet_2022100512534983.p12
-rwx------ 1 oracle oinstall 3995 Oct 5 12:59 ewallet_2022100512590406.p12
-rwx------ 1 oracle oinstall 5467 Oct 5 12:59 ewallet.p12
3) Wallet ファイル バックアップ
[oracle@db-tokyo1 CDB_TOKYO]$ cp -r tde tde_backup
[oracle@db-tokyo1 CDB_TOKYO]$ ls -l
total 212
-rw-r--r-- 1 oracle oinstall 309 Nov 9 05:08 cdb_ocids.json
drwx------ 2 oracle oinstall 20480 Oct 5 13:02 db
drwxr-xr-x 2 oracle oinstall 20480 Oct 5 13:09 EA4A2316EB740870E0530A010A0AA68A
drwx------ 2 oracle oinstall 20480 Oct 5 12:59 tde
drwx------ 2 oracle oinstall 20480 Nov 10 10:09 tde_backup
● TDEウォレット内のTDE暗号化キーを更新
Primary DBのみで作業します
1) dbid確認
dbcliコマンド実行にdbid必要なので確認しておきます
[root@db-tokyo1 ~]# dbcli list-databases
ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID
---------------------------------------- ---------- -------- -------------------- ---------- -------- -------- ---------- ------------ ----------------------------------------
cdc6-98a0-417e-9ad7-d96c CDB Rac 19.16.0.0.0 true Oltp ASM Configured a364-a3b7-447d-87cc-8e61
2) TDEウォレット内のTDE暗号化キーを更新
サポート手順はこちらになります。
・My Oracle Support: OCI DB SYSTEM:Create tablespace error "ORA-28361: Master Key Not Yet Set" on migrated database (Doc ID 2716604.1)
今回は Database Cloud Service で使用できる dbcli update-tdekeyコマンド を使用して、TDEウォレット内のTDE暗号化キーを更新してみます。
プラガブル・データベース(-pdbNamesが指定されている場合)またはコンテナ・データベース(- rootDatabaseが指定されている場合)の暗号化キー(あるいはその両方)を更新できます。
[root@db-tokyo1 ~]# dbcli update-tdekey -i cdc6-98a0-417e-9ad7-d96c -p -n PDB
TDE Admin wallet password: <-- adminパスワード入力して[Enter]
{
"jobId" : "995f0d78-4ba9-4a4e-a86c-cdb28303f46d",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "November 10, 2022 10:21:06 AM UTC",
"resourceList" : [ ],
"description" : "TDE update CDB - PDBs: [PDB]",
"updatedTime" : "November 10, 2022 10:21:07 AM UTC",
"percentageProgress" : "0%",
"cause" : null,
"action" : null
}
3) STATUS確認
追加したPODのSTATUS が OPEN であることを確認
Primary DBのみで作業します
set lin 200
col WRL_PARAMETER format a60
col NAME format a20
select a.*,b.NAME from v$encryption_wallet a, v$pdbs b where a.CON_ID=b.CON_ID(+) order by a.CON_ID;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC CON_ID NAME
-------------------- ------------------------------------------------------------ ------------------------------ -------------------- --------- -------- --------- ---------- --------------------
FILE /opt/oracle/dcs/commonstore/wallets/CDB_TOKYO/tde/ OPEN AUTOLOGIN SINGLE NONE NO 1
FILE OPEN AUTOLOGIN SINGLE UNITED NO 2 PDB$SEED
FILE OPEN AUTOLOGIN SINGLE UNITED NO 3 PDB
● 全Standby DBへ walletsファイルを転送
Primary DBで更新した Wallet ファイルは StandbyDB へ転送して更新する必要があります
1) walletsディレクトリ移動
[oracle@db-tokyo1 ~]$ cd /opt/oracle/dcs/commonstore/wallets/$ORACLE_UNQNAME/tde
2) cwallet.sso と ewallet.p12 確認
[oracle@db-tokyo1 CDB_TOKYO]$ ls -l
total 64
-rw------- 1 oracle oinstall 8264 Nov 10 10:21 cwallet.sso
-rwx------ 1 oracle oinstall 2555 Oct 5 12:53 ewallet_2022100512534983.p12
-rwx------ 1 oracle oinstall 3995 Oct 5 12:59 ewallet_2022100512590406.p12
-rwx------ 1 oracle asmadmin 5467 Nov 10 10:21 ewallet_2022111010211936_OdaRotateKey.p12
-rw------- 1 oracle asmadmin 6747 Nov 10 10:21 ewallet_2022111010211998_OdaRotateKey.p12
-rw------- 1 oracle oinstall 8219 Nov 10 10:21 ewallet.p12
3) scpで全Standby DBへ cwallet.sso と ewallet.p12を転送
[oracle@db-tokyo1 tde]$ scp -i ~/.ssh/id_rsa cwallet.sso ewallet.p12 oracle@db-shibuya1.clientsubnet.vcnexatokyo.oraclevcn.com:/opt/oracle/dcs/commonstore/wallets/CDB_SHIBUYA/tde/
cwallet.sso 100% 8264 23.9MB/s 00:00
ewallet.p12 100% 8219 26.1MB/s 00:00
[oracle@db-tokyo1 tde]$ scp -i ~/.ssh/id_rsa cwallet.sso ewallet.p12 oracle@db-namba1.clientsubnet.vcnexaosaka.oraclevcn.com:/opt/oracle/dcs/commonstore/wallets/CDB_NAMBA/tde/
cwallet.sso 100% 8264 857.6KB/s 00:00
ewallet.p12 100% 8219 857.4KB/s 00:00
[oracle@db-tokyo1 tde]$ scp -i ~/.ssh/id_rsa cwallet.sso ewallet.p12 oracle@db-osaka1.clientsubnet.vcnexaosaka.oraclevcn.com:/opt/oracle/dcs/commonstore/wallets/CDB_OSAKA/tde/
cwallet.sso 100% 8264 856.1KB/s 00:00
ewallet.p12 100% 8219 865.4KB/s 00:00
4)全Standby DB の Wallet STATUS OPEN 確認
全Standby DB で OPEN_NO_MASTER_KEY から OPENになっていることを確認
SQL> set lin 200
SQL> col WRL_PARAMETER format a60
SQL> col NAME format a20
SQL> select a.*,b.NAME from v$encryption_wallet a, v$pdbs b where a.CON_ID=b.CON_ID(+) order by a.CON_ID;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC CON_ID NAME
-------------------- ------------------------------------------------------------ ------------------------------ -------------------- --------- -------- --------- ---------- --------------------
FILE /opt/oracle/dcs/commonstore/wallets/CDB_SHIBUYA/tde/ OPEN AUTOLOGIN SINGLE NONE NO 1
FILE OPEN AUTOLOGIN SINGLE UNITED NO 2 PDB$SEED
FILE OPEN AUTOLOGIN SINGLE UNITED NO 3 PDB
■ アプリケーション用デフォルト表領域作成
アプリケーション、作業用の表領域を作成します。
ORA-28374: typed master key not found in wallet が発生した場合は上記の「作成したPDBの マスター暗号化キー作成およびアクティブ化」を実施します
1) PDBへ接続
SYS@CDB_TOKYO1 SQL> ALTER SESSION SET CONTAINER=PDB;
2) アプリケーション用デフォルト表領域USERS作成
SYS@CDB_TOKYO1 SQL> CREATE BIGFILE TABLESPACE USERS DATAFILE SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
Tablespace created.
3) 表領域USERS作成確認
SYS@CDB_TOKYO1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.277.1120232775 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232775 YES 100 32,768 8192 NO NOT APPLY
TEMP 250 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.273.1120232785 YES 100 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.275.1120232775 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.281.1120368277 YES 100 32,768 8192 NO NOGUARANTEE
USERS 10 +DATA/CDB_TOKYO/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/users.285.1120702885 YES 10 33,554,432 8192 YES NOT APPLY
6 rows selected.
4) Standby DB 表領域USERS作成確認
Standby DBへ USERS表領域作成されていることを確認
・CDB_SHIBUYA
SYS@CDB_SHIBUYA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.275.1120232791 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.271.1120232787 YES 100 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.307.1125313413 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.268.1120232795 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.284.1120368279 YES 100 32,768 8192 NO NOGUARANTEE
USERS 10 +DATA/CDB_SHIBUYA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/users.266.1120401521 YES 10 33,554,432 8192 YES NOT APPLY
・CDB_OSAKA
SYS@CDB_OSAKA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.301.1120232793 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.300.1120232787 YES 100 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.315.1125305101 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.302.1120232799 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.311.1120368281 YES 100 32,768 8192 NO NOGUARANTEE
USERS 10 +DATA/CDB_OSAKA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/users.303.1120401585 YES 10 33,554,432 8192 YES NOT APPLY
・CDB_NAMBA
SYS@CDB_NAMBA1 SQL> @tablespaces.sql
TABLESPACE Size(MB) FILE_NAME Aut Auto_Extent_Size(MB) MAX_SIZE(MB) BLOCK_SIZE BIG RETENTION
---------- ---------- ------------------------------------------------------------------------------------------ --- -------------------- ------------ ---------- --- -----------
SYSAUX 500 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/sysaux.270.1120232791 YES 100 32,768 8192 NO NOT APPLY
SYSTEM 500 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/system.277.1120232787 YES 100 32,768 8192 NO NOT APPLY
TEMP 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/TEMPFILE/temp.291.1125313935 YES 10 32,768 8192 NO NOT APPLY
UNDOTBS1 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs1.272.1120232797 YES 100 32,768 8192 NO NOGUARANTEE
UNDOTBS2 100 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/undotbs2.286.1120368283 YES 100 32,768 8192 NO NOGUARANTEE
USERS 10 +DATA/CDB_NAMBA/ECF7F916E9F5D59CE0530A010A0A3C69/DATAFILE/users.276.1120401341 YES 10 33,554,432 8192 YES NOT APPLY
■ アプリケーション用ユーザー作成
1) PDB接続
SYS@CDB_TOKYO1 SQL> ALTER SESSION SET CONTAINER=PDB;
2) TESTユーザー作成
SYS@CDB_TOKYO1 SQL> create user TEST identified by <パスワード>
default tablespace USERS
quota unlimited on USERS
temporary tablespace TEMP
container=current;
User created.
3)TESTユーザー権限付与
SYS@CDB_TOKYO1 SQL> grant CREATE SESSION to TEST;
Grant succeeded.
SYS@CDB_TOKYO1 SQL> grant CREATE TABLE to TEST ;
Grant succeeded.
4)SQL*PLUS 接続確認
[oracle@db-tokyo1 ~]$ sqlplus test/<パスワード>@PDB
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 10 15:00:10 2022
Version 19.16.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
TEST@PDB_TOKYO SQL> show user
USER is "TEST"
5) トランザクション: TABLE作成/INSERT/SELECT 確認
TEST@PDB_TOKYO SQL> CREATE TABLE test_table1 (id number(3), name varchar2(10));
Table created.
TEST@PDB_TOKYO SQL> INSERT INTO test_table1 VALUES (1,'AAA');
1 row created.
TEST@PDB_TOKYO SQL> commit;
Commit complete.
TEST@PDB_TOKYO SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
6) Standby DB 伝搬確認
Primary DBへ実行したトランザクションが伝搬されていることを確認
・PDB_SHIBUYA
[oracle@db-shibuya1 admin]$ sqlplus test/<パスワード>@PDB_SHIBUYA
・・・
TEST@PDB_SHIBUYA SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
・PDB_OSAKA
[oracle@db-osaka1 ~]$ sqlplus test/<パスワード>@PDB_OSAKA
・・・
TEST@PDB_OSAKA SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
・PDB_NAMBA
[oracle@db-namba1 admin]$ sqlplus test/<パスワード>@PDB_NAMBA
・・・
TEST@PDB_NAMBA SQL> select * from test_table1;
ID NAME
---------- ----------
1 AAA
■ CDB再起動時の PDB自動起動設定
CDBの再起動時にPDBのモードを保持するには、SAVE STATEを指定します。
・参考: CDB再起動時のPDBのオープン・モードの保持または破棄
1) 現在の OPEN MODE 確認
READ WRITE であることを確認
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ WRITE NO
2) SAVE STATEを指定
SYS@CDB_TOKYO SQL> alter pluggable database PDB save state;
Pluggable database altered.
3) CDB再起動
[oracle@db-tokyo1 ~]$ srvctl stop db -d CDB_TOKYO
[oracle@db-tokyo1 ~]$ srvctl start db -d CDB_TOKYO
・CDB_SHIBUYA
[oracle@db-shibuya1 ~]$ srvctl stop db -d CDB_SHIBUYA
[oracle@db-shibuya1 ~]$ srvctl start db -d CDB_SHIBUYA
・CDB_OSAKA
[oracle@db-osaka1 ~]$ srvctl stop db -d CDB_OSAKA
[oracle@db-osaka1 ~]$ srvctl start db -d CDB_OSAKA
・CDB_NAMBA
[oracle@db-namba1 ~]$ srvctl stop db -d CDB_NAMBA
[oracle@db-namba1 ~]$ srvctl start db -d CCDB_NAMBA
4) PDB再起動確認
Primary DB は READ WRITEで起動していることを確認
SYS@CDB_TOKYO1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ WRITE NO
5)他Standby DB確認
Standby DB は READ ONLYで起動していることを確認
SYS@CDB_SHIBUYA1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ ONLY NO
SYS@CDB_OSAKA1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ ONLY NO
SYS@CDB_NAMBA1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ ONLY NO
■ クライアント接続のための接続記述子TNSNAME作成
1) Service名確認
Service名は各DB毎に異なります。
[oracle@db-tokyo1 ~]$ lsnrctl stat | grep pdb
Service "pdb.clientsubnet.vcnexatokyo.oraclevcn.com" has 1 instance(s).
2) tnsnames.ora 追加
[oracle@db-tokyo1 ~]$vi $TNS_ADMIN/tnsnames.ora
PDB_TOKYO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db-tokyo-scan.clientsubnet.vcnexatokyo.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb.clientsubnet.vcnexatokyo.oraclevcn.com)
)
)
PDB_SHIBUYA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db-shibuya-scan.clientsubnet.vcnexashibuya.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb.clientsubnet.vcnexashibuya.oraclevcn.com)
)
)
PDB_OSAKA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db-osaka-scan.clientsubnet.vcnexaosaka.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb.clientsubnet.vcnexaosaka.oraclevcn.com)
)
)
PDB_NAMBA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db-namba-scan.clientsubnet.vcnexanamba.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb.clientsubnet.vcnexanamba.oraclevcn.com)
)
)
■ PDB削除
削除する場合、Primary,Standby の削除する PDB を停止してから削除します
・参考:
- SQL言語リファレンス: DROP PLUGGABLE DATABASE
- HowTo drop a PDB in a DataGuard environment
● 全DB CLOSE
Primary/Standby DB 全て削除するPDBを停止
・CDB_TOKYO
SYS@CDB_TOKYO1 SQL> ALTER PLUGGABLE DATABASE PDB CLOSE instances=all;
Pluggable database altered.
・CDB_SHIBAUA
SYS@CDB_SHIBUYA1 SQL> ALTER PLUGGABLE DATABASE PDB CLOSE instances=all;
Pluggable database altered.
・CDB_OSAKA
SYS@CDB_OSAKA1 SQL> ALTER PLUGGABLE DATABASE PDB CLOSE instances=all;
Pluggable database altered.
・CDB_NAMBA
SYS@CDB_NAMBA1 SQL> ALTER PLUGGABLE DATABASE PDB CLOSE instances=all;
Pluggable database altered.
● CDB再起動時のPDBのオープン・モードの破棄
ALTER PLUGGABLE DATABASE PDB DISCARD STATE;
● PDB削除
SYS@CDB_TOKYO1 SQL> DROP PLUGGABLE DATABASE PDB INCLUDING DATAFILES;
Pluggable database dropped.
● PDB削除 確認
SYS@CDB_TOKYO1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
SYS@CDB_SHIBUYA1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
SYS@CDB_OSAKA1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
SYS@CDB_NAMBA1 SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
■ 参考
・データベース管理者ガイド
- PDBの管理
- CDB再起動時のPDBのオープン・モードの保持または破棄
- データベース・レベルでのPDBの変更
- データファイルおよび一時ファイルの管理
- UNDOの管理
・Oracle Data Guard 概要および管理
- データファイルの追加または表領域の作成
- フィジカルおよびスナップショット・スタンバイ・データベースの管理
- プライマリ・データベースでのPDBの作成
・SQL言語リファレンス
- CREATE PLUGGABLE DATABASE
- DROP PLUGGABLE DATABASE
- CREATE TABLESPACE
- ALTER DATABASE
- ALTER SYSTEM
・データベース・リファレンス
- STANDBY_FILE_MANAGEMENT
・Oracle Communities
- HowTo drop a PDB in a DataGuard environment
・Oracle Cloud Infrastructureドキュメント
- Oracle Database CLIリファレンス: TDEコマンド
・My Oracle Support
- OCI DB SYSTEM:Create tablespace error "ORA-28361: Master Key Not Yet Set" on migrated database (Doc ID 2716604.1)
- Data Guard Impact on Oracle Multitenant Environments (Doc ID 2049127.1)
- Oracle Multitenantにおける 遅延 PDB リカバリと STANDBYS=NONE 機能の使用方法 (Doc ID 2651946.1)