web-dev-qa-db-ja.com

MySQLGTIDエラー1236

私はマシンが本番環境で稼働するようになるのを減らしようとしています。MySQLがボトルネックになっています。私が試していること。 1台のマシンでコードを更新し、MySQLですべてが正常に復元された後、EC2 AMIを作成し、自動スケーリンググループからマシンを起動しました。今この例では、私は取っておらず、ライブダンプもありません。 MySQLを起動してレプリケーションを作成した後、GTIDエラーが表示されます。これらのすべてのプロセスには30〜40分かかります。

Last_IO_Error:バイナリログからデータを読み取るときにマスターから致命的なエラー1236が発生しました: 'スレーブはCHANGEMASTER TO MASTER_AUTO_POSITION = 1を使用して接続していますが、マスターはスレーブが必要とするGTIDを含むバイナリログをパージしました。

どんな体でも私が間違っていることを知ることができます。しかし、私が新しいダンプを取り、これをライブマシンで復元すると、動作します。 MySQLバージョン5.6.17。

1
Obivan

複製するには、マスターからダンプを取得する必要があります。

マスターは、スレーブが必要とするGTIDを含むバイナリログをパージしました。

マスターはそのバイナリログを削除し、新しいバイナリログファイルを作成します。これが、現在のバイナリログで使用可能なgtid_executedgtid_purgedを取得しているため、ダンプを取得した後にレプリケーションを実装する場合に機能する理由です。

ただし、ダンプなしで実装している場合、Materがすでにパージしているため、gtid_executedgtid_purgedは一致します。

したがって、ダンプを取る必要があり、場合によってはスレーブでgtid_purgedを手動で設定する必要があります。

あなたはこれを読むことができます、それは非常によく説明されています。 https://www.percona.com/blog/2013/02/08/how-to-createrestore-a-slave-using-gtid-replication-in-mysql-5-6/

1
khalid