1

独自の情報を管理する Windows システムを使用するクライアントは何百もあります。その情報は、分析のためにサーバー (Web システム) に送信されます。

クライアントとサーバーの両方が同じデータベース構造を持ちます。Windows クライアントを介して更新されるいくつかのテーブルと、Web システムを介して他のテーブルがあります。両方で更新できるテーブルはほとんどありません。

問題は、これらのデータベースの同期を維持する必要があることです。現在のアプローチは、すべての「INSERT、UPDATE、DELETE」ステートメントをテーブルに格納し、1 日 1 回、クライアント (開いている場合) とサーバー (閉じる場合) を更新することです。

私は現在のアプローチがあまり安全ではないと思うので (データに強力な暗号化を使用していても) 好きではなく、それを行うためのより良い方法があると信じています。

MariaDB を使用するように移行したばかりで、Aria Storage Engine についてこれを読んでいました。

Aria はログからほとんどすべてを再生できます。(テーブルの作成/削除/名前変更/切り捨てを含む)。したがって、ログをコピーするだけで Aria のバックアップを作成できます。

質問:

  • 私の問題を解決するために Aria Logging を使用することは可能だと思いますか (それは現在のアプローチとどう違うのでしょうか)?

  • 同様のケース(マルチクライアント同期)の経験はありますか?

  • 私は MyISAM と InnoDB の経験があります... この場合により良い他のストレージ エンジンはありますか?

### 更新 (7 月 2 日)###

MySQL バイナリログとその自動レプリケーションを使用する可能性を探りました。IMHO、その方法は、サーバーのデータがクライアントのデータとまったく同じである場合に理想的です。BLACKHOLE ストレージ エンジンは、決定されたテーブルのみを同期するために使用できます (これは非常に便利です)。私の場合、サーバーとクライアントは同じ構造を持っていますが、同じデータを持っていません。つまり、サーバーにはすべてのクライアントのデータが含まれ、各クライアントには独自のデータ セットがあります (同じ構造を維持します)。

MySQL の自動レプリケーションを適用しようとすると、クライアントごとにサーバーにデータベースが必要になり、複雑になります。

元の計画に固執すると思います。これにより、クライアントごとに変更を簡単に照会できる柔軟性が得られるからです (より適切な方法が見つかるまで)。

4

0 に答える 0