3

2台のサーバーが1台をマスターとして、もう1台をスレーブとして実行しています。天気をチェックしたいのですが、両方のテーブルのデータが同じです。これを確認して確認するにはどうすればよいですか?テーブルには2300万行以上あります。

また、最初のステップとして私は実行しようとしました CHECKSUM TABLE tbl;

しかし、60秒後にこのエラーが発生します。 ERROR 2013 (HY000): Lost connection to MySQL server during query

ご意見をお聞かせください。

4

3 に答える 3

2

mk-table-checksumMaatkitユーティリティの一部であるを使用することもできます。

http://www.maatkit.org/doc/mk-table-checksum.html

于 2011-02-07T11:54:27.027 に答える
1

テーブルがマスターおよびスレーブとして設定されている場合は、このチェックを行う必要はありません。2つの間のバイナリ同期により、それらが同一であることが保証されます。そうですね。

最新バージョンのmysqlのいずれかを使用している場合は、テーブルのパーティション化も確認する必要があります:http: //dev.mysql.com/doc/refman/5.1/en/partitioning.htmlこれにより、アクセスが大幅に高速化されます。チェックサムのように。

于 2011-02-07T11:37:55.293 に答える
0

100%可能かどうかはわかりませんが、レプリケーションの状態を確認する少なくとも1つの方法は、 High Performance MySQLの本で説明されているように、ある種の単純なハートビートメカニズムを実装することです。

このメソッドは、テーブルに挿入され、20秒ごとに検証されるタイムスタンプを処理します。返されるステータスレポートと一緒にSHOW SLAVE STATUS \G、現在の状態に関するいくつかの正確な統計を取得します。

スレーブがマスターの背後にあるステートメントの数、またはそのようなレプリケーションエラーが表示されます。エラーや保留中のステートメントがない場合は、時間tでテーブルが同期していると想定するのに十分なはずです。

于 2011-02-07T11:43:33.677 に答える