sql >> Databáze >  >> RDS >> Sqlserver

Jak synchronizovat dva (nebo n) replikační procesy pro databáze SQL Server?

Zdá se, že daný úkol nelze vyřešit v daných omezeních. Pokud jsem to správně pochopil, počet databází a řádkové schéma jsou konstanty.

Takže proměnné, které zbyly:

  • Další "injekce" do databáze
  • Dočasné triky
  • Triky se spouštěči
  • „Pozdní vazba“ změn, které se nereplikovaly včas

V současné době jsem našel pouze jeden nápad, který, jak se zdá, funguje:

  1. Přidejte spouštěč do tabulky "Řádky", chcete-li upravit časové razítko záznamu "Objednávka" (last_line_time)
  2. V replice počkejte, až se objeví řádek s časem, který se rovná last_line_time.
    • Pokud je max(lines.line_time)> order.last_line_time, pak je objednávka zastaralá
    • Pokud max(lines.line_time)
    • Pokud max(lines.line_time) ==order.last_line_time, tak je zatím vše v pořádku :)

Tento případ však může selhat do nekonečné smyčky, pokud jsou řádky neustále upravovány a replika tabulky řádků vždy zaostává.



  1. Jak vložit objekt JSON do vnořeného pole ve sloupci JSONB

  2. Spusťte soubor s SQLExec obsahující znaky $$

  3. Ponořte se do hloubky NoSQL:Kompletní seznam databází NoSQL

  4. Nalezeno 'OR 1=1/* sql injection v mé databázi newsletteru