この手順では、メンテナンス期間中にマルチノード クラスターで失敗したレプリケーションを再初期化する方法について説明します。
CA API Gateway は、MySQL レプリケーションを使用して、1 つのGateway アプライアンスまたはデータベース サーバが使用不能になったり、機能が低下したりした場合に、データベース フェイルオーバーと可用性を提供します。MySQL レプリケーションでは、データベース オブジェクトの複製コピーが 1 つ以上の場所に確実に保持されます。Gatewayは、マルチノード環境でマスター/マスター実装を使用して、あるホストに対するデータベースの変更が他のデータベース ホストに確実にレプリケートされるようにします。
MySQL レプリケーションは、他のデータベース ノードが利用できない場合に、それ自体を修復できます。レプリケーションは、クラスター内のノードで正常なシャットダウン、MySQL サーバーのシャットダウン、またはネットワーク停止が発生した後、自動的に修復できます。データ整合性エラーが発生すると、レプリケーションは失敗します。
ローカル MySQL データベースに対して SHOW SLAVE STATUS クエリを実行すると、次のデータが表示される場合があります。
Slave_IO_Running: No
Slave_SQL_Running: No
次のログ エントリがゲートウェイ ログ ファイルに存在する場合があります。
2380 WARNING "Error accessing host/database
2381 WARNING "Replication failing for host/database
API Gateway 全バージョン
MySQL レプリケーションはさまざまな理由で中断する可能性がありますが、これについてはこの KB 記事の範囲外です。
マルチノード クラスタでレプリケーションを再初期化するには、Gateway アプライアンスで次の手順を実行する必要があります。
1. プライマリ/セカンダリおよびすべての処理中のノードで API Gateway 'ssg' サービスを停止します: service ssg stop
2. 予防措置として、まずプライマリ ノード上のデータベースをバックアップします: mysqldump --all-databases --set-gtid-purged=OFF | gzip > ~/all_databases_`date '+%Y%m%d_%T'`.sql.gz
3. 両方のノードでスレーブ レプリケーションを停止します: mysqladmin stop-slave
以下の警告メッセージが表示された場合、次のコマンドで停止します: mysqladmin stop-replica
# mysqladmin stop-slave
WARNING: stop-slave is deprecated and will be removed in a future version. Use stop-replica instead.
Replication stopped
4. 両方のノードでマスター構成をリセットします: mysql -e "reset master"
5. 両方のノードでスレーブ構成をリセットします: mysql -e "reset slave; reset slave all"
6. セカンダリ ノードで create_slave.sh スクリプトを実行します: /opt/SecureSpan/Appliance/bin/create_slave.sh
次の点に留意して、スクリプトのプロンプトに従います。
7. ステップ 6 が完了したら、セカンダリ ノードでマスター構成をもう一度リセットします: mysql -e "reset master"
8. プライマリ ノードで create_slave.sh スクリプトを実行します: /opt/SecureSpan/Appliance/bin/create_slave.sh
次の点に留意して、スクリプトのプロンプトに従います。
9. プライマリ/セカンダリおよびすべての処理ノードでGateway 'ssg' サービスを開始します: service ssg start
10. 両方のノードのレプリケーションのステータスをクエリします: mysql -e "show slave status\G"
11. 両方のノードが次の行を返すことを確認します。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
この時点でレプリケーションが再初期化されています。上記の出力は、マスター/スレーブ関係が機能していることを示しています。