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 immediate
SQL> startup mount
DGMGRL> 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 standby
SQL>
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 primary
SQL>
create
pluggable
database
pdb23c admin
user
pdb23cadmin identified
by
VerySecretPW__2023;
SQL>
alter
pluggable
database
pdb23c
open
;
-- on standby
SQL>
alter
pluggable
database
pdb23c
open
;
-- when becomes primary, or requires ADG or stop Redo Apply
SQL>
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
コメント
コメントを投稿