1

2 日前、MySQL マスター - スレーブ レプリケーションのセットアップを開始しました。私はマスターからエクスポートを行い、それをスレーブとすべてのものにインポートしました。これはすべてうまくいきました。しかし、スレーブからマスターへの接続をセットアップする際に問題が発生しました。だから私は夜にそれをやめました。約 1.5 日後に問題が修正され、レプリケーションが実行されています。マスターは常に実行されていました。しかし今、私が走ったとき、私show slave statusはマスターから約125,000秒遅れています。スレーブは、ログに記録されたすべてのものをマスターから自動的にダウンロードし、このものを実行して同期させると考えました。しかし、 の値はseconds_behind_master非常にゆっくりと低下します。これは正常ですか?過去1.5日間のすべてのものをすぐにプッシュする方法はありますか、それとも何か非常に間違っていましたか?

4

2 に答える 2

2

スレーブは、可能な限り高速にシングルスレッドでバイナリログを実行します。サーバーの構成とマスターの負荷によっては、スレーブが追いつくまでに多くの時間がかかる可能性があります(場合によってはさらに遅れることもあります)。

于 2012-07-28T19:08:13.873 に答える
0

これは、MySQL スレーブがマスターに追いついておらず、時間の経過とともに、マスターの背後にあるラグまたはスレーブ サーバーが増えることに関するものです。この状況の唯一の解決策は、スレーブのエラー ログを親切にチェックし、その位置で MySQL スレーブ レプリケーションを開始し、bin-log することをお勧めします。ここでの位置は、変更マスター コマンドの正確な位置です。

  • エラーログファイルで位置が見つからない場合は、バイナリログをテキストファイルに変換し、マスターが接続を失った適切な日付と時刻を見つけて、最後にスレーブに挿入されたエントリをスレーブサーバーとクロスチェックし、位置を確認してください。次に、change master to command を使用します。

また

  • [マスター サーバーをスレーブ サーバーとして] と [スレーブ サーバーをマスターとして] を変更し、レプリケーションを再度取得してみてください。その後、元のアーキテクチャに変更した後、リバース レプリケーションを使用してすべて問題なく実行できます。それは間違いなく動作します。
于 2014-06-24T07:16:44.923 に答える