検索
連載

Data Guard環境ならではの問題と対処法Oracleトラブル対策の基礎知識(7)(3/4 ページ)

Oracle Data Guardは、自然災害などが発生した場合を想定し、遠隔地のスタンバイデータベースとネットワーク経由でフェイルオーバーを可能にする機能です。Data Guardの仕組みを理解すればData Guardならではの問題にも迅速に対応できるでしょう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

REDOデータ転送の流れ

 以降では、実際にREDOデータの転送設定について説明していきます。REDOデータの転送方法は、次の初期化パラメータで設定します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

サンプル1 REDOデータを転送するための設定

 「n」は最大で10まで設定できます。Data Guardはアーカイブログ・モードで構成する必要があります。プライマリ・データベースで最低でも1つのアーカイブログファイルのあて先を指定するので、スタンバイ・データベースは最大で9個になるわけです。

 具体的な設定の例を挙げてみます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

サンプル2 LOG_ARCHIVE_DEST_2での設定例

 ここでは、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版でご覧ください。 ***

サンプル3 ログ・ライター・プロセス(LGWR)を指定してREDO情報を転送する場合の例

 そのほかの転送方法や初期化パラメータに指定できるオプションはマニュアル「Oracle Data Guard 概要および管理」に詳細が記載されていますのでご参照ください。

REDOデータが生成されない操作には注意

 Oracle Databaseの処理には、REDOデータに記録を残さない NOLOGGINGというモードがあります。REDOデータを生成しないので、処理の実行速度を上げることができますが、一方で、Data Guard環境のプライマリ・データベースでNOLOGGINGモードで実行された処理は、スタンバイ・データベースに反映されません。

NOLOGGINGモードの処理は反映されない

 NOLOGGINGモードの処理が含まれたREDOデータをスタンバイ・データベースに適用すると、データファイルの一部が使用不可能になり、読み取り専用でスタンバイ・データベースをオープンしたときなどにエラーが発生します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト1 NOLOGINGモードの処理が含まれるREDO情報が適用された場合のエラーの例

エラー発生時の対処法

 エラーを解消するには、プライマリ・データベースからデータファイルのバックアップをコピーして、スタンバイ・データベースをリカバリすることになります。

 こうした問題が発生しないようにするには、プライマリ・データベースを強制ロギング(FORCE LOGGING)に設定しておき、NOLOGGING モードでもREDOデータが生成されるようしておきます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト2 強制ロギング(FORCE LOGGING)モードに設定する例

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る