sql >> Database >  >> RDS >> Sqlserver

Hoe synchroniseer ik twee (of n) replicatieprocessen voor SQL Server-databases?

Het lijkt erop dat een bepaalde taak niet kan worden opgelost binnen bepaalde beperkingen. Als ik het goed heb begrepen, zijn het aantal databases en het rijschema constanten.

Dus variabelen die overblijven:

  • Aanvullende "injecties" aan database
  • Tijdelijke trucs
  • Triggertrucs
  • "Late binding" van wijzigingen, die niet op tijd werden gerepliceerd

Momenteel heb ik maar één idee gevonden dat lijkt te werken:

  1. Voeg een trigger toe aan de tabel "Lijnen" om de tijdstempel van de "Order"-record (last_line_time) te wijzigen
  2. Wacht in replica tot een regel met tijd gelijk is aan last_line_time om te verschijnen.
    • Als max(lines.line_time)> order.last_line_time dan is de bestelling verouderd
    • Als max(lines.line_time)
    • Als max(lines.line_time) ==order.last_line_time dan is alles in orde, voor nu :)

Maar dit geval kan mislukken in een oneindige lus, als Lines constant worden gewijzigd en Lines-tabelreplica altijd achterblijft.



  1. Wat is een effectieve manier om elke 'foutmelding' van uw toepassing op te sporen, te identificeren en te rapporteren?

  2. Limiet instellen voor een tabelrijen in SQL

  3. hoe gegevens van mysql in php te krijgen op basis van url?

  4. Hoe meerdere nummers te beperken door meerdere kolommen op MySql te filteren?