DBAtlas · データベース運用アトラス

Oracle Data Guard 19c physical standby (Broker 使用、シングル・インスタンス、Oracle Restart、RAC)

Oracleレベル: 上級所要時間: 2~4 時間 (データ量による)

稼働中の 19c primary データベースに対して RMAN DUPLICATE … FROM ACTIVE DATABASE で physical standby を構築し、Data Guard Broker に追加します。最終的に、REDO をリアルタイムで受信・適用するスタンバイ、SUCCESS ステータスの broker 構成、テスト済みの switchover (任意で failover/reinstate のテストと Fast-Start Failover + observer) が得られます。primary とスタンバイはそれぞれシングル・インスタンス、Oracle Restart、RAC のいずれでも構いません。構築済み構成の日常運用と障害対応には Data Guard 運用ガイドを使用します。

構成: primary (シングル・インスタンス / Oracle Restart / RAC 2~8 ノード) + physical standby (シングル・インスタンス / Oracle Restart / RAC) + 任意の observer

開始前の確認

  • …すべてのスタンバイ・ノード…スタンバイ・サーバー…に、primary と 同じバージョン・同じ RU の Oracle Database ソフトウェアがインストール済み (ソフトウェアのみ。データベースはなし)、ORACLE_HOME のパスも同じ (…)。OS ファミリとエンディアンも同じ。…スタンバイには Grid Infrastructure (…クラスタ…Oracle Restart…) が同じかより新しい RU でインストールされ、稼働している。…
  • primary データベースは Enterprise Edition。Data Guard は EE に含まれますが、apply 中にスタンバイをオープン (read only) して使う には Active Data Guard ライセンスが必要です。
  • 全サーバーで oracle ユーザーのプロファイルに ORACLE_HOME=…、ORACLE_SID、PATH が設定済み (…primary ノードでは …1、…2 ……primary では ……。スタンバイのプロファイルはこのガイドで作成します)。…Grid がある側では grid ユーザーのプロファイルに ORACLE_HOME=… と ORACLE_SID=+ASM… (RAC では +ASM1、+ASM2 …)… が設定済みで、asmcmd と lsnrctl はこのプロファイルで動作します。…
  • 全サーバーが互いを名前で解決できる (DNS または /etc/hosts)…。SCAN 名 (…………、…………) は DNS で 3 つのアドレスに解決される…。…/tcp が双方向に開いている。ネットワーク帯域が REDO 生成量を運べる…。SYNC の場合、往復遅延はなるべく 1~2 ms 未満…。
  • スタンバイに primary と 同じ名前 の ASM ディスク・グループ (…、…) がマウントされ、十分な空き領域がある。
  • スタンバイの Clusterware/Oracle Restart が正常…。すべてのスタンバイ・ノードがクラスタに参加している (olsnodes)…。
  • primary で各インスタンスの REDO スレッドが有効 (v$thread ENABLED = PUBLIC) で、各スレッドのオンライン REDO グループの数とサイズが同じ。
  • スタンバイに、データファイル、FRA (… GB)、アーカイブ・ログ用として primary と同等のディスク領域がある。
  • 時刻は NTP/chrony で同期済み、タイムゾーンも同じ。
  • primary にパスワード・ファイルがあり (REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE)、SYS パスワードがわかっている。パスワードに @、/、"、空白を含めないこと (RMAN/DGMGRL の接続文字列で問題になる)。
  • primary が ARCHIVELOG モードでない場合は再起動が 1 回必要… (全インスタンスが停止)…。そのためのメンテナンス時間帯が承認済み。primary の最新の RMAN バックアップがある。
  • observer サーバーに Oracle Client (Administrator インストール・タイプ。dgmgrl と mkstore を含む) または Database ソフトウェアがインストール済みで、primary とスタンバイに …/tcp でアクセスできる。

ガイドのフェーズ

  • 事前チェック — primary の現在の状態を確認する
  • primary の準備 — FRA を定義する (未定義の場合) · ARCHIVELOG モードを有効にする (必要な場合) · force logging と Flashback Database を有効にする · Data Guard パラメータを設定する · スタンバイ REDO ログを作成する · パスワード・ファイルを検証する
  • Oracle Net (tnsnames、静的リスナー) — tnsnames.ora のエントリを追加する (primary…、各ノード…) · 静的リスナー登録を追加する (primary) · 静的リスナー登録を追加する (primary ノード …: …) · ファイアウォールでリスナー・ポートを開放する… (全ノード)…
  • スタンバイ・サーバーの準備 — primary のディレクトリ一覧を作成してスタンバイに送る · パスワード・ファイルをスタンバイにコピーする · パスワード・ファイルをスタンバイにコピーする (Clusterware の登録から) · oratab と環境ファイルを準備する (スタンバイ) · oratab と環境ファイルを準備する (スタンバイ・ノード …: …) · ディレクトリを作成する (スタンバイ…、各ノード…) …
  • スタンバイの作成 (RMAN DUPLICATE) と Redo Apply — スタンバイを作成する: RMAN DUPLICATE FROM ACTIVE DATABASE · スタンバイの状態を検証する · スタンバイ REDO ログがなければ作成する (スタンバイ) · 一時 pfile を削除する (スタンバイ) · RAC スタンバイ: クラスタ・パラメータを spfile に書き込む · RAC スタンバイ: spfile とパスワード・ファイルを ASM に移す …
  • Data Guard Broker と保護モード — broker 構成ファイルを共有の場所に置く (primary RAC) · broker を起動する (primary) · broker 構成ファイルを共有の場所に置く (スタンバイ RAC) · broker を起動する (スタンバイ) · broker 構成を作成する · apply インスタンスを指定する (RAC スタンバイ) …
  • switchover テスト — switchover テスト: スタンバイを primary にする · switchover 後の状態を確認する · switchback: ロールを元に戻す
  • スタンバイの flashback — スタンバイで Flashback Database を有効にする
  • failover と reinstate のテスト — failover テスト 1/4: primary のクラッシュを模擬する · failover テスト 2/4: スタンバイへ failover する · failover テスト 3/4: 旧 primary を MOUNT で起動する · failover テスト 4/4: 旧 primary をスタンバイとして戻す (REINSTATE) · failover 後にロールを元に戻す
  • Fast-Start Failover と observer — tnsnames.ora を作成する (observer) · observer 用のウォレットを作成する · sqlnet.ora でウォレットを定義する (observer) · ウォレットで接続をテストする (observer) · Fast-Start Failover のプロパティを設定する · observer の起動スクリプトを作成する (observer) …
  • 構築後の作業 — アーカイブ・ログ削除ポリシーを設定する (primary) · アーカイブ・ログ削除ポリシーを設定する (スタンバイ) · アーカイブ削除スクリプトを作成する (スタンバイ…、各ノード…) · cron の環境でスクリプトを手動テストする (スタンバイ…、各ノード…) · cron ジョブを定義する (スタンバイ…、各ノード…) · cron ファイルの権限を検証する …
環境に合わせた手順プランを開く →