はじめに

みなさん、こんにちは。
Oracle Cloud Infrastructure 検証チームです。

今回は、
Oracle Cloud Infrastructureで DataGuard 構築をしましたので、ご紹介したいと思います。

今回の執筆者は NIPPON ITチャリティ駅伝が開催されました!(当社スペシャルゼッケンスポンサー)にも登場しています。
また、OCI関連の過去記事はこちらからご覧ください!

OCIでの DataGuard 構成パターン

OCI上での DataGuard 構成パターンは大きく分けて3パターンあります。

  • 同一リージョン内での DataGuard – データベース障害やメンテナンスを考慮したスタンバイDBシステムを構成する。
  • 別リージョン間での DataGuard – リージョン障害やメンテナンスを考慮し、プライマリDBシステムとは別のリージョンにスタンバイDBシステムを構成する。
  • ハイブリッド DataGuard – オンプレミスとクラウド間で構成する。

今回の検証では、「同一リージョン内での DataGuard 」構成で構築します。

 DataGuard 構成手順

DataGuard を構成するにはEnterprise Edition以上、
Active DataGuardはExtream Performanceのエディション
が必要です

検証では、事前にEnterprise Editionのシングルデータベースを作成し、それをプライマリDBとして DataGuard を構成します。

  1. OCIコンソール画面から、[Oracle Database]-[Oracleベース・データベース・サービス]-[DBシステム]-[DBシステムの詳細]-[データベース詳細]と遷移、[ DataGuard アソシエーション]を選択します。
  2. DataGuard の有効化をクリックします。
  3. Data Guardの有効化画面で、下記の項目を入力し、[次]ボタンをクリックします。
    • 表示名-スタンバイ側のDBシステム名
    • リージョン-スタンバイDBシステムを作成するリージョン
    • 可用性ドメイン-スタンバイDBシステムのドメイン
    • シェイプの選択-スタンバイDBシステムのシェイプ
    • ホスト名接頭辞-スタンバイDBシステムのホスト名
    • Data Guardアソシエーション詳細-保護モードは「最大パフォーマンス」、トランスポート・タイプは「非同期」を選択します。
  4. [データベース情報]画面でプライマリDBと同じパスワードを入力し、[ DataGuard の有効化]ボタンをクリックします。
  5. スタンバイDBが作成されたことを確認します。

    また、プライマリDB、スタンバイDBの両方にsqlplus接続し、DATABASE_ROLEを確認します。
    • プライマリDB
      [oracle@primarynode ~]$ sqlplus / as sysdba
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Nov 13 06:25:59 2023
      Version 19.20.0.0.0
      ~
      SQL> select DATABASE_ROLE from v$database;
      DATABASE_ROLE
      ----------------
      PRIMARY
    • スタンバイDB
      [oracle@standbynode ~]$ sqlplus / as sysdba
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Nov 13 06:28:03 2023
      Version 19.20.0.0.0
      ~
      SQL> select DATABASE_ROLE from v$database;
      DATABASE_ROLE
      ----------------
      PHYSICAL STANDBY

    DataGuard が構成されていることが確認できました。

さいごに

今回は
OCI上で DataGuard を構成してみましたが如何だったでしょうか。

オンプレミスのDBで DataGuard を構成する際は、スタンバイREDOログを作成する必要がありますが、OCI上で DataGuard を構成する際は、プライマリ、スタンバイ両方とも自動で作成されました。

SQL> SELECT GROUP#, THREAD#, BYTES/1024/1024 MB FROM V$LOG;
 GROUP#    THREAD#    MB
---------- ---------- ----------
 1         1          1024
 2         1          1024
 3         1          1024

SQL> SELECT GROUP#, THREAD#, BYTES/1024/1024 MB FROM V$STANDBY_LOG;
 GROUP#    THREAD#    MB
---------- ---------- ----------
 4         1          1024
 5         1          1024
 6         1          1024
 7         1          1024

次回は、OCI上での構成した DataGuard を使用して、フェイルオーバやスイッチオーバーのご紹介ができればと思います。

最後まで御覧頂きありがとうございました!

OCI関連の過去記事はこちら
OCIに関するお問い合わせはこちら