10bet网址
MySQL 5.6リファレンスマニュアル
本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb


18.6.8 MySQL集群レプリケションを使用したフェ

プライマリクラスタのレプリケーションプロセスが失敗した場合,セカンダリレプリケーションチャネルに切り替えることができます。次に,この実現に必要なステップにいて説明します。

  1. 最新のグロバルチェックポント(gcp)の時間を取得します。すなわ,スレブクラスタのndb_apply_statusテブルから最新のエポックを指定する必要があり,これは次のクエリを使用して特定できます。

    mysql年代> SELECT @latest:=MAX(epoch) FROM mysql.ndb_apply_status;
  2. ステップ1で示したクエリから得た情報を使用して,マスタクラスタのndb_binlog_indexテブルから対応するレコドを取得します。

    MySQL集群NDB 7.3では,次のクエリを使用すると,マスタのndb_binlog_indexテブルから必要なレコドを取得できます。

    mysql米的> SELECT -> @file:=SUBSTRING_INDEX(next_file, '/', -1), -> @pos:=next_position -> FROM mysql。ndb_binlog_index -> WHERE epoch = @latest -> ORDER BY epoch ASC LIMIT 1;

    これらは,プラ。ここでは,ユザ変数@latestを使用して,ステップ1で取得した値を表します。もろん,あるmysqldeconfンスタンスが,ほかのサeconfンスタンスに設定されたユ。これらの値は,手動で2番目のクエリ,またはアプリケプラグ邮箱ンする必要があります。

    重要

    开始的奴隶を実行する前に,スレブmysqld——slave-skip-errors = ddl_exist_errorsで起動されていることを確認します。そうしないと,レプリケションが重複DDLエラで停止する可能性があります。

  3. これで,セカンダリスレーブサーバーで次のクエリーを実行して,セカンダリチャネルの同期を取ることができるようになります。

    mysql年代> CHANGE MASTER TO -> MASTER_LOG_FILE='@file', -> MASTER_LOG_POS=@pos;

    再度ユザ変数(この場合は@file@pos)を使用して,ステップ2で取得され,ステップ3で適用される値を表します。実際には,これらの値を手動で挿入するか,関与する両方のサーバーにアクセスできるアプリケーションコードを使用して挿入する必要があります。

    注記

    @file“/ var / log / mysql / replication-master-bin.00001”などの文字列値であるため,SQLまたはアプリケーションコードで使用するときは,引用符で囲む必要があります。ただし,@posで表される値は引用符で囲む必要はありません。通常,MySQLは文字列を数字に変換しようとしますが,この場合は例外です。

  4. これで,セカンダリスレブのmysqldで適切なコマンドを発行して,セカンダリチャネルでレプリケションを開始できるようになりました。

    mysql年代>开始的奴隶;

セカンダリレプリケーションチャネルがアクティブになったら,プライマリの不具合を調べて,修復できます。これを行うために必要な的確なアクションは、プラ以及マリチャネルで失敗した原因によって異なります。

警告

セカンダリレプリケーションチャネルは,プライマリレプリケーションチャネルの停止時や停止した場合にのみ,起動されます。複数のレプリケーションチャネルを同時に実行すると,不要な重複レコードがレプリケーションスレーブで作成される可能性があります。

障害が1台のサバに限定される場合,から年代に,または米的から年代に,(論理的には)複製できますが,まだ検証されていません。


本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb