回答編集履歴

1 追加

katsumiy

katsumiy score 463

2015/05/31 12:46  投稿

レプリケーションを構成するにしても、一度旧サーバーをバックアップして、そのデーターをもとに新サーバーを作って、レプリケーションをスタートしないといけないですよね。
手順は
1. 新サーバーでバイナリロギングを開始。
2. mysqldump で、--single-transaction --master-data=2 をつけてバックアップ
3. 新サーバーでデーターをリストア。
4. ダンプされたデーターの中の コメントされたCHANGE MASTER 行をもとにレプリケーションをスタート。レプリケーションをバックアップから expire_logs_days 以内に開始する。
5. レプリケーションが追いついた時点で旧サーバーの更新を止め、アクセスを新サーバーへ振替。
これで、切り替え時の一瞬止めるだけで入れ替えができます。
ただしMyISAM のテーブルを頻繁に変更している場合、TABLEの作成、削除を頻繁にしている場合は、
この方法ではできません。
ただし、mysqldump はバックアップもリストアも非常に遅いので、30GB もあるならば、LVM での
スナップショットでのバックアップや、有料のMySQL Enterprise Backup を使うべきです。
スナップショットでのバックアップや、有料のMySQL Enterprise Backup を使うべきです。
というか、30GBもデーターがあり、24時間稼働しているサーバーをここに質問をするような人が
管理していてはいけません。大変なことになる前に、エキスパートを雇われることをお勧めします。
または、MySQL のちゃんとしたサポートを提供する会社と契約するべきです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る