sql >> データベース >  >> RDS >> Mysql

同じ構造でサーバーが異なる2つのMySQLテーブルを同期するにはどうすればよいですか?

    いくつかのオプションがあります。 1つは、レプリケーション を設定することです。 MySQL内では、サーバー間でデータが自動的に前後にコピーされ、データが飛び交うときに数秒の粒度でサーバーの同期が自動的に維持されます。欠点は、TCP接続を許可するために、少なくともマスターサーバーをネットに公開する必要があることです。

    外部的には、サーバーAで通常のmysqldumpを実行し、サーバーBにコピーし、mysqlにロードして、実行することができます。これにより、ダンプ/コピー/ロードシーケンスを実行する時間間隔が細かくなります。欠点は、mysqldumpが動作中にテーブルをロックすることです。大規模なデータベースがある場合は、ダンプの進行中にserverAのテーブルからロックアウトされ、データのロード時にserverBからロックアウトされます。また、mysqlはロード中にあらゆる種類の内部ハウスキーピング(キーの更新、テーブルのメタデータの更新など)を実行するため、ダンプのロードは最初にダンプを実行するよりもはるかに遅くなります。

    3番目のオプションでは、2つのデータベース間で行を比較し、必要に応じて更新を行うシンクロナイザーを作成できます。ただし、1つのサーバーのコンテンツを別のサーバーにスラップし、行ごとの操作を実行します。さらに、依存する外部キー/子関係の更新も処理する必要があり、これは急いで複雑になります。その時点で、代わりにmysqldumpオプションを使用したほうがよい場合があります。

    もちろん、MySQLをより新しいものにアップグレードする必要があります。 v4.xは非常に古くなっています。少なくとも5.0、できれば5.1バージョンを実行する必要があります。




    1. WordPressMediaWikiの統合

    2. ADDTIME()の例– MySQL

    3. 複数のテーブルを検索し、結果の行にテーブル名を表示します

    4. SQLサーバーで日付データ型を使用するにはどうすればよいですか?