Oracle Databaseのリフレッシュ可能なクローン機能を使用する—パート2:デモンストレーション
シリーズのパート1では、Oracle®リフレッシュ可能クローンの概要を、いつ、なぜ使用するかを含めて説明します。この投稿では、Oracle 18cで更新可能なクローンプラガブルデータベース(PDB)をセットアップ、構成、保守、およびドロップする方法を示します。
このデモンストレーションを実行するには、次の前提条件を完了してください。
-
ローカルまたはリモートコンテナを指す、新しく作成された更新可能なクローンのデータベースリンクを用意します。
-
archive_log_mode
を設定しますenabled
へ 。 -
設計されたシステムまたはEnterpriseEdition(EE)OracleCloudを使用します。同じプラットフォームまたはバージョンで使用できない場合は、非表示のパラメータ
_exadata_feature_on
を設定します 、True
このデモンストレーションのために。 -
local_undo_mode
を設定しますenabled
へ 。
更新可能なPDBは、クローズのいずれかで設定できます または読み取り専用を開く modeand in OPEN READ ONLY 更新後のクエリのモード。
このデモンストレーションでは、環境が次の仕様に準拠していることを確認してください。
-
Oracle 18cをインストールし、マシンとデータベースで前提条件を実行します。
-
本番データベースの役割について:
-
コンテナデータベース(CDB)の名前を設定します: YCDB1
-
PDB名を設定します: PURCH_PDB
-
-
更新可能なクローンPDBの役割について:
-
CDB名を設定します: XCDB1
-
PDB名を設定します: PDB2_REFRO
-
30分ごとに自動的に更新されるようにPDBを設定します
-
-
create_pdb
を使用してパブリックデータベースリンクを作成します XCDB 。リンクはPURCH_PDBを指している必要があります YCDB 。
-次のTransparentNetworkSubstrate(TNS)コマンドを実行します。
purch_pdb=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = purch_pdb)))
XCDB1=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XCDB1)))
YCDB1=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = YCDB1)))
このデモでは、次のアクティビティを実行します。
-
環境を設定します。
-
本番データベースの更新モードを検索します。
-
更新可能なクローンの更新を無効にするなど、更新可能なクローンの更新モードの方法を示します。
-
本番環境と更新可能なクローンを切り替えます。
更新可能なクローン環境をセットアップします:
更新可能なクローン環境の場合は、次のアクションを実行します。
YCDB1で実行するアクション:
- 本番データベースを作成して開きます。
-
EXPDPからデータをインポートします
impdp
を使用して取得したダンプ ユーティリティまたはHRスキーマのPURCH_PDBへのインポート 。この例では、データベースで次のスクリプトを実行してHRスキーマをインポートします。@?/demo/schema/human_resources/hr_main.sql
終了したら、次の図に示すように、HRスキーマの詳細を検証します。
XCDB1で実行するアクション:
-
本番データベースPURCH_PDBを指すデータベースリンクを作成します 。
-
更新可能なPDBを作成し、更新期間を30分ごとに設定して、データが更新されたことを確認します。
別の場所にデータベースを作成するために使用する予定のPDBを作成するときに、すべての属性を使用できます。たとえば、PDBデータファイルの場所を変更するには、 CREATE_FILE_DESTを使用します またはFILE_NAME_CONVERT 。
唯一の追加はリフレッシュモードです 属性。このデモンストレーションを簡略化するために、オプションの属性は追加しませんでした。
テーブルDBA_PDBSをクエリできます 更新可能なPDBモード、ステータス、最後の更新SCN、およびその親実動データベースの詳細の詳細を確認します。 PDB2_REFROの場合 PDBの場合、次の例に示すように出力を確認します。
タスクを完了したら、更新可能なPDBをマウント済みに戻す必要があります スケジュールに従って継続的に更新するためのモード。次のコマンドを使用して、このアクティビティを実行します。 open_mode.sql ここで使用されるのは、データベースの現在のopen_modeをチェックするためのクエリです。
更新のためにデータベースインスタンスを閉じなかった場合、次のエラーが表示される場合があります。
ORA-65025: Pluggable database is not closed on all instances
更新可能なクローンのモードは、次のように変更できます。
-
手動更新を自動更新に変更します。
-
自動更新を手動更新に変更します。
-
自動または手動の更新モードからの更新を無効にします。
手動更新を自動更新に、またはその逆に変換します
注 :他の1つのPDBにログインしている場合、PDBの更新モードを変更することはできません。たとえば、 XPDBのモードを変更することはできません。 YPDBにログインしている間 。しようとすると、次のエラーが発生します:
ORA-65118: operation affecting a pluggable database cannot be performed from
another pluggable database.
手動更新モードでは、次のコマンドを使用して、必要に応じて複製されたPDBを更新できます。
PDBの更新を無効にし、読み取り専用クローンを読み取りに変換します-書き込み可能なデータベース
PDBの更新モードを無効にして、更新可能なクローンを読み取り/書き込みモードに変換できます。
注 :プラガブルデータベースの更新を無効にした後は、再度有効にすることはできません。更新可能なPDBにするには、PDBを再作成する必要があります。 NONEから変換しようとした場合 更新モードから更新モードにすると、次のエラーが発生します:
ORA-65261: pluggable database PDB2_REFRO3 not enabled for refresh.
更新を無効にすると、PDBは読み取り/書き込みアクセス権を持ちます。
本番環境から更新可能なクローンに、またはその逆に切り替えます。
Oracle 18cより前は、プライマリをシャットダウンして読み取り専用として開くなど、ロールを切り替えるためのすべての手順を実行する必要がありました。
このデモンストレーションでは、次のことを行います。
-
ユーザーを作成するC## SWITCHUSER コンテナデータベースXCDB1およびYCDB1で、grant connect、
sysoper
を使用します。 。 -
データベースリンクdblinkを作成します 、別のコンテナデータベースを指します。 YCDB1 、dblink、 XCDB1SYSOPERを作成します 、 XCDB1に接続します 。データベースビュー、DBA_DB_LINKSおよびV$ DATABASEを使用します データベースリンクの作成後にデータベースの詳細を収集します。
-
更新可能なクローンデータベースを読み取り専用として開きます。
-
switchoverコマンドを実行します。
-
本番および更新可能なクローンデータベースを切り替えた後、データベースのステータスとオープンモードを検証します。
YCDB1で実行するアクション:
switchoverコマンドを実行する前に、前提条件1から3を完了してください。
データベースリンクの詳細:
XCDB1で実行するアクション
データベースリンクの詳細を確認し、データベースのオープンモードを見つけます DBA_DB_LINKSを使用する およびV$ DATABASE 。
スイッチオーバーが完了した後、元のソースPDB PURCH_PDB 更新可能なクローンPDBになりました。このPDBは現在MOUNTにあります ステータス、および今後は読み取り専用でのみ開くことができます モード。対照的に、元の更新可能なクローン、PDB PDB2_REFRO READでオープンしました または書き込み modeandはソースPDBとして機能します。
結論:
高可用性の観点から、更新可能なクローンPDB機能をDataGuardの代わりと見なすべきではありません。ただし、更新可能なクローンを使用して、別のサーバーにレプリカデータベースを維持することができます。
この投稿では、更新可能なPDBをレプリカとして使用して、スイッチオーバーが計画されたイベントであるか計画外のイベントであるかに関係なく、特定の低負荷で重要ではないアプリケーション操作を再開できるようにする方法について説明します。目標復旧時間(RTO、運用再開までの時間)と目標復旧時点(データ損失の最小化などのRPO)の観点から、切り替えを検討する必要があることに注意してください。
コメントや質問をするには、[フィードバック]タブを使用します。今すぐチャットして会話を開始することもできます。
データベースの詳細をご覧ください。
-
クラウドにOracleデータベース(DBaaS)を作成する
この投稿では、Oracle®Cloudでサービスとしてのデータベース(DBaaS)データベースを作成するために必要なすべての手順を説明します。 はじめに このサービスにより、ユーザーは、物理ハードウェアをセットアップしたり、オペレーティングシステムをインストールしたり、Oracle Databaseのインストール前提条件を処理したりすることなく、データベースを作成できます。データベースの作成に時間はかからず、最小限のシステム管理者権限が必要です。 この投稿では、OracleCloudでDBaaSをセットアップするための次の手順を学習します。 コンパートメントを作成します。 仮想クラウドネ
-
Oracle19cでDBCAコマンドを使用してデータベースのクローンを作成する
このブログでは、Oracle19cの新機能であるDatabaseConfiguration Assistant(DBCA)を使用して、ソースデータベースのバックアップを作成せずにリモートプラガブルデータベース(PDB)をコンテナデータベース(CDB)に複製する方法を紹介します。 ソースからターゲットへのクローン作成にかかる時間は最小限です。 ソースDBの詳細 CDB:LCONCDBPDB:LCON 以下は総数です。ソース内の各コンテナ(CDBおよびPDB)の下にあるDBFファイルのうち、クローンがターゲット内にある後に検証する必要があります。上記のソースDBから、ターゲットホスト内にCDB