sql >> Databasteknik >  >> RDS >> Sqlserver

Hur synkroniserar man två (eller n) replikeringsprocesser för SQL Server-databaser?

Det verkar som att en given uppgift inte kan lösas i givna begränsningar. Om jag förstått det rätt är antalet databaser och radschema konstanter.

Så, variabler som lämnade:

  • Ytterligare "injektioner" till databasen
  • Tidsmässiga knep
  • Triggar knep
  • "Sen bindning" av ändringar som inte replikerats i tid

För närvarande har jag bara hittat en idé som verkar fungera:

  1. Lägg till en utlösare i tabellen "Lines" för att ändra "Order"-posttidsstämpel (last_line_time)
  2. I replik, vänta tills en rad med tid, lika med last_line_time, visas.
    • Om max(lines.line_time)> order.last_line_time än ordern är föråldrad
    • Om max(lines.line_time)
    • Om max(lines.line_time) ==order.last_line_time än allt är OK, för nu :)

Men det här fallet kan misslyckas i en oändlig loop, om Lines ständigt modifieras, och Lines-tabellreplikerna alltid ligger efter.



  1. MySQL-filter på många-till-många

  2. Hur frågar jag javascript vänta på att mysql tilldelar värde till php-variabel?

  3. MySQL stöder inte kommentarer på en rad här. Vad skulle orsaken vara?

  4. Postgresql, Begränsa uppdatering på specifika kolumner (skrivskyddad)