0

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

ありがとう!

4

4 に答える 4

1

サーバーは相互にアクセスできますか?

その場合、ファイルを使用せずに、あるデータベースから別のデータベースにデータをパイプするだけです。

例: mysqldump [オプション] | mysql -h テスト -u ユーザー名 -ppasswd

于 2009-08-24T02:37:58.690 に答える
1

0. 本番データが本当に必要かどうかを検討してください (特に機密情報が含まれている場合)。

1.最も簡単な解決策は、ソース サーバーでバックアップを圧縮し (通常は gzip)、ネットワーク経由で転送してから、ターゲット サーバーで解凍することです。

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

2.実稼働データの正確なレプリカが必要ない場合 (たとえば、アプリケーション ログ、エラー、その他の技術的なものが必要ない場合) は、バックアップを作成し、ソース サーバーで別の DB 名に復元することを検討できます。不要なデータをすべて削除してから、使用するバックアップを取ります。

3.開発環境の参照サーバーで完全バックアップを 1 回復元し、トランザクション ログのみをコピーします (参照サーバーでそれらを再生するため)。使用パターンによっては、トランザクション ログがデータベース全体として必要とするスペースが大幅に少なくなる場合があります。

于 2009-08-24T02:46:35.603 に答える
0

ftp ではなく効率的な転送方法を使用してください。

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

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

ダンプ ファイルで何が変更されたのかを正確に判断するには時間がかかる場合がありますが、転送は迅速に行われます。

認めざるを得ませんが、私は 0.5 ギガバイトのダンプ ファイルでそれを行ったことはありません。

于 2009-08-24T05:23:51.037 に答える
0

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

mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb 
于 2009-08-24T02:40:07.750 に答える