Data Guard環境でPDBを作成した後にTEMPファイルを作成する方法 (2023/09/26)
Data Guard環境でPDBを作成した後にTEMPファイルを作成する方法 (2023/09/26)
https://database-heartbeat.com/2023/09/26/temp-file-dg/
はじめに
Data Guard環境でプライマリにPDBを作成すると、そのPDBもスタンバイに作成されます。ただし、スタンバイではTEMPファイルが失われます。TEMPファイルを作成するために、顧客からスタンバイに切り替えてTEMPファイルを作成するというコメントを受け取りました。これは不要です。これにより、このブログ記事で利用できる選択肢が出ました。
スポイラー警報!PDBがオープンされると、Oracle Database 23cによってファイルが自動的に作成されます。
環境
- Oracle Databaseバージョン19cは、Base Database Serviceを使用してOracle Cloudで実行
- Oracle Databaseバージョン23cは、Base Database Serviceを使用してOracle Cloudで実行
Oracle Database 19c
スタンバイにTEMPファイルを作成するには、スタンバイが読み取り専用モードで開いている必要があります。
Active Data Guardオプション・ライセンスがある場合、これは簡単です。PDBを読取り専用モードでオープンし、TEMPファイルを作成します。
SQL> alter session set container = PDB001;SQL> alter tablespace temp add tempfile;SQL> select name from v$tempfile;Active Data Guardオプション・ライセンスがない場合でも、スタンバイは読取り専用モードでオープンできます。ただし、REDO Applyが停止している間のみ。そのため、REDO Applyを停止し、PDBを読取り専用モードでオープンし、TEMPファイルを作成し、データベースをMOUNTモードで再起動して、REDO Applyを再度開始します。
DGMGRL> edit database <standby_db_unique_name> set state = 'apply-off';SQL> alter database open;SQL> alter pluggable database PDB001 open;SQL> alter session set container = PDB001;SQL> alter tablespace temp add tempfile;SQL> alter session set container = cdb$root;SQL> shutdown immediateSQL> startup mountDGMGRL> edit database <standby_db_unique_name> set state = 'apply-on';DGMGRL> show configurationこの間、REDOがスタンバイ・ホストに引き続き送信されるため、プライマリはスタンバイによって引き続き保護されます。再度REDO Applyが開始されるまで適用されません。スタンバイをオープンする前にREDOを適用する必要があるため、この時間中または直後にスイッチオーバーまたはフェイルオーバーが必要な場合は、RTOが少し高くなる可能性があります。ただし、TEMPファイルを作成してデータベースを再起動しても、それほど時間がかかりません。完全性について言及されます。
Oracle Database 23c
Oracle Database 23cでは、スタンバイ上のTEMPファイルの心配は不要になりました。次の場合にPDBがオープンすると、自動的に作成されます。
- スタンバイはOracle Managed Files (OMF)を使用します。つまり、db_create_file_destパラメータを設定して、データ・ファイルまたは一時ファイルの作成場所を定義します。
- standby_file_managementパラメータがスタンバイでAUTOに設定されています。
-- on standbySQL> select value from v$parameter where name='db_create_file_dest';VALUE---------------------------------------/u02/app/oracle/oradata/CDB23c_dc2/SQL> select value from v$parameter where name='standby_file_management';VALUE---------------------------------------AUTO-- on primarySQL> create pluggable database pdb23c admin user pdb23cadmin identified by VerySecretPW__2023;SQL> alter pluggable database pdb23c open;-- on standbySQL> alter pluggable database pdb23c open; -- when becomes primary, or requires ADG or stop Redo ApplySQL> alter session set container=pdb23c;SQL> select name from v$tempfile;NAME--------------------------------------------------------------------------------/u02/app/oracle/oradata/CDB23c_dc1/CDB23c_dc2/03C1CA724D8B292BE06353000A0AA39B/datafile/o1_mf_temp_lgkk99nz_.dbfまとめ
Oracle Database 19cでは、TEMPファイルが読取り専用モードでオープンしている間に、スタンバイPDBにTEMPファイルを作成する必要があります。ライセンス・ポリシーに準拠するために、この操作中にActive Data Guardオプションのライセンスを取得するか、REDO Applyを停止します。
Oracle Database 23cでは、スタンバイPDBがOracle Managed Filesを使用し、スタンバイでstandby_file_managementパラメータがAUTOに設定されている場合、スタンバイPDBがオープンされるとTEMPファイルが自動的に作成されます。
関連情報
- Data Guard Physical Standby – Managing temporary tablespace tempfiles (Doc ID 1514588.1)
- A Simple Approach – Creating PDBs in a Data Guard environment with TDE enabled
- Creating PDBs in Data Guard Environments while using OCI Vault for TDE Key Management
- Hot Clone a remote PDB in Data Guard Environments using Transient no-standby PDBs
- How PDB Recovery Isolation in 21c makes your Life easier

コメント
コメントを投稿