2つの異なる場所にある2つのMySQLデータベースを同期する


19

内部サーバーとWebホスティングサーバーに2つの同一のMySQLデータベースがあります。内部サーバーのデータベースを使用して、毎日Webホストのデータベースを更新したい。このプロセスを自動化する方法はありますか、これを手動で行う方法はありますか?手動で行う場合、内部サーバー上のデータベースのSQLダンプを取得してから、Webホスト上のデータベースにインポートする必要がありますか?誰かアドバイスしてください。


StackOverflowでここに投稿された既存の回答を参照できます。stackoverflow.com/ questions
Mahesh Patil

約#2内部から完全なダンプを行い、実稼働でインポートすると、オンラインデータベースが上書きされます。つまり、データベースウェブ上にオンラインバイヤーがホストされており、内部データベースの購入をライブに移行したいのですが、BTWの内容を明確にしてください両者が同じidを予約していた場合、2つの間で自動クリームが発生するのは面倒です!?
shareef

回答:


20

いくつかのオプションがあります:

  1. サーバー間のMySQLレプリケーションをセットアップします。内部サーバーはマスターとして、Webホストサーバーはスレーブとして機能できます。マスターで実行された更新は、すぐにスレーブに複製されます(接続が機能していると仮定)。これはおそらく最も簡単で効果的な選択オプションです。レプリケーションを使用するには、Webホストからネットワーク経由で内部データベースにアクセスできる必要があります。

    レプリケーションの詳細については、こちらをご覧ください

  2. 毎日、内部サーバーでmysqldumpを実行し、Webホストにダンプファイルをアップロードして、データをインポートできます。これは完全なダンプであるため、非常に大きなデータベースがある場合、これは実行不可能な場合があります。必要に応じて、この手順を手動で実行する必要がないようにスクリプト化することができます。

  3. 内部サーバーでバイナリロギングを設定できます。その後、バイナリログをWebホストに送信してデータベースに適用し、その日に発生したすべてのトランザクションをWebサーバーで効果的に再生できます。実際、これはレプリケーションで発生することであるため、ほとんどの場合、このオプションの代わりにレプリケーションをセットアップします。

2つのデータベース間に接続がない場合、毎日mysqldumpを取得するのが最も簡単な方法です。


約#2内部から完全なダンプを行い、実稼働でインポートすると、オンラインデータベースが上書きされます。つまり、データベースウェブ上にオンラインバイヤーがホストされており、内部データベースの購入をライブに移行したいのですが、BTWの内容を明確にしてください両者が同じidを予約していた場合、2つの間で自動クリームが発生するのは面倒です!?
shareef

4

2つのデータベースの同期に役立つsymmetricDSなどのオプションも使用できます。これにより、インターネット帯域幅を節約できるように、同期する必要があるテーブルを選択できるようになります。これは、2つの場所間に接続性がない場合のシナリオにも適しています。


2

MariaDBでデータベース複製をセットアップする方法: https : //www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/


1
DBA.SEへようこそ。あなたの貢献/参加に感謝します。ただし、コミュニティは投稿された回答に一定の品質を期待しています。次の記事を読むことを検討してください。良い答えを書くにはどうすればよいですか?(ヘルプセンター)セクションでの質問に答える:読み込み短いセンテンスがあり、外部リソースへのリンクが奨励されているが、しかし、あなたの仲間のユーザーはそれが何であるか、いくつかのアイデアを持っていますし、なぜそれがありますので、リンク周りのコンテキストを追加してください
ジョン別名hot2use

0

Navicatを使用できます。これは主にdbマネージャーですが、データ転送およびデータ同期機能とスケジューラーを備えているため、自動化できます。無料ではありませんが、30のフル機能トライアルがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.