ライブデータをステージングサーバーに定期的にコピーするには大きすぎるライブMySQL DBがあります。ライブMySQLデータベースからステージングサーバーにデータをコピーするための戦略
週ごとにそのスクリプトを実行する意思を持って、先週の変更だけを取得する方法はありますか?これを達成するためにすべてのテーブルにupdated
タイムスタンプフィールドを追加する必要がありますか?
ライブデータをステージングサーバーに定期的にコピーするには大きすぎるライブMySQL DBがあります。ライブMySQLデータベースからステージングサーバーにデータをコピーするための戦略
週ごとにそのスクリプトを実行する意思を持って、先週の変更だけを取得する方法はありますか?これを達成するためにすべてのテーブルにupdated
タイムスタンプフィールドを追加する必要がありますか?
「定期的にコピーするには大きすぎます」というサイズはわかりませんが、SQLyogを使用してデータベースを同期します。これは、変更されたレコードのみをインテリジェントに挿入/更新/削除します。私はそれを強く勧めます。
これについては、ステージングサーバーを本番サーバーのレプリケーションスレーブにする方法があります。ただし、プロダクションマスタでステージングマシンを常に最新状態にしたくない場合は、スレーブモードをオフにしておくことができます。
その後、毎週、スレーブを数時間起動するスクリプトを実行し、マスターとの間で最新の状態にして、スレーブを再び停止させます。
START SLAVE;
-- Wait a while
-- Trial and error to determine how long it takes to come into sync
STOP SLAVE;
これは、現在の週のマスターと一致する状態で保存します。一方、毎週のスナップショットとして本当に必要ない場合は、スレーブを常時稼働させたままにしておくだけで、同期がとれるようにすることができます。