フェイルオーバーの設定および構成

この項では、フェイルオーバーのために後で使用するリカバリ・アプライアンスのVPCユーザーを設定します。このユーザーは、必要なネットワーク構成ファイルを変更し、レプリケーション・サーバーを構成し、保護ポリシーを作成し、保護されたデータベースを登録し、アップストリームおよびダウンストリーム・リカバリ・アプライアンスにいくつかの権限を追加します。

VPCユーザーの作成

このタスクでは、アップストリームおよびダウンストリーム・リカバリ・アプライアンスにデータベースVPCユーザー・アカウントを作成します。

アカウントの作成時には、次のパスワードの要件に注意してください。

  • 最初のVPCユーザー(HADR_LOCAL_VPCUSER)アカウントは、他の保護されたデータベースで使用でき、リカバリ・アプライアンスRAHADR1とRAHADR2で異なるパスワードを持つことができます。
  • 2番目のVPCユーザー(HADR_COMMON_VPCUSER)アカウントは、リカバリ・アプライアンスRAHADR1とRAHADR2の両方で同じパスワードを使用する必要があり、他の保護されたデータベースで使用できます

この個別の例には、次の条件が適用されます。

  • リカバリ・アプライアンスRAHADR1は、以前にrahadr1DB_UNIQUE_NAMEでインストールされています。
  • リカバリ・アプライアンスRAHADR2は、以前にrahadr2DB_UNIQUE_NAMEでインストールされています。
  1. アップストリーム・リカバリ・アプライアンスRAHADR1上の保護されたデータベース用に2つのVPCユーザーを作成します。
    # racli add db_user --user_name HADR_LOCAL_VPCUSER --user_type=vpc
    [HADR_LOCAL_VPCUSER] New Password: ***********
    Sun Mar 25 08:27:53 2018: Start: Add vpc user HADR_LOCAL_VPCUSER.
    Sun Mar 25 08:27:53 2018: Add vpc user HADR_LOCAL_VPCUSER successfully.
    Sun Mar 25 08:27:53 2018: End: Add vpc user HADR_LOCAL_VPCUSER.
    
    # racli add db_user --user_name HADR_COMMON_VPCUSER --user_type=vpc
    [HADR_COMMON_VPCUSER] New Password: ***********
    Sun Mar 25 08:27:53 2018: Start: Add vpc user HADR_COMMON_VPCUSER.
    Sun Mar 25 08:27:53 2018: Add vpc user HADR_COMMON_VPCUSER successfully.
    Sun Mar 25 08:27:53 2018: End: Add vpc user HADR_COMMON_VPCUSER.
  2. ダウンストリーム・リカバリ・アプライアンスRAHADR2上の保護されたデータベース用に2つのVPCユーザーを作成します。
    # racli add db_user --user_name HADR_LOCAL_VPCUSER --user_type=vpc
    [HADR_LOCAL_VPCUSER] New Password: ***********
    Sun Mar 25 08:27:53 2018: Start: Add vpc user HADR_LOCAL_VPCUSER.
    Sun Mar 25 08:27:53 2018: Add vpc user HADR_LOCAL_VPCUSER successfully.
    Sun Mar 25 08:27:53 2018: End: Add vpc user HADR_LOCAL_VPCUSER.
    
    # racli add db_user --user_name HADR_COMMON_VPCUSER --user_type=vpc
    [HADR_COMMON_VPCUSER] New Password: ***********
    Sun Mar 25 08:27:53 2018: Start: Add vpc user HADR_COMMON_VPCUSER.
    Sun Mar 25 08:27:53 2018: Add vpc user HADR_COMMON_VPCUSER successfully.
    Sun Mar 25 08:27:53 2018: End: Add vpc user HADR_COMMON_VPCUSER.
  3. アップストリーム(HARADR1)からダウンストリーム(RAHADR2)のリカバリ・アプライアンスにバックアップを送信するためにレプリケーション・サーバーが使用するVPCユーザー・アカウントが作成されていない場合は、VPCユーザーを今すぐ作成してください。
    # racli add db_user --user_name REPUSER_FROM_HADR1 --user_type=vpc
    [REPUSER_FROM_HADR1] New Password: ***********
    
    Sun Mar 25 08:35:01 2018: Start: Add vpc user REPUSER_FROM_HADR1.
    Sun Mar 25 08:35:01 2018: Add vpc user REPUSER_FROM_HADR1 successfully.
    Sun Mar 25 08:35:01 2018: End: Add vpc user REPUSER_FROM_HADR1.

トランスポート・フェイルオーバーの構成の変更

このタスクでは、ダウンストリーム・リカバリ・アプライアンスへの透過的フェイルオーバーに使用されるOracleネットワーク構成ファイルを変更します。

RACデータベースがある場合、保護されたデータベースが実行されている各ホストでこれを実行する必要があります。
  1. どのホストにも${ORACLE_HOME}/dbs/ra${ORACLE_SID}.oraファイルがないことを確認してください。
    このファイルはこのステップで定義されているすべての構成パラメータをオーバーライドするため、存在する場合は削除する必要があります。
  2. 適切なリカバリ・アプライアンスに接続するためにRMANが使用するTNS別名をtnsnames.oraファイルで構成します。
    $ cd ${ORACLE_HOME}/network/admin
  3. tnsnames.oraを編集し、次のエントリを追加します。
    DR_RAHADR =
    (DESCRIPTION_LIST =
      (LOAD_BALANCE = off)
      (FAILOVER = on)
      (DESCRIPTION =
        (CONNECT_TIMEOUT = 5)
        (TRANSPORT_CONNECT_TIMEOUT = 3)
        (RETRY_COUNT = 3)
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ra1ingest-scan)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = rahadr1)
        )
      )
      (DESCRIPTION =
        (CONNECT_TIMEOUT = 5)
        (TRANSPORT_CONNECT_TIMEOUT = 3)
        (RETRY_COUNT = 3)
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ra2ingest-scan)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = rahadr2)
        )
      )
    )
    DR_RAHADR1 =
    (DESCRIPTION_LIST =
      (DESCRIPTION =
        (CONNECT_TIMEOUT = 5)
        (TRANSPORT_CONNECT_TIMEOUT = 3)
        (RETRY_COUNT = 3)
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ra1ingest-scan)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = rahadr1)
        )
      )
    )
    DR_RAHADR2 =
    (DESCRIPTION_LIST =
      (DESCRIPTION =
        (CONNECT_TIMEOUT = 5)
        (TRANSPORT_CONNECT_TIMEOUT = 3)
        (RETRY_COUNT = 3)
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ra2ingest-scan)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = rahadr2)
        )
      )
    )

レプリケーション・サーバーの構成

このタスクでは、リカバリ・アプライアンスRAHADR1からRAHADR2にデータベース・バックアップを送信するレプリケーション・サーバーを構成します。

専用のレプリケーション・ネットワークがない場合、ここで使用される操作およびネーミング規則はEnterprise Managerのものと同じです。詳細は、リカバリ・アプライアンスでのバックアップのレプリケートを参照してください。
RAHADR1とRAHADR2の間のレプリケーション・サーバーはまだ作成されていません。
  1. RAHADR1にレプリケーション・ウォレットが存在しない場合は、RAHADR2を指すレプリケーション・ウォレットを作成します。
    $ mkstore -wrl file:/dbfs_repdbfs/REPLICATION -createALO
  2. 資格証明をウォレットに追加します。RAHADR1で、RAHADR2にログインするための資格証明を追加します。
    $ mkstore -wrl file:/dbfs_repdbfs/REPLICATION 
    -createCredential <rahadr2-scan>:1521/rahadr2 REPUSER_FROM_HADR1 my_v3ry_c0mplex_pa55w0rd
  3. RAHADR1でリカバリ・アプライアンスのレプリケーション・サーバーを作成します。
    $ sqlplus rasys/ra
    
    SQL> exec dbms_ra.create_replication_server( 
    replication_server_name =>'RAHADR2_REP', 
    sbt_so_name => 'libra.so', max_streams => 8, 
    catalog_user_name=> 'RASYS', 
    wallet_alias => '<rahadr2-scan>:1521/rahadr2',
    wallet_path => 'file:/dbfs_repdbfs/REPLICATION');
    
    PL/SQL procedure successfully completed.

アップストリームおよびダウンストリーム・リカバリ・アプライアンスの構成

このタスクでは、ダウンストリームとアップストリームのリカバリ・アプライアンス上で保護されたデータベースの保護ポリシーを構成し、保護ポリシーをレプリケーション・サーバーに追加します。

たとえば、CBR122DRデータベースなどによって使用される保護ポリシーがそれぞれのリカバリ・アプライアンスに存在しない場合、このステップによって作成されます。保護ポリシー名は、ダウンストリームとアップストリームのリカバリ・アプライアンス間で一意である必要はありません。

RAHADR1とRAHADR2の間の循環参照を回避するために、RAHADR2からの保護ポリシーはレプリケーション・サーバーに追加されませんが、RAHADR1からの保護ポリシーは追加されます。保護ポリシー内のすべてのデータベースがレプリケートされます。

ノート: RAHADR2は通常CDB122DRデータベースからREDOを受け入れないため、CDB122DRデータベースがアイドル状態の場合、保護されていないデータ・ウィンドウ・パラメータを1.25日に設定して、falseアラートの発生を回避します。

  1. ダウンストリーム・リカバリ・アプライアンスRAHADR2のrasys/raとしてSQLPLSにログインします。このステップと後続のステップのいくつかは、特に明記されていないかぎりRAHADR2で実行されます。
    $ sqlplus rasys/ra
  2. 保護ポリシーを作成します。
    SQL> exec dbms_ra.create_protection_policy( 
    protection_policy_name => 'cdb122dr_PP', 
    storage_location_name => 'DELTA', 
    recovery_window_goal => numtodsinterval(3,'DAY'), 
    unprotected_window => numtodsinterval(1.25,'DAY'), 
    allow_backup_deletion => 'NO');
    
    PL/SQL procedure successfully completed.
  3. (この例の)データベースとその保護ポリシーを、リカバリ・アプライアンスによる保護の対象のリストに追加します。
    SQL> exec dbms_ra.add_db(
    db_unique_name => 'cdb122dr', 
    protection_policy_name=> 'cdb122dr_PP', 
    reserved_space => '1T');
    
    PL/SQL procedure successfully completed.
  4. レプリケーション・ユーザーに(この例の)データベースへのアクセス権を付与します。
    SQL> exec dbms_ra.grant_db_access(
    username => 'REPUSER_FROM_HADR1',
    db_unique_name => 'cdb122dr');
    
    PL/SQL procedure successfully completed.
  5. アップストリーム・リカバリ・アプライアンスRAHADR1のrasys/raとしてsqlplusにログインします。このステップと後続のすべてのステップがRAHADR1で実行されます。
    $ sqlplus rasys/ra
  6. 保護ポリシーを作成します。保護ポリシー名は一意である必要はありません。
    SQL> exec dbms_ra.create_protection_policy( 
    protection_policy_name =>'cdb122dr_PP', 
    storage_location_name => 'DELTA', 
    recovery_window_goal => numtodsinterval(3,'DAY'), 
    unprotected_window => numtodsinterval(5,'MINUTE'), 
    allow_backup_deletion => 'NO');
    
    PL/SQL procedure successfully completed.
  7. (この例の)データベースとその保護ポリシーを、リカバリ・アプライアンスによる保護の対象のリストに追加します。
    SQL> exec dbms_ra.add_db(
    db_unique_name => 'cdb122dr', 
    protection_policy_name=> 'cdb122dr_PP', 
    reserved_space => '1T');
    
    PL/SQL procedure successfully completed.
  8. レプリケーション・ユーザーに(この例の)データベースへのアクセス権を付与します。
    SQL> exec dbms_ra.grant_db_access(
    username => 'HADR_LOCAL_VPCUSER',
    db_unique_name => 'cdb122dr');
    
    PL/SQL procedure successfully completed.
  9. レプリケーション・サーバーに保護ポリシーを追加します。このステップはアップストリーム・リカバリ・アプライアンス(RAHADR1)で実行されます。2つのリカバリ・アプライアンス間の循環参照を回避するために、このステップはダウンストリーム・リカバリ・アプライアンスで実行されませんでした。
    SQL> exec dbms_ra.add_replication_server( 
    replication_server_name =>'RAHADR2_REP', 
    protection_policy_name => 'cdb122dr_PP');
    
    PL/SQL procedure successfully completed.

アップストリーム・リカバリ・アプライアンスでの保護されたデータベースの登録

このタスクでは、ウォレットを構成し、VPCユーザー資格証明を追加し、それらの資格証明をテストし、保護されたデータベースをアップストリーム・リカバリ・アプライアンスに登録します。RACデータベースの場合は、保護されたデータベースが実行されている各ホストでこのステップを実行する必要があります。

ここで使用される操作およびネーミング規則は、Enterprise Managerのものと同じです。
  1. 適切なリカバリ・アプライアンスに接続するためにRMANが使用するsqlnet.oraファイルを構成します。正しいディレクトリに移動します。
    $ cd ${ORACLE_HOME}/network/admin
  2. sqlnet.oraファイルを編集し、次のパラメータが正しく設定されていることを確認します。
    SQLNET.WALLET_OVERRIDE = true
    
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    
    WALLET_LOCATION =
      (SOURCE =
        (METHOD = FILE)
        (METHOD_DATA =
          (DIRECTORY = /u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/zdlra)
        )
      )
    
    SQLNET.EXPIRE_TIME = 10
  3. 各VPCユーザー資格証明を格納するレプリケーション・ウォレットを作成します。このステップは、レプリケーション・ウォレットが存在しない場合のみ実行します。各ホストで、次の手順を実行します:
    $ mkstore -wrl file:/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/zdlra -
    createALO
  4. RMANで使用される3つの資格証明ごとに資格証明別名を作成します。各ホストで、mkstoreコマンドを実行します。プロンプトが表示されたら、適切なパスワードを入力します。
    $ mkstore -wrl file:/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/zdlra -
    createCredential dr_rahadr2 hadr_local_vpcuser hadr2_L0cal_Pa55w0rd
    
    $ mkstore -wrl file:/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/zdlra -
    createCredential dr_rahadr1 hadr_local_vpcuser hadr1_L0cal_Pa55w0rd
    
    $ mkstore -wrl file:/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/zdlra -
    createCredential dr_rahadr hadr_common_vpcuser c0mm0n_Pa55w0rd
  5. 資格証明別名のみを使用して各ターゲットにログインして、資格証明が正しく機能していることを確認します。各ホストで、次のように実行します。
    $ sqlplus /@dr_rahadr1
  6. 保護されたデータベースをRAHADR1のリカバリ・アプライアンスに登録します。いずれかのホストで、次のように実行します。
    $ rman target / catalog /@dr_rahadr1
    
    RMAN> register database;
  7. 現在の制御ファイルのテスト・バックアップをリカバリ・アプライアンスhadr1 (RAHADR1)に対して実行します。保護されたデータベースのホストで、現在の制御ファイルのバックアップを実行します。
    $ rman target / catalog /@dr_rahadr1
    
    RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT '%d_%U' PARMS
    "SBT_LIBRARY=/u01/app/oracle/product/12.2.0.1/dbhome_1/lib/libra.so,
    ENV=(RA_WALLET='location=file:/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/z
    dlra credential_alias=dr_rahadr1')";
    
    RMAN> backup device type sbt current controlfile tag 'controltest';
    
    Starting backup at 05-JUN-18
    allocated channel: ORA_SBT_TAPE_1
    channel ORA_SBT_TAPE_1: SID=2320 instance=cdb122dr1 device type=SBT_TAPE
    channel ORA_SBT_TAPE_1: RA Library (RAHADR1)
    SID=6DE9FE3D49ED4598E05311F3850AC59F
    allocated channel: ORA_SBT_TAPE_2
    channel ORA_SBT_TAPE_2: SID=2516 instance=cdb122dr1 device type=SBT_TAPE
    channel ORA_SBT_TAPE_2: RA Library (RAHADR1)
    SID=6DE9FE48D84C48C8E05311F3850A89BE
    channel ORA_SBT_TAPE_1: starting full datafile backup set
    channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
    including current control file in backup set
    channel ORA_SBT_TAPE_1: starting piece 1 at 05-JUN-18
    channel ORA_SBT_TAPE_1: finished piece 1 at 05-JUN-18
    piece handle=CDB122DR_2kt4m80u_1_1 tag=CONTROLTEST comment=API Version
    2.0,MMS Version 3.17.1.26
    channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:15
    Finished backup at 05-JUN-18
    Starting Control File and SPFILE Autobackup at 05-JUN-18
    piece handle=c-3244939197-20180605-00 comment=API Version 2.0,MMS Version
    3.17.1.26
    Finished Control File and SPFILE Autobackup at 05-JUN-18
  8. 作成したバックアップ・セットをリストします。制御ファイルのコピーが2つあり、1つはリカバリ・アプライアンスhadr1 (RAHADR1)に、もう1つはリカバリ・アプライアンスhadr2 (RAHADR2)にあることを確認します。
    RMAN> list backupset tag CONTROLTEST;
    
    List of Backup Sets
    ===================
    BS Key Type LV Size
    ------- ---- -- ----------
    220 Full 138.75M
    Control File Included: Ckp SCN: 9076177 Ckp time: 05-JUN-18
    Backup Set Copy #1 of backup set 220
    Device Type Elapsed Time Completion Time Compressed Tag
    ----------- ------------ --------------- ---------- ---
    SBT_TAPE 07:00:21 05-JUN-18 NO CONTROLTEST
    List of Backup Pieces for backup set 220 Copy #1
    BP Key Pc# Status Media Piece Name
    ------- --- ----------- ----------------------- ----------
    221 1 AVAILABLE Recovery Appliance (RAHADR1)
    CDB122DR_2kt4m80u_1_1
    Backup Set Copy #2 of backup set 220
    Device Type Elapsed Time Completion Time Compressed Tag
    ----------- ------------ --------------- ---------- ---
    SBT_TAPE 07:00:21 05-JUN-18 NO CONTROLTEST
    List of Backup Pieces for backup set 220 Copy #2
    BP Key Pc# Status Media Piece Name
    ------- --- ----------- ----------------------- ----------
    246 1 AVAILABLE Recovery Appliance (RAHADR2)
    RA_SBT_CDB122DR_3244939197_230_2kt4m80u_1_2_220

アップストリームおよびダウンストリーム・リカバリ・アプライアンスへの残りの権限の追加

このタスクでは、アップストリームとダウンストリームの両方のリカバリ・アプライアンスでVPCユーザーにアクセス権を付与します。

  1. RAHADR1で、残りの1つのVPCユーザーにアクセス権を追加します。
    SQL> exec dbms_ra.grant_db_access(
    username => 'HADR_COMMON_VPCUSER',
    db_unique_name => 'cdb122dr');
    
    PL/SQL procedure successfully completed.
  2. RAHADR2で、残りの2つのVPCユーザーにアクセス権を追加します。これらのユーザーは、RAHADR1が使用できないことに起因するバックアップのフェイルオーバー時に事前設定されます。
    SQL> exec dbms_ra.grant_db_access(
    username => 'HADR_LOCAL_VPCUSER',
    db_unique_name => 'cdb122dr');
    
    PL/SQL procedure successfully completed.
    
    SQL> exec dbms_ra.grant_db_access(
    username => 'HADR_COMMON_VPCUSER',
    db_unique_name => 'cdb122dr');
    
    PL/SQL procedure successfully completed.
  3. 資格証明別名のみを使用して各ターゲットにログインして、資格証明が正しく機能していることを確認します。各ホストで、次のように実行します。
    $ sqlplus /@dr_rahadr2
    
    $ sqlplus /@dr_rahadr

チャネル・デバイス・パラメータの構成

このタスクでは、DR_RAHADR別名で使用するチャネル・デバイス・パラメータを構成します。

  1. 保護されたデータベースのホストのいずれかで、次のように実行します。
    $ rman target / catalog /@dr_rahadr1
    
    RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT '%d_%U' PARMS
    "SBT_LIBRARY=/u01/app/oracle/product/12.2.0.1/dbhome_1/lib/libra.so,
    ENV=(RA_WALLET='location=file:/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/z
    dlra credential_alias=dr_rahadr')";
  2. (オプション)次のパラメータを構成します。これらのパラメータはベスト・プラクティスの推奨事項です。
    RMAN> CONFIGURE BACKUP OPTIMIZATION on;
    
    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on;
    
    RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;
    
    RMAN> CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
    
    RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECOC1/cdb122dr/snapcf.f';
    
    RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO backed up 1 times to device
    type sbt;