マルチノードクラスタでレプリケーションを再初期化する方法

Document created by Ryoji_Kadota Employee on Jun 28, 2017Last modified by Ryoji_Kadota Employee on Jul 12, 2017
Version 1Show Document
  • View in full screen mode

文書番号: JTEC002586

製品名: CA API Gateway

バージョン: ALL

OS: ALL

 

◆概要
この手順では、メンテナンス期間中にマルチノードクラスタで障害が発生したレプリケーションを再初期化する方法について説明します。

 

◆バックグラウンド
1つのゲートウェイアプライアンスまたはデータベースサーバーが使用できなくなったり、機能が低下したりすると、CA API GatewayはMySQLレプリケーションを使用してデータベースのフェイルオーバーと可用性を提供します。MySQLレプリケーションは、データベースオブジェクトの複製コピーが1つ以上の場所で確実に維持されるようにします。ゲートウェイは、マルチノード環境でマスター/マスター実装を使用して、あるホストへのデータベースの変更が他のデータベースホストに確実に複製されるようにします。

 

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

 

◆再初期化手順
注意:このプロセスは、ゲートウェイクラスタが完全に利用できないメンテナンスウィンドウで実行することをお勧めします。

 

大量の監査(通常は1,000,000を超える)がローカル・ゲートウェイ・データベースに存在する場合、このプロセスによりかなりのダウンタイムが発生します。これらの監査レコードは、次の記事でこの手順の前に削除できます。
      1. TEC0000001008 Deleting old audit events from the local Gateway database
      2. TEC0000001123 Removing audit records from the Gateway database in a multi-node cluster without downtime )

 

メンテナンスウィンドウの長さと幅について懸念がある場合は、CAサポートにお問い合わせください。

マルチノードクラスタでレプリケーションを再初期化するには、次の手順を実行する必要があります。
      1. PRIMARYノードでデータベースをバックアップします:Mysqldump --all-databases> ~/all_databases_`date '+%Y%m%d_%T'`.sql
      2. 新しく作成されたSQLファイルの最後の行が " - Dump completed <date-time>"であることを確認してください。
      3. 将来の使用のためにファイルを保管してください。
      4. 両方のノードで slave replicationを停止します:  mysqladmin stop-slave
      5. 両方のノードでマスタ設定をリセットします: mysql -e "reset master"
      6. 両方のノードでスレーブ設定をリセットします: mysql -e "reset slave; reset slave all"
      7. 両方のノードでゲートウェイサービスを停止します:  service ssg stop
      8. セカンダリノードでcreate_slave.shスクリプトを実行します: /opt/SecureSpan/Appliance/bin/create_slave.sh
      9. プライマリノードの完全修飾ドメイン名(FQDN)を入力します。
      10. ローカルデータベース及び、リモートデータベースのコピーを削除します。
      11. プライマリノードでcreate_slave.shスクリプトを実行します
            node: /opt/SecureSpan/Appliance/bin/create_slave.sh
      12. プロンプトが表示されたら、セカンダリ ノードのFQDNを指定します。
      13. ローカルデータベースを削除する要求を拒否します。
      14. 両方のノードでゲートウェイサービスを開始します。service ssg start
      15. 両方のノードでレプリケーションのステータスのクエリーを実行します。: mysql -e "show slave status \G"
            注:行の最後にある "\G"は、人が認識可能な出力を行います。
        16. 両方のノードで次の結果になることを確認します。
            Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
            Seconds_Behind_Master: 0
この時点でレプリケーションを再初期化されています。
上記の出力は、マスタ/スレーブ関係が機能していることを示します。

 

                                                                                             

この情報は、CA Support Online に掲載されている以下のナレッジベースを翻訳したものです。
TEC1122741: Reinitialize replication in a multi-node cluster

Attachments

    Outcomes