2

2 つの異なるデータベースから mySQL テーブル (myISAM) を同期する最良の方法についての提案を探しています。

現在、Navicat を使用して本番サーバーからテスト サーバーにテーブルを同期していますが、多くの問題が発生しています。ほぼ毎日、テーブルで同期エラーが発生しています。

Navicat が成功した同期と失敗した同期で電子メールをスパム送信することは言うまでもありません (失敗した同期のみを受信する方法はありますか?)。とにかくテーブルを変更すると、同期に失敗することも知っています。したがって、とにかくテーブルを変更するには、最初にマスターに対して行う必要があります (これは理にかなっていますが、これを回避する方法はありますか?)。

-[同期] 完了 - 同期に失敗しました: リスト インデックスが範囲外です (0)

Navicat 同期を使用しない理由はありますか? 私の上司は、代わりに mySQL レプリケーションを使用することを提案しましたが、私の最初の懸念は、同期を誤用しているように見えるため、これらすべての問題を引き起こしているように見えるため、なぜこれほど多くの問題が発生するのかを突き止めることです。

ありがとう。

4

1 に答える 1

0

本番サーバーからテストサーバーへのテーブルの同期

テスト環境で本番環境を複製しようとしているようですね。

この状況で従うべき一般的なパターンは、ツールのようなものを使用してmysqldumpデータベース全体のバックアップを作成し、後でそのバックアップをテスト環境にインポートすることです。完全なバックアップと復元を行うことで、機能することがわかっているバックアップ方法が少なくとも 1 つあることを確認するだけでなく、同期ツールが見逃す可能性のある変更がテスト データベースに含まれないようにすることもできます。(通常、同期ツールが効果的に動作するには、各テーブルに主キーまたは一意のキーが必要です)。

バックアップと再インポートのプロセスは、簡単に自動化できるはずです。私の職場では、mysqldump毎晩ベースのデータベース ダンプを実行し、翌朝早く、各開発者の開発環境の個人用コピーに オプションのインポートを実行します。

于 2011-03-28T16:43:19.923 に答える