9 DG PDB構成(21c)でのDGMGRLの使用例

次の各使用例では、1つ以上のプラガブル・データベース(PDB)に対してデータ保護および障害時リカバリを提供するOracle Data Guard Broker構成を作成、管理および監視する方法について説明します。

Oracle Data Guardコマンドライン・インタフェース(DGMGRL)の使用を開始するための前提条件を知ることで、自身の事例に備えることができます。さらに、使用例を読んで、DGMGRLを使用してブローカ構成を作成、管理および監視する方法を理解してください。

DG PDBを使用するための前提条件

DG PDB環境を使用するための前提条件が満たされていることを確認します。

  • ソース・データベースとターゲット・データベースが存在している必要があります。
  • サーバー・パラメータ・ファイルを使用する必要があります。ソース・データベースまたはターゲット・データベースが初期化パラメータ・ファイル(PFILE)を使用する場合は、このファイルをサーバー・パラメータ・ファイル(SPFILE)に変換します
  • サーバー・パラメータ・ファイルを使用してインスタンスが起動されていない場合は、そのインスタンスを停止し、サーバー・パラメータ・ファイルを使用して再起動する必要があります。
  • DG PDB構成のソース・データベースおよびターゲット・データベースでは、DG_BROKER_START初期化パラメータをTRUEに設定する必要があります。

DG PDBの使用例では、次を前提としています。

  • TCP/IPは、ターゲット・データベースでソース・データベースに接続するために使用されます。
  • DG PDB構成は、次のもので構成されます。
    • ソース構成の名前はMyConfig1です。ソース・データベースの一意名(DB_UNIQUE_NAME)はbostonです。ソースPDBの名前はsalesです。
    • ターゲット構成の名前はMyConfig2です。ターゲット・データベースの一意名(DB_UNIQUE_NAME)はnewyorkです。ターゲットPDBの名前はdgpdb_salesです。
    • 保護モードは最大パフォーマンスです。
    • 転送モードはASYNCモードです。

使用例1: ソースおよびターゲット構成の作成

  1. ソース構成MyConfig1を作成します。ソース・データベースbostonおよびPDB salesacctおよびfinanceが含まれている必要があります。DG PDB構成を使用して保護する必要があるソースPDBは、salesです。
  2. ターゲット構成MyConfig2を作成します。これには、MyConfig1のソースPDB salesに対するデータ保護を提供するために使用されるターゲット・データベースnewyorkが含まれている必要があります。ソースPDBのsalesは、ターゲット・データベース newyorkのPDB dgpdb_salesによって保護されます。PDB dgpdb_salesは、次の使用例3のコマンドで作成されます。
構成の作成の詳細は、第8章の使用例1: 構成の作成のタスク1-5を参照してください。(CDBレベルのスタンバイ・データベースを追加するために、この使用例のタスク6のステップを実行しないでください。)

使用例2: 構成間の接続の確立

ソース構成とターゲット構成の間の接続を確立します。

構成MyConfig1のプライマリ・データベースbostonに接続している場合は、次のコマンドを実行して、構成MyConfig2との接続を確立します。

ADD CONFIGURATION MyConfig2 CONNECT IDENTIFIER IS newyork_ci;

使用例3: ソースPDBのData Guardの設定

ターゲット・データベースで保護するソースPDBを特定します。

  • ADD PLUGGABLE DATABASEコマンドを使用して、ターゲット・コンテナ・データベースでソースPDBのDGPDBを作成します。

    DGMGRL> ADD PLUGGABLE DATABASE 'dgpdb_sales' AT 'newyork'
    SOURCE IS 'sales' AT 'boston' 
    PDBFileNameConvert IS 'dbs/boston-sales, dbs/newyork-sales-dg';

ソースPDB salesのスタンバイPDBは、ターゲット・データベースnewyorkdgpdb_salesとして作成されます。

ADD PLUGGABLE DATABASEコマンドの前提条件および使用方法の詳細は、「ADD PLUGGABLE DATABASE」を参照してください。

使用例4: DG PDB構成の有効化およびREDO転送の開始

前提条件

ソースPDBを追加した後、ターゲットPDBでリカバリを開始する前に、ソースPDBに対応するデータベース・ファイルがターゲット・データベースにコピーされていることを確認します。RMANまたはオペレーティング・システムのコピー・コマンドを使用して、ソースPDBファイルをインスタンス化します。

コピーされたデータ・ファイルは、ターゲットPDBの作成前、作成中、または作成後の時点から作成できます。ただし、ターゲットPDBの作成時にソースCDBでアクティブだったREDOの同じブランチからのものである場合です。

ノート:

ソースPDBに関連付けられたデータ・ファイルをコピーする場合、ネーミングはADD PLUGGABLE DATABASE ...コマンドのPDBFileNameConvert句で指定された内容に従う必要があります。

DG PDB構成を有効にするには:

  • ENABLE CONFIGURATIONコマンドでALLキーワードを使用します。

    DGMGRL> ENABLE CONFIGURATION ALL;
    Enabled “MyConfig1” with primary database “boston”.
    Enabled “MyConfig2” with primary database “newyork”.
    
  • これが最初に追加されるDGPDBである場合は、ターゲット・データベースに接続し、コンテキストをDGPDBに設定して、スタンバイREDOログを追加します。

使用例5: ソースPDBのターゲットPDBへのスイッチオーバー

SWITCHOVER TOコマンドを使用して、DG PDB環境でのソース・データベースおよびターゲット・データベースのロールを切り替えます。

前提条件

  • プライマリ・データベースの状態がTRANSPORT-ONで、ターゲットPDBの状態がAPPLY-ONであること。
  • ソース・データベースおよびターゲット・データベースがエラーや警告なしで正常であること。
  • ソース・データベースでスタンバイREDOログ・ファイルが構成されていること。

ソースPDBに対してスイッチオーバーを実行するには:

  1. ソース・データベースおよびソースPDBのステータスを確認します。

    次のコマンドは、ソース・データベースおよびソースPDBの状態、健全性およびプロパティを表示します。

    DGMGRL> SHOW DATABASE boston;
     
    Database - boston
      Role: PRIMARY
      Intended State: TRANSPORT-ON
      PDB Data Guard Role: SOURCE
      Data Guard Source PDB(s): 1
      Instance(s):
        bos1
    
    Database Status:
    SUCCESS
    
    DGMGRL> SHOW PLUGGABLE DATABASE 'sales' AT boston;
    
    Pluggable database - SALES at boston
    
      Data Guard Role: Primary
      Con_ID: 6
      Active Target: con_id 7 at newyork
    
    Pluggable Database Status:
    SUCCESS
  2. ターゲット・データベースおよびターゲットPDBのステータスを確認します。

    次のコマンドは、ターゲット・データベースおよびターゲットPDBの状態、健全性およびプロパティを表示します。

    DGMGRL> SHOW DATABASE newyork;
     Database - newyork
      Role: PRIMARY
      Intended State: TRANSPORT-OFF
      PDB Data Guard Role: TARGET
      Data Guard Target PDB(s): 1
      Instance(s):
        ny1
        
    Database Status:
    SUCCESS
    
    DGMGRL> show pluggable database dgpdb_sales at newyork ;
    
    Pluggable database - DGPDB_SALES at newyork
    
      Data Guard Role: DataGuard Standby
      Con_ID: 7
      Source: con_id 6 at boston
      Transport Lag: 0 seconds (computed 29 seconds ago)
      Intended State: APPLY-ON
      Apply State: Running
      Apply Instance: ny1
      Average Apply Rate: 23 KByte/s
      Real Time Query: OFF
    
    Pluggable Database Status:
    SUCCESS
  3. SWITCHOVER TOコマンドを発行して、ターゲット・データベースに切り替えます。

    次のコマンドは、指定されたターゲットPDB dgpdb_salesにソースPDB salesを切り替えます。

    DGMGRL> SWITCHOVER TO PLUGGABLE DATABASE dgpdb_sales AT newyork;
    
    Verifying conditions for Switchover...
    
      Source pluggable database is 'SALES' at database 'newyork'
    
    Performing switchover NOW, please wait...
    
      Closing pluggable database 'SALES'...
      Switching 'SALES' to standby role...
      Waiting for 'DGPDB_SALES' to recover all redo data...
      Stopping recovery at 'DGPDB_SALES'...
      Converting 'DGPDB_SALES' to primary role...
      Opening new primary 'DGPDB_SALES'...
      Waiting for redo data from new primary 'DGPDB_SALES'...
      Starting recovery at new standby 'SALES'...
    
    Switchover succeeded, new primary is "DGPDB_SALES"
    DGMGRL>
  4. スイッチオーバーが成功したことを確認します。

    次のコマンドは、ソース・データベースとターゲット・データベースが切り替わったDG PDB構成を表示します。個々のPDBに新しいロールが表示されます

    DGMGRL> SHOW CONFIGURATION;
    Configuration – MyConfig2
      Protection Mode: MaxPerformance
      Members:
      newyork  - Primary database
         boston – Primary database at MyConfig1 configuration
    Data Guard Pluggable Database: ENABLED (Source role)
    Configuration Status:
    ENABLED

使用例6: ターゲットPDBへのフェイルオーバー

フェイルオーバー操作は、通常はソースPDBが使用できないかこれにアクセスできない場合に、緊急の状況で起動します。ソースPDBおよびその指定されたターゲットPDBのロールが逆になります。

DG PDB環境では、ソースPDBが使用不可またはアクセス不可であるがコンテナ・データベースやその他のPDBがすべて正常に機能している場合、フェイルオーバー操作は、コンテナ・データベース内の元のソースPDBが変換されてフィジカル・スタンバイとしてマークされるという意味において、スイッチオーバー操作と非常によく似ています。ただし、リカバリは開始されません。

フェイルオーバーを実行するには:

  1. フェイルオーバー・コマンドを実行して、ターゲットPDBを新しいソースPDBにします。
    DGMGRL> FAILOVER TO PLUGGABLE DATABASE 'dgpdb_sales' AT 'newyork';
    Verifying conditions for Failover...
    
      Source pluggable database is 'SALES' at database 'newyork'
    
    Performing failover NOW, please wait...
    
      Closing pluggable database 'SALES'...
      Switching 'SALES' to standby role...
      Waiting for 'DGPDB_SALES' to recover all redo data...
      Stopping recovery at 'DGPDB_SALES'...
      Converting 'DGPDB_SALES' to primary role...
      Opening new primary 'DGPDB_SALES'...
      Waiting for redo data from new primary 'DGPDB_SALES'...
    
    
    Failover succeeded, new primary is "DGPDB_SALES"
    DGMGRL>

    フェイルオーバーの完了後は、前の(失敗した)ソースPDBでリカバリが開始されないことに注意してください。ターゲットPDBとして、回復後にのみ使用できます。

    ノート: フェイルオーバーが完了した後は、前の(失敗した)ソースPDBでリカバリは開始されません。コンテナ・データベースが再起動された場合や、ENABLE DATABASEがデータベース・レベルで発行された場合でも、リカバリは開始されません。

  2. フェイルオーバー操作が正常に完了したことを確認します。
    DGMGRL> SHOW PLUGGABLE DATABASE 'dgpdb_sales' AT newyork;
    
    Pluggable database 'dgpdb_sales' at database 'newyork'
    
      Data Guard Role: Primary
      Con_ID: 7
      Active Target: None Available
    
    Pluggable Database Status:
    ORA-16912: Target pluggable database may have been removed or a role change may have occurred.
  3. 前の(失敗した)ソースPDBがアクティブ・スタンバイとして動作していないことを確認します。
    DGMGRL> SHOW PLUGGABLE DATABASE sales AT boston;
    
    Pluggable database 'sales' at database 'boston'
      Data Guard Role: DataGuard Standby
      Con_ID: 7
      Source: (unknown)
    
    Pluggable Database Status:
    ORA-16911: Redo data from new source database has not been registered.
  4. 前のソースPDBをターゲットPDBとして操作できるようにします。

    前のプライマリPDBの問題が解決された後、そのPDBのリカバリを開始して、新しいソースPDBのターゲットDGPDBにすることができます。

    たとえば、次のコマンドを実行して、前のソースPDB salesを回復します。

    EDIT PLUGGABLE DATABASE sales AT boston SET STATE=APPLY-ON;

使用例7: DG PDB構成の監視

DGMGRLを使用して、DG PDB構成のメンバーのステータスを監視します。

DGMGRLを使用した構成情報の表示

SHOW CONFIGURATIONコマンドを使用して、DG PDB構成の現在のステータスを表示します。このコマンドは、両方のブローカ構成でプライマリ・データベースによって再生される構成ステータスおよびロールを表示します。

DGMGRL> SHOW CONFIGURATION;
Configuration – MyConfig2
  Protection Mode: MaxPerformance
  Members:
  newyork  - Primary database
    boston – Primary database at MyConfig1 configuration
Data Guard Pluggable Database: ENABLED (Target role)
Configuration Status:
ENABLED

DGMGRLを使用したデータベースおよびPDB情報の表示

SHOW PLUGGABLE DATABASEコマンドを使用して、DG PDB構成のソース・データベースまたはターゲット・データベースのステータスおよび詳細を表示します。
DGMGRL> SHOW DATABASE boston;
 
Database - boston

  Role: PRIMARY
  Intended State: TRANSPORT-ON
  DGPluggable State: SOURCE
  Instance(s):
    bos1
  Data Guard Source PDB(s): 1

Database Status:
SUCCESS

SHOW PLUGGABLE DATABASEコマンドを使用して、ソースPDBまたはターゲットPDBのステータスを表示します。その他の情報には、PDBが果たすロール、状態、転送ラグおよび適用ラグが含まれています。

DGMGRL> SHOW PLUGGABLE DATABASE dgpdb_sales AT newyork;
 Pluggable database - DGPDB_SALES at newyork

  Data Guard Role: DataGuard Standby
  Con_ID: 7
  Source: con_id 6 at boston
  Transport Lag: 0 seconds (computed 29 seconds ago)
  Intended State: APPLY-ON
  Apply State: Running
  Apply Instance: ny1
  Average Apply Rate: 23 KByte/s
  Real Time Query: OFF

Pluggable Database Status:
SUCCESS