Data Guard環境ならではの問題と対処法:Oracleトラブル対策の基礎知識(7)(3/4 ページ)
Oracle Data Guardは、自然災害などが発生した場合を想定し、遠隔地のスタンバイデータベースとネットワーク経由でフェイルオーバーを可能にする機能です。Data Guardの仕組みを理解すればData Guardならではの問題にも迅速に対応できるでしょう。
REDOデータ転送の流れ
以降では、実際にREDOデータの転送設定について説明していきます。REDOデータの転送方法は、次の初期化パラメータで設定します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
「n」は最大で10まで設定できます。Data Guardはアーカイブログ・モードで構成する必要があります。プライマリ・データベースで最低でも1つのアーカイブログファイルのあて先を指定するので、スタンバイ・データベースは最大で9個になるわけです。
具体的な設定の例を挙げてみます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ここでは、LOG_ARCHIVE_DEST_2でスタンバイ・データベースへの転送方法を設定しています。REDOデータの転送方法にはいくつか種類がありますが、今回はアーカイブログを転送する方法を取り上げます。SERVICE の部分にスタンバイ・データベースへ接続できるOracle Netの接続文字列を指定します。
DB_UNIQUE_NAMEの部分にはスタンバイ・データベースのインスタンス名を指定します。上記の例では便宜上、Oracle Netの接続文字列とスタンバイ・データベースのインスタンス名は同じにしています。
また、図3の手順4および5で指定しているログ転送方式についても初期化パラメータLOG_ARCHIVE_DEST_nで指定することができます。
デフォルトはアーカイバ・プロセス(ARCn)となっていますので、上記のようにLGWRと記載することでログライター・プロセス(LGWR)がREDO情報を転送するようにもできます。以下にLOG_ARCHIVE_DEST_2で指定する例についてご紹介します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
そのほかの転送方法や初期化パラメータに指定できるオプションはマニュアル「Oracle Data Guard 概要および管理」に詳細が記載されていますのでご参照ください。
REDOデータが生成されない操作には注意
Oracle Databaseの処理には、REDOデータに記録を残さない NOLOGGINGというモードがあります。REDOデータを生成しないので、処理の実行速度を上げることができますが、一方で、Data Guard環境のプライマリ・データベースでNOLOGGINGモードで実行された処理は、スタンバイ・データベースに反映されません。
NOLOGGINGモードの処理は反映されない
NOLOGGINGモードの処理が含まれたREDOデータをスタンバイ・データベースに適用すると、データファイルの一部が使用不可能になり、読み取り専用でスタンバイ・データベースをオープンしたときなどにエラーが発生します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
エラー発生時の対処法
エラーを解消するには、プライマリ・データベースからデータファイルのバックアップをコピーして、スタンバイ・データベースをリカバリすることになります。
こうした問題が発生しないようにするには、プライマリ・データベースを強制ロギング(FORCE LOGGING)に設定しておき、NOLOGGING モードでもREDOデータが生成されるようしておきます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.