2016-03-21 12 views
1

server_1(OS is Windows)に大きなmysqlデータベースがあり、server_1のすべてのデータをserver_2(OS is Centos)にコピーしたいとします。 server_1のデータをsqlファイルにエクスポートして、server_2のsqlファイルをソース化しようとしましたが、時間がかかります。mysql、別のマシンにデータをバックアップする方法

データをコピーする書き込みコード(Pandas)は選択肢ですが、データは非常に大きく、server_1とserver_2はsam LANにはありません(プライベートIPを持っています)。ネットワークの輻輳を考慮してください。良い選択。

あなたは良い解決策を提示することができますように助けてください。ありがとう!コマンドラインからmysqldumpをすることによって、あなたのWindowsマシンから

+0

私が正しく理解していれば、これは役に立ちます: [http://dba.stackexchange.com/questions/20/how-can-i-optimize-a-mysqldump-of-a-large-database](http ://dba.stackexchange.com/questions/20/how-can-i-optimize-a-mysqldump-of-a-large-database) – Jbertrand

答えて

2

テイクバックアップ:

mysqldump -R --triggers --events -uroot -p<root_pass> --all-databases > c:/backup/mybackup.sql 

今すぐあなたのCentOSマシンにこのバックアップを移動するには、あなたはWinSCPのの助けを借りることができます(必要な場合は、アーカイブすることができます):

mysql -uroot -p<root_pass> < /backup_path/mybackup.sql 

アップデート1

:今すぐ下記のコマンドによってデータを復元

単一DBバックアップ:

mysqldump -R -uroot -proot_pass db1 > c:/backup/db1.sql 

複数のDBバックアップ:

mysqldump -R -uroot -proot_pass -B db1 db2 db3 > c:/backup/db1_2_3.sql 

シングル/複数のテーブルのバックアップ:さらに

mysqldump -uroot -proot_pass db1 tbl1 tbl2 tbl3 > c:/backup/db1_tbl_1_2_3.sql 

あなたのDBのサイズがかかります1 TB、あるとしてmysqldumpでも時間がかかるので、バイナリをクリーンな手続きでなくコピーすることもできますが、それを使うことができます。

ステップ1:mysqlサービスを停止します。

ステップ2:mysqlデータディレクトリをアーカイブし、ターゲットマシンに移動します。

ステップ3:tagetマシンでmysqlサービスを停止し、mysqlデータディレクトリに存在するすべてのファイルをバックアップしてここから消去します。

ステップ4:mysqlディレクトリ下のすべてのデータを、バックアップからターゲットのmysqlディレクトリにコピーします。

Step5:mysqlディレクトリ下のこれらのコピーされたファイルのpermissionをbelowコマンドで変更します。

$ chown -R mysql.mysql /var/lib/mysql 

注:データディレクトリと仮定するとは/ var/libに/ mysqlの

ステップ6:MySQLのサービスを開始します。

注:mysqlログファイルには警告がほとんど表示されないことがありますが、mysqlは正常に動作するはずです。

+0

'mysqldump'はデータのバックアップに時間がかかりますか?そのパフォーマンスはどうですか? –

+0

あなたのdbサイズは何ですか...それは他のテクニックよりも速くなければなりません。 –

+0

約1 TB。 '--all-databases'ではなくmysqlの特定のデータベースをMySQLで一つずつ選択する方法を教えてください。 –

関連する問題