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

SQL Server データベースの 2 つ (または n) のレプリケーション プロセスを同期する方法は?

    与えられたタスクは、与えられた制約では解決できないようです.私の理解が正しければ、データベースの数と行のスキーマは定数です.

    それで、残った変数:

    • データベースへの追加の「インジェクション」
    • 時間のトリック
    • トリガーのトリック
    • 時間内に複製されなかった変更の「レイト バインディング」

    現在、うまくいきそうなアイデアが 1 つだけ見つかりました:

    1. 「Lines」テーブルにトリガーを追加して、「Order」レコードのタイムスタンプ (last_line_time) を変更します
    2. レプリカでは、last_line_time と同じ時間の Line が表示されるまで待ちます。
      • max(lines.line_time)> order.last_line_time の場合、注文は廃止されます
      • max(lines.line_time)
      • max(lines.line_time) ==order.last_line_time の場合、今のところすべて問題ありません:)

    ただし、Lines が常に変更され、Lines テーブルのレプリカが常に遅れている場合、このケースは無限ループに陥る可能性があります。



    1. いくつかのパラメータが修正されたcakephp追加レコード

    2. mysql.userの列数が間違っています。予想42、見つかった44。テーブルが破損している可能性があります

    3. 列の変更、デフォルトの制約の追加

    4. v4.0.0以降、方言を明示的に指定する必要があります