もっと詳しく

新しいデータガード構成をセットアップし、同期するためのログ転送モードの変更を仲介した後、以下のように失敗します。

DGMGRL> edit database mystby set property LogXptMode="SYNC";
Error: ORA-16713: The Oracle Data Guard broker command timed out.

Failed.

保護モードを変更するには、同期モードが必要でした。 他のDGの問題はなく、トランスポートのやり直しとログの適用は正常に機能していました。 当時、トランスポートモードの変更はスタンバイでのみ失敗していました。 ただし、同期モードパラメータは、プライマリのログアーカイブ先で設定されます。 この障害により、2つのインスタンスのログ転送モードは次のようになります。

Transport-Related Property Settings:
Property                        myprod Value             mystby Value
LogXptMode                      SYNC                     ASYNC

解決策1

sm0(Data Guard Broker Workerプロセス)プロセスがハングします(要求に応答しません)。

システム状態の表示:

–「’rdbmsipcメッセージ’を待機中」のsm0が長時間

wait times: snap=5389 min 21 sec, exc=5389 min 21 sec, total=5389 min 21 sec)

–スタックスタックダンプ情報は、スタックrsm0プロセスの取得がタイムアウトしたことを示しています

Short stack dump: WAIT #0: nam='ksdxexeotherwait' ela= 30008940 p1=0 p2=0 p3=0 obj#=-1 tim=1430877633277147
ORA-32516: cannot wait for process 'Unix process pid: 25280, image: oracle@ropldb05.hsn.net (RSM0)' to finish executing ORADEBUG command 'SHORT_STACK'; wait time exceeds 30000 ms

–プロセスのスタックを取得するスタックトレースが「タイムアウト」しました

– nsv1プロセスは、「rdbmsipcメッセージを待機中」としてアイドル待機中です。

ここでの解決策は、rsm0プロセスを強制終了することです。

rsm0は致命的ではないバックグラウンドプロセスです。 新しいrsm0プロセスは、強制終了されると再生成されます。

解決策2

構成を無効にし、ログ転送モードを更新して再度有効にします(おそらく、これによりrsmが強制終了されるよりもきれいに再起動されます)。

DGMGRL> disable configuration;
Disabled.
DGMGRL> edit database mystby set property LogXptMode="SYNC";
Property "logxptmode" updated
DGMGRL> enable configuration;
Enabled.

これは期待どおりに機能しました。 トランスプロトノードの変更が、プライマリのlog_archive_destに表示されるようになりました。

log_archive_dest_3   string service="mystbytns", SYNC AFFIRM delay=0 optional c

  Transport-Related Property Settings:
    Property                        myprod Value             mystby Value
    LogXptMode                      SYNC                     SYNC

この後、保護モードを変更することが可能になりました。

解決策3

内部タイムアウトが低すぎるため、ブローカーはRSM0プロセスを強制終了して再起動しています。 これは、ネットワークのチョーク状態でも発生する可能性があります。 OperationTimeoutが設定されているものを指定してください。

DGMGRL> connect sys/
DGMGRL> show configuration OperationTimeout;

OperationTimeoutを増やすか、パッチを適用します。 これが30〜120と低い場合は、600(10分)まで高く設定します。

DGMGRL> EDIT CONFIGURATION SET PROPERTY OperationTimeout=600;

次に、問題が解決するかどうかを確認します。

The post LogXptModeを変更するとOracleDataGuardBrokerコマンドがタイムアウトになりました–オタク日記 appeared first on Gamingsym Japan.