web-dev-qa-db-ja.com

MySQLデータベースを移行するための最良の方法は何ですか?

忙しいeコマースサイトをあるサーバーから別のサーバーに移動しています。

これは[〜#〜] php [〜#〜]アプリケーションであり、MySQLを使用します。 phpMySQLはどちらのサーバーにもインストールされていません。 Navicat Essentials for MySQLを使用してデータベースを管理します。

計画は以下の通りです。

  1. DNSTTLを減らします。
  2. 古いサーバーから新しいサーバーにファイルを転送するためのユーザーrsync。
  3. 古いサーバーでは、Navicatを使用してデータベースをエクスポートし、新しいサーバーでは、ダンプされたSQLファイルをインポートします。
  4. 新しいサーバーでテストを実行します(コンピューター上でドメインが新しいサーバーを指すようにローカルhostsファイルを変更します)
  5. 問題がある場合は、トラブルシューティングを行い、手順4に戻ります。それ以外の場合は手順6に進みます。
  6. 手順4ですべてが正常になったら、PHPアプリケーション(古いサーバーで実行中)でメンテナンスモードをオンにします。
  7. Rsyncを再度実行して、最後のrsync以降に残っているファイルをコピーします。
  8. Navicatで、古いサーバーで、関連するデータベースのSQLファイル(構造とデータ)をダンプし、次に新しいサーバーで、最初にインポートされたデータベースからすべてのテーブルを削除し、新しくダンプされたSQLファイルを実行します。
  9. DNSの詳細を新しいIPで更新し、TTLを再度増やします。

これは適切なアプローチですか?実際、正直なところ、手順1〜7はすでに完了しています。移行中にNavicatを使用したことがないので(常にphpMyAdminを使用していました)、手順8が心配です。手順8である必要がありますか、それとも別の方法で行う必要がありますか?

1
OC2PS

説明する計画には、アプリケーションのダウンタイムまたはデータの損失(あるいはその両方)が含まれます。より推奨される方法は、新しいDBサーバーを立ち上げ、現在のサーバー(現在はマスター)のスレーブとして構成し、両方をマスター/スレーブのペアとして使用するようにアプリを再構成することです。スレーブが追いついたら(そしてスレーブに接続してクエリを送信できるようになったら)、スレーブを昇格/マスターを降格します。

MySQLレプリケーション構成ドキュメント

3
gWaldo

グーグルで最も一般的な方法は、mysqldumpコマンドを使用することです。

https://dba.stackexchange.com/questions/174/how-can-i-move-a-database-from-one-server-to-another -最も詳細

http://www.networkworld.com/columnists/2004/092004drinternet.htmlmysqlをLinuxボックスからローカルVistaボックスに移動する最も簡単な方法は何ですか?

ただし、使用しているとおっしゃったNavicatを使用すると、データ転送/レプリケーションのセットアップが可能になるという言及があります。

お役に立てれば。

0