web-dev-qa-db-ja.com

Mysqlデータベースオフライン-オンライン同期

アクティブなインターネット接続時に、サーバー上のデータベースをローカルサーバーのデータベースと同期する必要があります。

その実装のために、mysqlbinlogユーティリティを実行して、トランザクションログを読み取り、トランザクションクエリをSQLファイルに書き込みます。

その後、データベースサーバーでSQLファイルを実行して、サーバー上のデータベースにトランザクションの更新を適用します

ただし、複数のバイナリログファイルにわたって特定の時間間隔内の最新のトランザクションログのみをフェッチする必要があります。その実装を手伝ってください

1
Rubin Porwal

要件に応じて、提案しているのはこのソリューションにつながります。

mysqlbinlog --start-datetime=<START_DATETIME> --stop-datetime=<STOP_DATETIME> binlog.xxx > binlog.xxx.sql

これはデータを破壊したり、矛盾を引き起こしたりする傾向がありますが!お勧めしません!

1つの問題には複数の解決策があります。シナリオを共有できれば、より良い解決策が得られます。

例:

  • 開発(ローカル)サーバーでアプリケーション固有の変更を行うことを計画していて、それを稼働させる場合は、バージョン管理を使用してSQLを管理し、execを稼働させます。

  • 特定のデータベースのみの場合は、レプリケーションを設定し、レプリケートの変更のみをそのデータベース(またはテーブル)に移動できます。

1
mysql_user