web-dev-qa-db-ja.com

ダンプなしでMySQLを物理的に移行する

クライアントから、MySQL DBの移行を依頼されました。サーバーに空き容量がなく、非常に大きなテーブルが壊れているため、ダンプできません。

空き容量が足りないため修理できません。

質問:MySQL DBデータファイルを別のサーバーに物理的に移動し、それらを「新しい」MySQLに使用する方法はありますか?

7

これがあなたができることです:

  • 古いDBサーバー:10.1.2.30
  • 新しいDBサーバー:10.1.2.40

ステップ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新しいサーバーでは、はるかに大きなディスクマウント上にあります

8
RolandoMySQLDBA

オンザフライで別のサーバーに移行して、パイプと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
5
BrunoJCM