2011-10-19 8 views
5

ライブデータをステージングサーバーに定期的にコピーするには大きすぎるライブMySQL DBがあります。ライブMySQLデータベースからステージングサーバーにデータをコピーするための戦略

週ごとにそのスクリプトを実行する意思を持って、先週の変更だけを取得する方法はありますか?これを達成するためにすべてのテーブルにupdatedタイムスタンプフィールドを追加する必要がありますか?

答えて

6

「定期的にコピーするには大きすぎます」というサイズはわかりませんが、SQLyogを使用してデータベースを同期します。これは、変更されたレコードのみをインテリジェントに挿入/更新/削除します。私はそれを強く勧めます。

4

これについては、ステージングサーバーを本番サーバーのレプリケーションスレーブにする方法があります。ただし、プロダクションマスタでステージングマシンを常に最新状態にしたくない場合は、スレーブモードをオフにしておくことができます。

その後、毎週、スレーブを数時間起動するスクリプトを実行し、マスターとの間で最新の状態にして、スレーブを再び停止させます。

START SLAVE; 
-- Wait a while 
-- Trial and error to determine how long it takes to come into sync 
STOP SLAVE; 

これは、現在の週のマスターと一致する状態で保存します。一方、毎週のスナップショットとして本当に必要ない場合は、スレーブを常時稼働させたままにしておくだけで、同期がとれるようにすることができます。

関連する問題