2

マスターからスレーブへの環境を正常にセットアップしましたが、間違いなく正常に機能しています。

私が抱えている唯一の問題は、テーブルからカウントを選択することです。それらは同じではありませんが、マスターから5分後に選択すると、スレーブ上で50行が作成され、50行も作成されます(これが、私が確信している理由です)正常に動作しています)

マスター:

+----------+
| COUNT(*) |
+----------+
|    77634 |
+----------+
1 row in set (0.00 sec)

スレーブ:

+----------+
| COUNT(*) |
+----------+
|    76932 |
+----------+
1 row in set (0.00 sec)

なぜこれが起こったのか考えていますか?'CHANGE MASTER TO'コマンドを使用してスレーブをマスターを指すように変更したときに、マスターのバイナリログファイルの位置がすでに移動している可能性はありますか?

4

2 に答える 2

2

スレーブで「SHOW SLAVE STATUS」を試して、エラーが発生しているかどうかを確認してください。

同期を再確立するために、マスターからデータをロードすることもできます。

于 2011-09-07T11:52:18.157 に答える
0

MySQL のレプリケーションは「信頼できる」ものではなく、問題が発生した場合に自動的に再同期することもできません。予定外の再起動などがなくても、うまくいかない可能性はたくさんあります。

長時間動作する可能性に耐えるために、積極的に監視する必要があります。

少なくとも、次の 2 つのことを行う必要があります。

  1. (各スレーブで) SHOW SLAVE STATUS の出力をチェックして、スレッドが実行されていること、エラーが報告されていないこと、および seconds_behind_master が多すぎないことを確認します。
  2. 各スレーブ/マスターで何らかの整合性チェックを定期的に実行します - --replication オプションを指定して mk-table-checksum をお勧めします

そして、これらのチェックの出力を監視システムに接続して、運用スタッフが警告を受けるようにします。

Ops スタッフは、それを修正する方法 (ダンプ/復元、またはその他の修正) も知っている必要があります。Ops に関するナレッジベースの記事を書く必要があることは間違いありません。

私は前にこれをしました - それは簡単ではなく、簡単に間違えることができます。

于 2011-09-07T13:01:33.427 に答える