2017-12-05 5 views
0

次のコマンドを使用して、あるSQL Serverから別のSQL Serverにデータベースをコピーし、移行先サーバーのデータベースを上書きすることができます。mysqldumpを差動的に使用して1つのデータベースを別のデータベースにコピーして上書きする

$ mysqldump -u user --password=pass live_db_name | mysql -u user --password=pass -h localhost duplicate_db_name 

しかし、差分コピーのみを行う方法を探しています。

つまり、接続先データベースが異なる場合、ソースデータベースと同じになるように変更されます。

mysqldumpを使用してこれを行うオプションがありますか?

+1

これを行うための機能がmysqldumpにはありません。スキーマの変更(新しい表、削除された表、追加された索引、追加された列、変更された列の定義)やデータの変更(更新された行、削除された行)など、あなたが気付いたように、完全なボア置換を行うことはできますが、mysqldumpは "差分変更"スクリプトの作成に似た機能を提供しません。 – spencer7593

+0

プログラミングのキャリアで遭遇する可能性が最も高い問題の1つは、2つの独立したデータセットの同期を維持する「同期」の1つです。これは、マイクロレベル(例えば、ゲームクライアントがその状態をサーバと通信する)またはより多くのマクロレベル(例えば、データベース全体が調整されている)で発生するが、無数の問題である。競合する変更が調整される方法は非常に主観的なので、これを行うための組み込みツールはありません。 – tadman

+0

これを行う簡単な方法は、レプリケーションをセットアップすることです。これを行う難しい方法は難しいです。 – tadman

答えて

0

いいえ、mysqldumpでこれを行うオプションはありません。

探している機能につながるPerconaツールや他のMySQLツールを調べてください。

+0

['xtrabackup'](https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html)には差分バックアップ方法がありますが、リストアを行うにはdiffを完全なものに適用するために高価な操作が必要ですそのことを完全に復元してください。部分バックアップを適用する方法はありません。 – tadman

関連する問題