0

2 台の 5.0 MySQL サーバーをマスター - マスター レプリケーションで実行しており、インメモリ データ表現を更新する前に、両方のデータベースの内容がまったく同じであることを確認したいと考えています。そうするために、現在私は次のロジックを使用しています

  1. Slave_IO_Running&Slave_SQL_Runningが両側で yes に設定されていることを確認します

  2. 一方の問題show master status;では、現在のマスター ファイルと位置を取得します。

  3. 反対側の問題では、 &show slave status;の値を取得しますMaster_Log_FileExec_Master_Log_Pos

  4. 次に、2 つの側の値を比較し、2 番目の側の値が等しいかそれ以上の場合、複製が行われたことを返します。

マスターの後ろのフィールド秒数がhttp://dev.mysql.com/doc/refman/5.5/en/show-slave-status.htmlをチェックする別の方法である可能性があることは承知していますが、低速のネットワークではそうではない可能性があると書かれています正確であること。

私が質問している主な理由は、マスターの位置が 35000 で、スレーブでは 2000 でしかなく、ショー スレーブ ステータスの基になっているカタログが更新されていないかのように何も起こらないというケースを見てきたためです。はやくて。

percona のツールキットのアイデアに従って、チェックサムを含む別の検証方法を設計し始めています。

どんな考えや提案も大歓迎です!

乾杯、

4

1 に答える 1

0

代わりに、Percona Toolkitの pt-heartbeatSeconds_Behind_Masterを使用してレプリケーション ラグを監視します。そのツールを使用して、セカンダリ マスターがプライマリ マスターに追い付いていることを確認できますが、2 つのマスターの実際のデータを比較する場合は、pt-table-checksumをお勧めします。

于 2012-07-25T14:28:09.007 に答える