25 Oracle GoldenGate Hub向けの計画および計画外停止の管理
ハブでプライマリまたはスタンバイ・ファイル・システム・クラスタの計画停止または計画外停止が発生した場合、検討する必要がある考慮事項が多数あります。
計画停止の管理
GGHubで計画メンテナンスを実行する必要がある場合は、一部のCRSリソースを停止し無効にして、それらの再起動を防ぎ、ファイル・システムのフェイルオーバーが誤って開始されることや実行中のGoldenGateが停止されることで望ましくない結果が生じないようにする必要があります。
プライマリまたはスタンバイ・ハブ・クラスタの計画停止のイベントでは、次の推奨事項を使用します。
すべての計画メンテナンス・イベントの場合:
-
オペレーティング・システムのソフトウェアまたはハードウェアの更新とパッチ
- Oracle Grid Infrastructureの個別または診断パッチ
- クリティカル・パッチ・アップデート(CPU)プログラムのOracle Grid Infrastructureの四半期ごとの更新、またはOracle Grid Infrastructureリリースのアップグレード
-
GGHubソフトウェア・ライフサイクル(次のものを含む):
- Oracle GoldenGate
- Oracle Grid Infrastructure Agent
- NGINX
高可用性ソリューションとターゲットの停止時間:
GoldenGateレプリケーションが一時停止される数秒から数分
ステップ1: アイドル状態のGGHubノードのソフトウェア更新
ステップ2: GGHubノードの再配置
ステップ3: 残りの非アクティブなGGHubノードのソフトウェア更新
GGHubノードの再配置
プライマリGGHubシステムでgrid
OSユーザーとして、Oracle GoldenGateインスタンスを再配置します。
[grid@gghub_prim1 ~]$ agctl status goldengate
Goldengate instance 'gghub' is running on gghub_prim1
[grid@gghub_prim1 ~]$ time agctl relocate goldengate gghub
real 0m43.984s
user 0m0.156s
sys 0m0.049s
プライマリGGHubシステムでgrid
OSユーザーとして、Oracle GoldenGateインスタンスのステータスを確認します。
[grid@gghub_prim1 ~]$ agctl status goldengate
Goldengate instance 'gghub' is running on gghub_prim2
DRイベントまたはターゲット・データベースと同じリージョンでGGHubを移動するためのGGHubロール・リバーサル
GGHubロール・リバーサルでは、スタンバイが新しいプライマリになるように、ACFSロール・リバーサルが実行されます。プライマリ・ファイル・システムとスタンバイ・ファイル・システムの両方がオンラインの場合は、acfsutil repl failover
コマンドにより、ロール・リバーサルが完了する前に、プライマリ・ファイル・システムの未処理の変更内容がすべて転送され、スタンバイに適用されます。
GGHubロール・リバーサルを使用する場合:
- レプリケーションのパフォーマンスを高めるために、GGHubデプロイメントをターゲット・データベースの近くに移動する
- サイトの停止をサポートする
- サイトのメンテナンスをサポートする
現在のスタンバイGGHubノードでgrid
OSユーザーとして、ACFSロール・リバーサルを実行するスクリプトを作成します。
[grid@gghub_stby1]$ export ACFS_MOUNT_POINT=/mnt/acfs_gg1
[grid@gghub_stby1]$ export GG_DEPLOYMENT_NAME=gghub
[grid@gghub_stby1]$ ssh `/sbin/acfsutil repl info -c -v $ACFS_MOUNT_POINT| grep
'Primary hostname' | awk '{print $3}'| cut -d "@" -f2`
"agctl stop goldengate $GG_DEPLOYMENT_NAME"
[grid@gghub_stby1]$ /sbin/acfsutil repl failover $ACFS_MOUNT_POINT
[grid@gghub_stby1]$ agctl start goldengate $GG_DEPLOYMENT_NAME
[grid@gghub_stby1]$ agctl status goldengate $GG_DEPLOYMENT_NAME
Goldengate instance 'gghub' is running on gghub_stby1
または、任意のGGHubノードでgrid
OSユーザーとして、スクリプトacfs_role_reversal.sh
によってACFSロール・リバーサルを実行します。
[grid@gghub_stby1]$ sh /u01/oracle/scripts/acfs_role_reversal.sh
/mnt/acfs_gg1 gghub
################################################################################
ACFS Primary Site: gghub_prim_vip1.frankfurt.goldengate.com
ACFS Standby Site: gghub_stby_vip1.frankfurt.goldengate.com
################################################################################
Thu Nov 30 17:28:37 UTC 2023 - Begin Stop GoldenGate gghub
Thu Nov 30 17:28:38 UTC 2023 - End Stop GoldenGate gghub
################################################################################
Thu Nov 30 17:28:38 UTC 2023 - Begin ACFS replication sync /mnt/acfs_gg1
Thu Nov 30 17:28:59 UTC 2023 - End ACFS replication sync /mnt/acfs_gg1
################################################################################
Site: Primary
Primary status: Running
Status: Send Completed
Lag Time: 00:00:00
Retries made: 0
Last send started at: Thu Nov 30 17:28:45 2023
Last send completed at: Thu Nov 30 17:28:55 2023
################################################################################
Site: Standby
Last sync time with primary: Thu Nov 30 17:28:45 2023
Status: Receive Completed
Last receive started at: Thu Nov 30 17:28:46 2023
Last receive completed at: Thu Nov 30 17:28:52 2023
################################################################################
Thu Nov 30 17:29:00 UTC 2023 - Begin Role Reversal
Thu Nov 30 17:30:02 UTC 2023 - End Role Reversal
################################################################################
ACFS Primary Site: gghub_stby_vip1.frankfurt.goldengate.com
ACFS Standby Site: gghub_prim_vip1.frankfurt.goldengate.com
################################################################################
Site: Primary
Primary status: Running
Status: Send Completed
Lag Time: 00:00:00
Retries made: 0
Last send started at: Thu Nov 30 17:29:45 2023
Last send completed at: Thu Nov 30 17:29:56 2023
################################################################################
Site: Standby
Last sync time with primary: Thu Nov 30 17:29:45 2023
Status: Receive Completed
Last receive started at: Thu Nov 30 17:29:50 2023
Last receive completed at: Thu Nov 30 17:29:50 2023
################################################################################
Thu Nov 30 17:30:03 UTC 2023 - Begin Start GoldenGate gghub
Thu Nov 30 17:30:10 UTC 2023 - End Start GoldenGate gghub
################################################################################
計画外停止の管理
計画外停止に伴う予想される影響
プライマリまたはスタンバイのGGHubクラスタで計画外停止が発生した場合、GoldenGateの継続的稼働を保証するための手順がいくつかあります。プライマリおよびスタンバイGGHUBシステムの計画外停止が発生した場合のガイドとして、次のGGHUB障害のユースケースを使用してください。
ユース・ケース#1 - スタンバイ・ハブの障害またはプライマリGGHubがスタンバイGGHubと通信できない
プライマリGGHubがスタンバイGGHubと通信できない場合は、次のメッセージがアクティブなクラスタ・ノードのプライマリCRSトレース・ファイル(crsd_scriptagent_grid.trc)に出力されます。
2023-06-21 12:06:59.506 :CLSDYNAM:1427187456: [acfs_primary]{1:8532:12141} [check] Executing action script: /u01/oracle/scripts/acfs_primary.scr[check]
2023-06-21 12:07:05.666 :CLSDYNAM:1427187456: [acfs_primary]{1:8532:12141} [check] WARNING: STANDBY not accessible (attempt 1 of 3))
2023-06-21 12:07:18.683 :CLSDYNAM:1427187456: [acfs_primary]{1:8532:12141} [check] WARNING: STANDBY not accessible (attempt 2 of 3))
2023-06-21 12:07:31.751 :CLSDYNAM:1427187456: [acfs_primary]{1:8532:12141} [check] WARNING: STANDBY not accessible (attempt 3 of 3))
2023-06-21 12:07:31.751 :CLSDYNAM:1427187456: [acfs_primary]{1:8532:12141} [check] WARNING: Problem with STANDBY file system (error: 222)
この時点で、スタンバイ・ファイル・システムはプライマリ・ファイル・システムの変更を受信しなくなります。プライマリ・ファイル・システムとOracle GoldenGateは障害なく機能し続けます。
このシナリオでは、次のアクション・プランを使用します。
- コマンド'acfsutil repl util verifystandby /mnt/acfs_gg –v'を使用して、スタンバイ・ファイル・システムを確認し、スタンバイ・ハブにアクセスできない理由を特定します。
- 通信エラーの原因を修正すると、スタンバイは未処理のプライマリ・ファイル・システムの変更の適用を自動的に取り入れます。警告メッセージはCRSトレース・ファイルに報告されなくなり、次に示すメッセージに置き換えられます。
2023-06-21 12:15:01.720 :CLSDYNAM:1427187456: [acfs_primary]{1:8532:12141} [check] SUCCESS: STANDBY file system /mnt/acfs_gg is ONLINE
ユース・ケース#2 - プライマリGGHubの障害またはスタンバイGGHubがプライマリGGHubと通信できない
スタンバイGGHubがプライマリGGHubと通信できない場合は、次のメッセージがアクティブなクラスタ・ノードのスタンバイCRSトレース・ファイル(crsd_scriptagent_grid.trc)に出力されます。
2023-06-21 12:24:03.823 :CLSDYNAM:4156544768: [acfs_standby]{1:10141:2} [check] Executing action script: /u01/oracle/scripts/acfs_standby.scr[check]
2023-06-21 12:24:06.928 :CLSDYNAM:4156544768: [acfs_standby]{1:10141:2} [check] WARNING: PRIMARY not accessible (attempt 1 of 3)
2023-06-21 12:24:19.945 :CLSDYNAM:4156544768: [acfs_standby]{1:10141:2} [check] WARNING: PRIMARY not accessible (attempt 2 of 3)
2023-06-21 12:24:32.962 :CLSDYNAM:4156544768: [acfs_standby]{1:10141:2} [check] WARNING: PRIMARY not accessible (attempt 3 of 3)
2023-06-21 12:24:32.962 :CLSDYNAM:4156544768: [acfs_standby]{1:10141:2} [check] WARNING: Problem with PRIMARY file system (error: 222)
この時点では、スタンバイ・ファイル・システムがプライマリ・ファイル・システムからファイル・システムの変更を受信している可能性はほとんどありません。
このシナリオでは、次のアクション・プランを使用します。
- コマンド'acfsutil repl util verifyprimary /mnt/acfs_gg -v'を使用して、プライマリ・ファイル・システムを確認し、プライマリ・ハブにアクセスできない理由を特定します。
- プライマリ・ファイル・システム・クラスタが停止して再起動できない場合は、スタンバイGGHubでACFSフェイルオーバーを発行します。
[grid@gghub_stby1]$ /sbin/acfsutil repl failover /mnt/acfs_gg # Specify the correct mount point [grid@gghub_stby1]$ acfsutil repl info -c -v /mnt/acfs_gg |egrep 'Site:|Primary status|Background Resources:' Site: Primary Primary status: Running Background Resources: Active
- 次のコマンドを実行して、新しいプライマリ・ハブで開始するacfs_primaryリソースを準備し、GoldenGateを再起動します。
[grid@gghub_stby1]$ echo "RESTART" > /mnt/acfs_gg/status/acfs_primary [grid@gghub_stby1]$ agctl start goldengate <instance_name> # Specify the GoldenGate instance name [grid@gghub_stby1]$ agctl status goldengate Goldengate instance '<instance_name>' is running on gghubstby-node1
- 古いプライマリ・ファイル・システムがオンラインに戻ったときに、新しいプライマリと古いプライマリとの接続が再開されると、古いプライマリ・ファイル・システムは自動的にスタンバイに変換されます。
- 古いプライマリ・ファイル・システムがオンラインに戻っても、プライマリ・ファイル・システムとスタンバイ・ファイル・システム間の接続が確立できない場合、acfs_primaryリソースはノードがクラッシュしたことを検出し、スタンバイへの接続を確認できないため、GoldenGateは起動されません。2つのファイル・システムが相互に通信できないため、それらの両方がプライマリであると認識される「スプリット・ブレイン」を回避できます。
ユース・ケース#3 - 二重障害のケース: プライマリGGHubの障害とスタンバイGGHubの接続失敗
プライマリGGHubがクラッシュし、オンラインに戻ったときにスタンバイ・ファイル・システムとの通信を確立できない場合は、次に示すのメッセージがアクティブ・クラスタ・ノードのプライマリCRSトレース・ファイル(crsd_scriptagent_grid.trc)に出力されます。
2023-06-21 17:08:52.621:[acfs_primary]{1:40360:36312} [start] WARNING: PRIMARY file system /mnt/acfs_gg previously crashed
2023-06-21 17:08:55.678:[acfs_primary]{1:40360:36312} [start] WARNING: STANDBY not accessible - disabling acfs_primary
プライマリ・ファイル・システムを手動で再起動しようとすると、CRSトレース・ファイルに、さらにメッセージが出力されます。
2023-06-21 17:25:54.224:[acfs_primary]{1:40360:37687} [start] WARNING:
PRIMARY /mnt/acfs_gg disabled to prevent split brain
このシナリオでは、次のアクション・プランを使用します。
- コマンド'acfsutil repl util verifystandby /mnt/acfs_gg -v'を使用して、スタンバイ・ファイル・システムを確認し、スタンバイ・ハブにアクセスできない理由を特定します。
- スタンバイ・ファイル・システムとの通信を再確立できる場合は、プライマリ・ハブでGoldenGateを再起動します。
[grid@gghub_prim1]$ agctl start goldengate <instance_name> # Specify the GoldenGate instance name [grid@gghub_prim1]$ agctl status goldengate Goldengate instance '<instance_name>' is running on gghub_prim1
- スタンバイ・ファイル・システムとの通信を再確立できない場合は、次のコマンドを使用して、プライマリ・ハブでGoldenGateを再起動します。
[grid@gghub_prim1]$ echo "RESTART" > /mnt/acfs_gg/status/acfs_primary [grid@gghub_prim1]$ agctl start goldengate <instance_name> # Specify the GoldenGate instance name [grid@gghub_prim1]$ agctl status goldengate Goldengate instance '<instance_name>' is running on gghub_prim1
- スタンバイ・ファイル・システムとの通信がリストアされると、ACFSレプリケーションはプライマリ・ファイル・システムの変更を引き続きレプリケートします。