クライアントから、MySQL DBの移行を依頼されました。サーバーに空き容量がなく、非常に大きなテーブルが壊れているため、ダンプできません。
空き容量が足りないため修理できません。
質問:MySQL DBデータファイルを別のサーバーに物理的に移動し、それらを「新しい」MySQLに使用する方法はありますか?
これがあなたができることです:
ステップ01)古いサーバーでservice mysql stop
ステップ02)古いサーバーでrsync -av --progress /var/lib/mysql [email protected]:/var/lib/mysql
ステップ03)新しいサーバーでchown -R mysql:mysql /var/lib/mysql
ステップ04)新しいサーバーでservice mysql start
確認してください /var/lib/mysql
新しいサーバーでは、はるかに大きなディスクマウント上にあります
オンザフライで別のサーバーに移行して、パイプとSSH経由でデータを送信することもできます。たとえば、ターゲットホストのMySQLバージョンが異なる場合に役立ちます。
私はそれをどのようにしたかを説明するブログ投稿を書いたところです:
http://blog.techutils.space/2016/02/on-fly-database-migration-between-two.html
そこには説明がありますが、気にならない場合は以下のように実行してください。
ターゲットホスト:
nc -l 3456 | \
gunzip | \
pv | \
mysql -u tdb_user -ptdb_pass targetdatabase
ソースホスト:
mysqldump -u sdb_user -psdb_pass sourcedatabase | \
pv | \
gzip | \
ssh sshuser@targethost nc 127.0.0.1 3456