一般的な問題と解決策
次のトピックでは、Oracle Data Guard Brokerを使用する際の一般的な問題と解決策について説明します。
ORA-16596: データベースがOracle Data Guard Broker構成に含まれていない
ブローカに対して要求が発行されましたが、接続に使用するデータベース・インスタンスはブローカ構成に含まれていません。
解決策
ブローカ構成に含まれている他のデータベースを介して構成に再接続してください。ORA-16596エラーを戻したデータベースのdb_unique_name値と名前が一致するデータベースがブローカ構成に存在することを確認してください。
構成を有効化しようとして、そのデータベースの1つのブローカ構成ファイルが意図せずに削除されていた場合や陳腐化している場合にも、この問題が発生することがあります。その場合は、データベースをブローカ構成から削除し、(プライマリ・データベースではなく)そのスタンバイ・データベースの構成ファイルを手動で削除してから、構成の有効化を再試行してください。構成が有効化された後は、Cloud Controlのスタンバイ・データベースの追加ウィザードを使用して「既存のスタンバイ・データベースの追加」オプションを選択するか、DGMGRLコマンドライン・インタフェースを使用してADD DATABASE コマンドを発行できます。
プライマリ・データベースに累積されたREDOが一部のスタンバイ・データベースに送信されない場合
Cloud Controlの「ログ・ファイルの詳細」ページを表示すると、ログ・ファイルがプライマリ・データベースに累積され、ブローカ構成内の一部のスタンバイ・データベースにアーカイブされていないことがわかります。
解決策
問題を絞り込むには、次の手順を実行します。
-
プライマリ・データベースの状態が(
TRANSPORT-OFFではなく)TRANSPORT-ONであることを確認します。 -
問題のスタンバイ・データベースのデータベース・プロパティ
LogShippingの値がONであることを確認します。 -
監視可能なプロパティ
LogXptStatusを使用して、プライマリ・データベースのREDO転送サービスのステータスをチェックします。REDO転送サービスにエラーがある場合は、エラー・メッセージを参考にして詳細なチェックおよび解決処置を判断します。たとえば:-
スタンバイ・データベースが使用不可能であることをエラーが示している場合は、スタンバイ・データベースを再起動する必要があります。
-
リスナーが存在しないことをエラーが示している場合は、リスナーを再起動する必要があります。
-
スタンバイ・データベースにローカルの宛先がないことをエラーが示している場合は、プライマリ・データベースからのアーカイブREDOログ・ファイルを格納するスタンバイ位置を設定する必要があります。
-
スタンバイ・データベース上で多数のログ・ファイルが受信されるが適用されない場合
Cloud Controlの「パフォーマンス」ページまたは「ログ・ファイルの詳細」ページを表示すると、スタンバイ・データベースに適用されないまま累積しているログ・ファイルが多すぎることがわかります。
解決策
アーカイブREDOログ・ファイルがスタンバイ・データベースに適用されない場合は、様々な原因が考えられます。ログ・ファイルが累積されている原因を調べて、妥当な理由を排除してください。
スタンバイ・データベースの現在のステータスが正常でない場合
-
ログ適用サービスが予期せず停止しているかどうかを判別します。詳細は、ORA-16766(フィジカル・スタンバイ・データベースの場合)またはORA-16768(ロジカル・スタンバイ・データベースの場合)のエラーの説明と解決策を参照してください。
-
これがロジカル・スタンバイ・データベースの場合は、障害トランザクションが発生したかどうかを確認します。
-
問題の調査中にエラーを抑止する場合は、データベースのブローカ管理を一時的に無効化できます。
関連項目:
DGMGRLコマンドライン・インタフェースを使用してデータベースを無効化する方法の詳細は、「Oracle Data Guardコマンドライン・インタフェース・リファレンス」を参照してください
スタンバイ・データベースの現在のステータスが正常な場合
-
スタンバイ・データベースの状態が(
APPLY-OFFではなく)APPLY-ONであることを確認します。 -
プライマリ・データベースの状態が(
TRANSPORT-OFFではなく)TRANSPORT-ONであることを確認します。関連項目:
データベース・プロパティ
LogShippingの詳細は、「Oracle Data Guard Brokerのプロパティ」を参照してください - スタンバイ・データベースがスナップショット・ロールにないことを確認します(ログは受信されますが、スタンバイがフィジカル・スタンバイに変換されるまでは適用されません)。
-
ログ・ファイルが累積されている原因が、
DelayMinsプロパティの設定値が大きすぎるためかどうかを調べます。(ログ適用サービスでは、スタンバイ・データベースへのアーカイブREDOログ・ファイルの適用が、指定した時間(分)だけ遅延されます。)関連項目:
データベース・プロパティ
DelayMinsの詳細は、「Oracle Data Guard Brokerのプロパティ」を参照してください -
何もエラーが表示されない場合は、REDO生成率を適用率と比較して、適用率がアーカイブ率より低いかどうかを調べます。プライマリ・データベースのREDO生成率は、
SHOW DATABASEコマンド出力で確認できます。同様に、スタンバイの適用率はSHOW DATABASE出力で確認できます。
要求がタイムアウトしたか、Cloud Controlのパフォーマンスが低い場合
ブローカの要求が通常のタイムアウト・パラメータ内に完了しない場合、次の処置を試行して問題を解決します。
-
ネットワークが適切に動作しているかどうか確認します。
-
構成内のすべてのノードに対してpingを試行します。
-
他のデータベースにより再接続を試行し、操作を再試行します。
-
VERIFYコマンドを実行し、ブローカが要求を処理できないデータベースを特定します。
プライマリ・データベースがフラッシュバックされる場合
プライマリ・データベースがフラッシュバックされる場合、構成内のスタンバイ・データベースも、スイッチオーバーまたはフェイルオーバーの実行可能なターゲットとなるように、フラッシュバックまたは再作成される必要があります。
プライマリ・データベースがフラッシュバックされた場合、ブローカによりスタンバイ・データベースのエラーがレポートされます。
ブローカにより無効化されたスタンバイ・データベースの実行可能性をリストアする方法の詳細は、「ロール変更後の無効化されたデータベースの再有効化」を参照してください。
不明なサービスのためにスタンバイが自動開始できない場合(ORA-12514)
DGMGRL CLIがブローカ操作(たとえば、スイッチオーバー、回復、またはフィジカル・スタンバイへの変換)の後にインスタンスの自動起動に失敗した場合、ORA-12514エラーが生成される場合があります。
完全なエラー・テキストは、ORA-12514「データベースに接続できません。サービス%sが%sのリスナーに登録されていません。(CONNECTION_ID=%s)」です。このエラーが発生し、データベースがOracle Clusterwareによって管理されていない場合は、インスタンスを手動で起動して、ブローカ操作を完了または続行する必要があります。
ノート:
この項のトラブルシューティング情報は、Oracle Clusterwareで管理されていないデータベースにのみ適用されます。
次のステップを完了する前か後に、インスタンスを再起動できます。
-
次のDGMGRL CLIコマンドを発行して、DGMGRL CLIが再起動できなかったインスタンスの構成可能なプロパティ
StaticConnectIdentiferの値を確認します。(このコマンドを発行するには、実行中の別のインスタンスに接続する必要があります)SHOW DATABASE db_unique_name StaticConnectIdentifier; -
StaticConnectIdentiferインスタンス・プロパティの値で指定されている静的サービス名は、プロパティ値で指定されているリスナーに登録されている必要があります。静的サービス名のデフォルト値は、次の形式をとります。<db_unique_name>_DGMGRL.<db_domain>
ブローカを使用するための、これを含む様々な前提条件の詳細は、「前提条件」を参照してください。
-
リスナー制御ユーティリティのステータス・コマンドを使用して、静的サービス名が、構成可能なプロパティ
StaticConnectIdentiferの値で指定されたリスナーに登録されていることを確認します。lsnrctl status
構成可能な
StaticConnectIdentiferプロパティの値は、VALIDATE STATIC CONNECT IDENTIFIERコマンドを使用して検証できます。