2009-08-24 8 views
0

私の運用データベースとは別のリモートサーバにテストデータベースがあります。しばらくして、私は自分の運用DBのコピーをテストDBにアップロードして試してみたいと思っています。残念ながら、バックアップファイルは今半分のギグであり、FTPまたはSSH経由で転送するのに問題があります。サーバー間でmysql restoreコマンドを使用する簡単な方法はありますか?また、私が検討していない大きなファイルを移動する別の方法はありますか?半分のギグはそれほど大きくはないと思うので、私は人々がこの問題に頻繁に遭遇すると思います。別のサーバ上のファイルに対するmysqlのリストア

ありがとうございます!

答えて

1

サーバー同士はアクセスできますか?

もしそうなら、ファイルを使用せずに1つのデータベースから別のデータベースにデータをパイプすることができます。

例:mysqldump [options] | mysql -h test -u username -ppasswd

0

Mysqlでは、リモートデータベースサーバに接続してsqlコマンドを実行できます。この機能を使用して、mysqldumpからの出力をパイプし、mysqlにリモートデータベースサーバに接続して新しいデータベースにデータを入力させることができます。

mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb 
1

0.Pleaseが(それはいくつかの機密情報が含まれている場合は特に)あなたが本当に生産データを必要とするかどうかを検討

1.最も簡単な解決策は、転送、ソースサーバー(通常はgzip)にバックアップを圧縮することですそれはワイヤを横切って、次にターゲットサーバ上で解凍します。

http://www.techiecorner.com/44/how-to-backup-mysql-database-in-command-line-with-compression/

あなたは、バックアップを作成することを検討して上の復元することができます(たとえば、あなたには、いくつかのアプリケーションログ、エラー、他のいくつかの技術的なものは必要ありません)生産データの正確な複製を必要としない2.Ifはソースサーバーを別のDB名に変更し、不要なデータをすべて削除してから、使用するバックアップを取ってください。

3. Dev環境の参照サーバーで一度完全バックアップを行い、トランザクションログのみをコピーします(参照サーバーで再生するため)。使用パターンに応じて、トランザクションログはデータベース全体のスペースを大幅に減らすことがあります。

0

ftpではなく効率的な転送方法を使用します。

mysqldumpによって作成されたダンプファイルがある場合は、テスト用のdbサーバ上にあり、それを頻繁に更新します。 rsyncを使って時間を節約することができると思います。 Rsyncはsshを使用してデータを圧縮して転送しますが、ローカルファイルとリモートファイルの両方を解凍する必要があります。

Rsyncは、ファイルの変更された部分のみを転送します。

ダンプファイルで正確に何が変更されたかを判断するには時間がかかることがありますが、転送はすばやく行う必要があります。

私は半分ギガバイトのダンプファイルでそれをやったことはありません。

関連する問題