MAA GoldenGate Hubのトラブルシューティング

Oracle GoldenGate Extractの障害またはエラー条件に関する考慮事項

REDO転送の最大パフォーマンス・モードまたは最大可用性モードを使用しているOracle Data Guard構成を使用するOracle GoldenGate Extractプロセスでは、トランザクションが失われて論理データの不整合が発生しないように、プライマリ・データベース・システムにあるExtractプロセス・パラメータ・ファイルに次のパラメータを追加する必要があります。

TRANLOGOPTIONS HANDLEDLFAILOVER

このパラメータにより、まだData Guardスタンバイ・データベースに適用されていないREDOからExtractがトランザクション・データを抽出しないようにします。これは、Oracle GoldenGateがソース・スタンバイ・データベースに存在しないデータをターゲット・データベースにレプリケートしないようにするために重要です。

このパラメータが指定されていないと、ソース・データベースのデータ損失フェイルオーバー後に、ソース・データベースに存在していないデータがターゲット・データベースに保持される可能性があります。それにより、論理データの不整合が発生します。

デフォルトでは、スタンバイ・データベースの適用済SCN情報を問い合せることができないためにExtractが止まると、その60秒後に、Extractレポート・ファイルに警告メッセージが書き込まれます。たとえば:

WARNING OGG-02721 Extractはスタンバイ・データベースを60秒待機しています。

Extractレポート・ファイルに警告メッセージが書き込まれるまでの時間は、ExtractパラメータTRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_WARNINGを使用して調整できます。

Extractで30分(デフォルト)後もまだスタンバイ・データベースの適用済SCN情報を問い合せることができない場合は、Extractプロセスが異常終了して、次のメッセージがExtractレポート・ファイルに記録されます。

ERROR OGG-02722 Extractは、スタンバイ・データベースがアクセス可能になるか、プライマリ・データベースに同期することを1,800秒待機して異常終了しました。

デフォルトの30のタイムアウトが満了する前にスタンバイ・データベースが使用可能になると、Extractはソース・データベースからデータのマイニングを続行して、次のメッセージをレポート・ファイルに報告します。

INFO OGG-02723 Extractは停止状態から復帰してLCRの処理を開始しました。

タイムアウト値の30分は、ExtractパラメータのTRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_ABEND <value>を使用すると調整できます。このvalueは、異常終了するまでにスタンバイが使用できない秒数です。

計画メンテナンスの停止時など、スタンバイ・データベースが長時間使用できなくなるときに、Extractでプライマリ・データベースからのデータ抽出を続行する場合は、Extractパラメータ・ファイルからTRANLOGOPTIONS HANDLEDLFAILOVERパラメータを削除して、Extractを再起動してください。このパラメータは、スタンバイが使用可能になったら必ず設定してください。

ノート:

スタンバイが使用できない間にプライマリ・データベースからの抽出が続行されていると、スタンバイが使用可能になったときにデータ損失フェイルオーバーが発生し、フェイルオーバーの前にすべてのプライマリREDOが適用されていない可能性もあります。GoldenGateターゲット・データベースには、ソース・データベースに存在しないデータが含まれるようになります。

Cloud: Oracle Exadata Database ServiceでのOracle GoldenGate Microservices Architectureの構成のベスト・プラクティス」で説明したように、Extractプロセスに自動再起動プロファイルが割り当てられている場合は、Data Guardのロール・トランジションの後にExtractプロセスが自動的に再起動されます。Extractでは、デフォルトのタイムアウト期間である5分が経過するまで、新しいスタンバイ・データベースの現在の状態が無視されて、新しいプライマリ・データベースからのREDOデータのマイニングが続行されます。この期間の経過後にスタンバイが使用できない場合、Extractは次のエラーで異常終了します。

INFO OGG-25053 スタンバイ・データベース復帰のための300秒の待機がタイムアウトです。ただちにHANDLEDLFAILOVERを実施します。

ERROR OGG-06219 ログマイニング・サーバーOGG$CAP_XXXXXからデータを抽出できません

ERROR OGG-02078 Extractは処理スレッドで致命的エラーを検出し、異常終了しています。

Extractでは、Oracle GoldenGate Microservicesの自動再起動プロファイルに基づいて、再試行回数に達するか新しいスタンバイ・データベースが使用可能になるまで自動的に再起動が試みられます。また、それがHANDLEDLFAILOVERタイムアウトに達すると失敗します。

データベース・ロール・トランジションの後のタイムアウト期間中は、HANDLEDLFAILOVERパラメータが自動的に一時停止されます。そのため、ソース・スタンバイ・データベースが最新の状態に保たれていないことは考慮されずに、データがOracle GoldenGateレプリカ・データベースにレプリケートされます。Extractの異常終了前に起動するスタンバイ・データベースのタイムアウト期間は、ExtractパラメータのTRANLOGOPTIONS DLFAILOVER_TIMEOUTを使用すると調整できます。

DLFAILOVER_TIMEOUTをデフォルトの5分のままにして、古いプライマリをスタンバイに変換できるようにすることをお薦めします。新しいスタンバイ・データベースが長期間使用できなくなるか完全に消失した場合に、Extractを起動して実行状態を維持するには、Extractパラメータ・ファイルからHANDLEDLFAILOVERパラメータを削除する必要があります。このパラメータを削除すると、ExtractはREDOがスタンバイ・データベースに適用されるまで待機することなくデータを抽出します。

スタンバイ・データベースがオンラインに戻りプライマリ・データベースからのすべてのREDOを適用するまでの間は、スタンバイ・データベースとOracle GoldenGateレプリカ・データベースの間にデータの相違があります。この相違は、スタンバイ・データベースが最新状態になると解決されます。この時点で、統合Extractプロセス・パラメータ・ファイルにHANDLEDLFAILOVERパラメータを再追加し、Extractを停止してから再起動できます。

Oracle Data Guardファスト・スタート・フェイルオーバー(プライマリ・データベースが失われたときにブローカで自動的にスタンバイ・データベースにフェイルオーバーできる)が無効になっている場合は、次に示す統合Extractパラメータを追加で指定する必要があります。

TRANLOGOPTIONS FAILOVERTARGETDESTID n

このパラメータでは、スタンバイ・データベースにまだ適用されていないREDOデータを抽出しないことに関して、Oracle GoldenGate Extractプロセスを遅らせたままにしておく必要があるスタンバイ・データベースを指定します。

Oracle Data Guardファスト・スタート・フェイルオーバーが無効になっており、統合ExtractパラメータFAILOVERTARGETDESTIDを追加で指定していない場合は、Extractが次のエラーで異常終了します。

ERROR OGG-06219 ログマイニング・サーバーOGG$CAP_XXXXXからデータを抽出できません

ERROR OGG-02078 Extractは処理スレッドで致命的エラーを検出し、異常終了しています。

ACFSレプリケーションのトラブルシューティング

ACFSレプリケーションのヘルスは、acfsutil repl util verifyprimary/verifystandbyコマンドによって判断されます。これらのコマンドは、サンプルのCRSアクション・スクリプトacfs_primary.scrおよびacfs_standby.scrによってコールされますが、ファイル・システムのロール・トランジション中にも暗黙的にコールされます。

問題が検出されていない場合は、どちらのコマンドも'0'の値を返します。ゼロ以外の値が返された場合は、verboseフラグを指定して同じコマンドを実行し、検証テストの包括的な出力を確認します。

スタンバイGGHubシステムのgridユーザーとして、プライマリGGHubを使用してACFSレプリケーションを確認します。

[grid@gghub_stby1]$ acfsutil repl util verifyprimary /mnt/acfs_gg -v

- Attempting to ping clust1-vip1
- ping successful
- Attempting to ssh
  '/usr/bin/ssh -o BatchMode=true -o Ciphers=aes128-ctr -o ConnectTimeout=3   -x oracle@clust1-vip1 true 2>&1'
- ssh output: Host key verification failed.
- ssh output: Host key verification failed.
- ssh attempt failed, ret=255
verifyprimary return code: 255

検証コマンドHost key verification failedによって報告されたエラーは、失敗した理由を明確に示しています。この例では、スタンバイおよびプライマリ・ファイル・システムGGHubの間のssh構成に問題があります。問題が解決したら、検証コマンドを再実行して、それ以上の問題がないことを確認します。

フェイルオーバーが完了したら、acfsutilトレース・ファイルでフェイルオーバーの背後にある理由を確認することをお薦めします。acfsutilトレース・ファイルはCRSトレース・ファイル・ディレクトリ(デフォルトは/u01/app/grid/diag/crs/`hostname`/crs/trace/crsd_scriptagent_grid.trc)にあります。

次に、誤ったACFSレプリケーション構成で発生する可能性のある、一般的な障害の一部を示します。

SSHデーモンが停止しているか、VIPで実行するように構成されていない

ACFSプライマリとスタンバイGGHubsでアプリケーションVIPを使用する場合は、sshデーモンを、VIPアドレスで受信接続をリスニングするように構成する必要があります。この構成が行われない場合や、現在のプライマリ/スタンバイ・ホストでsshデーモンが実行されていない場合は、verifyprimaryまたはverifystandbyコマンドが次のエラーで失敗します。

プライマリGGHubシステムのgridユーザーとして、スタンバイGGHubを使用してACFSレプリケーションを確認します。

[grid@gghub_prim1]$ acfsutil repl util verifystandby /mnt/acfs_gg -v


- Attempting to ping gghubstby.goldengate.com
- ping successful
- Attempting to ssh
  '/usr/bin/ssh -o BatchMode=true   -o Ciphers=aes128-ctr -o ConnectTimeout=3   -x oracle@gghub_stby-avip true 2>&1'

- ssh output: ssh: connect to host gghub_stby1 port 22: Connection refused
- ssh output: ssh: connect to host gghub_stby2 port 22: Connection refused

- ssh attempt failed, ret=255
verifystandby return code: 255

スタンバイGGHubシステムのgridユーザーとして、リソース・アプリケーションVIPとsshd_restartが実行中であることを確認し、実行していない場合は再起動します。

[grid@gghub_stby1 ~]$ crsctl stat res -w "TYPE co app.appviptypex2"

NAME=gghubstby
TYPE=app.appviptypex2.type
TARGET=OFFLINE
STATE=OFFLINE

[grid@gghub_stby1 ~]$ crsctl start res gghubstby

CRS-2672: Attempting to start 'gghubstby' on 'gghub_stby1'
CRS-2676: Start of 'gghubstby' on 'gghub_stby1' succeeded
CRS-2672: Attempting to start 'sshd_restart' on 'gghub_stby1'
CRS-2676: Start of 'sshd_restart' on 'gghub_stby1' succeeded

acfsutil repl verifystandby/verifyprimaryがプライマリおよびスタンバイ・ホストの両方から、'0'の結果を返すことを確認します。

プライマリACFSバックグラウンド・リソースが実行されていない

  1. プライマリまたはスタンバイのACFSサーバーにアクセスできません

  2. ACFSレプリケーションsshユーザーの問題
  3. SSHホスト・キーの検証に失敗しました

Oracle GoldenGateのトラブルシューティング

Oracle RACノードでGoldenGateプロセスが正常に開始されない場合があります。問題の原因を特定するために確認する必要がある、GoldenGate、XAGおよびCRSによって生成されたファイルが多数あります。

重要なログ・ファイルとトレース・ファイルのリスト、場所の例および出力の例を次に示します。

XAGログ・ファイル

場所: <XAG installation directory>/log/<hostname>

場所の例: /u01/app/grid/xag/log/'hostname'

ファイル名: agctl_goldengate_grid.trc

agctlで実行されるすべてのコマンドと、CRSが実行するコマンドを含むコマンドの出力が含まれます。

2022-04-18 11:52:21: stop resource success
2022-04-18 11:52:38: agctl start goldengate <instance_name>
2022-04-18 11:52:38: executing cmd: /u01/app/19.0.0.0/grid/bin/crsctl status res xag.<INSTANCE_NAME>.goldengate
2022-04-18 11:52:38: executing cmd: /u01/app/19.0.0.0/grid/bin/crsctl status res xag.<INSTANCE_NAME>.goldengate -f
2022-04-18 11:52:38: executing cmd: /u01/app/19.0.0.0/grid/bin/crsctl start resource xag.<INSTANCE_NAME>.goldengate -f
2022-04-18 11:52:45: Command output:
>  CRS-2672: Attempting to start 'xag.<INSTANCE_NAME>.goldengate' on 'exadb-node1'
>  CRS-2676: Start of 'xag.<INSTANCE_NAME>.goldengate' on 'exadb-node1' succeeded
>End Command output
2022-04-18 11:52:45: start resource success

XAG GoldenGateインスタンス・トレース・ファイル

場所: <XAG installation directory>/log/<hostname>

場所の例: /u01/app/grid/xag/log/'hostname'

ファイル名: <GoldenGate_instance_name>_agent_goldengate.trc

これには、agctlによって実行されたコマンドの出力、使用された環境変数、基礎となるコマンドに対して有効になっているデバッグ出力が含まれます。

2022-04-18 12:14:46: Exported ORACLE_SID ggdg1
2022-04-18 12:14:46: Exported GGS_HOME /u01/oracle/goldengate/gg21c_MS
2022-04-18 12:14:46: Exported OGG_CONF_HOME /mnt/dbfs/goldengate/deployments/ggsm01/etc/conf
2022-04-18 12:14:46: Exported LD_LIBRARY_PATH 
/u01/oracle/goldengate/gg21c_MS:/u01/app/19.0.0.0/grid/lib:/etc/ORCLcluster/lib
2022-04-18 12:14:46: Exported LD_LIBRARY_PATH_64 /u01/oracle/goldengate/gg21c_MS
2022-04-18 12:14:46: Exported LIBPATH /u01/oracle/goldengate/gg21c_MS
2022-04-18 12:14:46: ogg input = {"oggHome":"/u01/oracle/goldengate/gg21c_MS","serviceManager":{"oggConfHome":"/mnt/dbfs/goldengate/deployments/ggsm01/etc/conf","portNumber":9100},"username":"<username>","credential":"*****"}
2022-04-18 12:14:46: About to exec /u01/oracle/goldengate/gg21c_MS/bin/XAGTask HealthCheck
2022-04-18 12:14:47: XAGTask retcode = 0

CRSトレース・ファイル

場所: /u01/app/grid/diag/crs/<hostname>/crs/trace

例の場所: /u01/app/grid/diag/crs/'hostname'/crs/trace

ファイル名: crsd_scriptagent_oracle.trc

XAGまたはdbfs_mountなどのCRSリソース・アクション・スクリプトによって作成された出力が含まれます。このトレース・ファイルは、DBFSまたはGoldenGateがRACノードで起動しなかった理由を判断するために重要です。

2022-04-18 11:52:38.634 :    AGFW:549631744: {1:30281:59063} Agent received the message: RESOURCE_START[xag.<INSTANCE_NAME>.goldengate 1 1] ID 4098:4125749
2022-04-18 11:52:38.634 :    AGFW:549631744: {1:30281:59063} Preparing START command for: xag.<INSTANCE_NAME>.goldengate 1 1
2022-04-18 11:52:38.634 :    AGFW:549631744: {1:30281:59063} xag.<INSTANCE_NAME>.goldengate 1 1 state changed from: OFFLINE to: STARTING
2022-04-18 11:52:38.634 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] Executing action script: /u01/oracle/XAG_MA/bin/aggoldengatescaas[start]
2022-04-18 11:52:38.786 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] GG agent running command 'start' on xag.<INSTANCE_NAME>.goldengate
2022-04-18 11:52:42.140 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] ServiceManager fork pid = 265747
2022-04-18 11:52:42.140 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] Waiting for /mnt/dbfs/goldengate/deployments/ggsm01/var/run/ServiceManager.pid
2022-04-18 11:52:42.140 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] Waiting for SM to start
2022-04-18 11:52:42.140 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] ServiceManager PID = 265749
2022-04-18 11:52:43.643 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] XAGTask retcode = 0
2022-04-18 11:52:43.643 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [start] XAG HealthCheck after start returned 0
2022-04-18 11:52:43.643 :    AGFW:558036736: {1:30281:59063} Command: start for resource: xag.<INSTANCE_NAME>.goldengate 1 1 completed with status: SUCCESS
2022-04-18 11:52:43.643 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [check] Executing action script: /u01/oracle/XAG_MA/bin/aggoldengatescaas[check]
2022-04-18 11:52:43.644 :    AGFW:549631744: {1:30281:59063} Agent sending reply for: RESOURCE_START[xag.<INSTANCE_NAME>.goldengate 1 1] ID 4098:4125749
2022-04-18 11:52:43.795 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [check] GG agent running command 'check' on xag.<INSTANCE_NAME>.goldengate
2022-04-18 11:52:45.548 :CLSDYNAM:558036736: [xag.<INSTANCE_NAME>.goldengate]{1:30281:59063} [check] XAGTask retcode = 0
2022-04-18 11:52:45.548 :    AGFW:549631744: {1:30281:59063} xag.<INSTANCE_NAME>.goldengate 1 1 state changed from: STARTING to: ONLINE

GoldenGateデプロイメント・ログ・ファイル

場所: <Goldengate_deployment_directory>/<instance_name>/var/log

例の場所: /mnt/dbfs/goldengate/deployments/<instance_name>/var/log

ファイル名: adminsrvr.log、recvsrvr.log、pmsrvr.log、distsrvr.log

Oracle GoldenGateデプロイメント・プロセス(管理サーバー、分散サーバー、受信サーバー、パフォーマンス・メトリック・サーバー)の開始、停止およびステータス・チェックの出力が含まれます。

2022-04-18T11:52:42.645-0400 INFO | Setting deploymentName to '<instance_name>'. (main)
2022-04-18T11:52:42.665-0400 INFO | Read SharedContext from store for length 19 of file '/mnt/dbfs/goldengate/deployments/<instance_name>/var/lib/conf/adminsrvr-resources.dat'. (main)
2022-04-18T11:52:42.723-0400 INFO | XAG Integration enabled (main)
2022-04-18T11:52:42.723-0400 INFO | Configuring security. (main)
2022-04-18T11:52:42.723-0400 INFO | Configuring user authorization secure store path as '/mnt/dbfs/goldengate/deployments/<instance_name>/var/lib/credential/secureStore/'. (main)
2022-04-18T11:52:42.731-0400 INFO | Configuring user authorization as ENABLED. (main)
2022-04-18T11:52:42.749-0400 INFO | Set network configuration. (main)
2022-04-18T11:52:42.749-0400 INFO | Asynchronous operations are enabled with default synchronous wait time of 30 seconds (main)
2022-04-18T11:52:42.749-0400 INFO | HttpServer configuration complete. (main)
2022-04-18T11:52:42.805-0400 INFO | SIGHUP handler installed. (main)
2022-04-18T11:52:42.813-0400 INFO | SIGINT handler installed. (main)
2022-04-18T11:52:42.815-0400 INFO | SIGTERM handler installed. (main)
2022-04-18T11:52:42.817-0400 WARN | Security is configured as 'disabled'. (main)
2022-04-18T11:52:42.818-0400 INFO | Starting service listener... (main)
2022-04-18T11:52:42.819-0400 INFO | Mapped 'ALL' interface to address 'ANY:9101' with default IPV4/IPV6 options identified by 'exadb-node1.domain'. (main)
2022-04-18T11:52:42.821-0400 INFO | Captured 1 interface host names: 'exadb-node1.domain' (main)
2022-04-18T11:52:42.824-0400 INFO | The Network ipACL specification is empty. Accepting ANY address on ALL interfaces. (main)
2022-04-18T11:52:42.826-0400 INFO | Server started at 2022-04-18T11:52:42.827-05:00 (2022-04-18T15:52:42.827Z GMT) (main)

GoldenGateレポート・ファイル

場所: <Goldengate_deployment_directory>/<instance_name>/var/lib/report

例の場所: /mnt/dbfs/goldengate/deployments/<instance_name>/var/lib/report

GoldenGateレポート・ファイルには、Managerプロセスを含む、すべてのGoldenGateプロセスの重要な情報、警告メッセージおよびエラーが含まれています。実行中にGoldenGateプロセスのいずれかが開始に失敗したか異常終了した場合、プロセス・レポート・ファイルには、失敗の原因を特定するために使用できる重要な情報が含まれます。

2022-04-23 13:01:50  ERROR   OGG-00446  Unable to lock file " /mnt/acfs_gg/deployments/<instance_name>/var/lib/checkpt/EXT_1A.cpe" (error 95, Operation not supported).
2022-04-23 13:01:50  ERROR   OGG-01668  PROCESS ABENDING.