0

私はMySql 5.1を実行しています。2 台のマシンにマスターとスレーブがあり、レプリケーションをセットアップしています。

スレーブサーバーで定期的なバックアップを行っています。mysql を停止し、すべてのファイルをコピーして、mysql を再起動します。

マスターを紛失した場合に備えて、最後のバックアップから新しいマスターをセットアップできます。

スレーブを失うとどうなりますか? 前回のバックアップからスレーブを再起動できますか? バックアップを作成するたびに、レプリケーションの位置を追跡する必要がありますか?

4

1 に答える 1

1

私がこの問題を解決した方法は、
月次 (または週次/日次) のバックアップを取得し、マスターをリセットしてログ ファイルを再起動することでした。バックアップをマスターにパイプして、一度に 1 つのテーブルでデータベースを補充します。スレーブを再起動します。
さらに多くのスレーブがあり、テーブルのリロードにそれほど時間はかかりませんでした。バックアップに時間がかかりすぎる場合は、これを別の方法で行うことをお勧めします。
スレーブを失った場合、テーブルのリロードでスレーブを開始する限り、ログ ファイルからスレーブを再起動することができます。スレーブの 1 つからバックアップする場合は、最初にマスターと同期していることを確認することが重要です。

これを行う方法は他にもあるかもしれませんが、定期的にログ ファイルを新たに開始することは非常に便利です。
cron で使用するマスター コード (これは以前のものです。動作することを確認する必要があります):

#!/usr/bin/ksh
date=`date +%y%m%d`
mysql -u root db_name -e "flush tables with read lock;"
mysqldump -u root -pYrPass --add-drop-table --add-locks natl_inv > /path/to/backup/db_name$date
mysql -u root -e "reset master;"
mysql -u root db_name -e "unlock tables;"
mysql -u root –pYrPass db_name < /path/to/backup/db_name$date
mysql -u root -e "flush logs;"

スレーブの場合: show slave status コマンドを使用して、マスターと同期していることを確認します。マスターに再同期する場合は、次を実行します。

slave stop;
reset slave;
slave start;

mysql を停止し、スレーブ ビン ログ ファイルを削除してから、再起動して上記を実行する必要がある場合があります。

于 2012-06-19T03:05:35.477 に答える