Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да синхронизирате два (или n) процеса на репликация за бази данни на SQL Server?

Изглежда, че дадена задача не може да бъде решена при дадени ограничения. Ако съм разбрал правилно, броят на базите данни и схемата на реда са константи.

И така, напусналите променливи:

  • Допълнителни „инжекции“ към базата данни
  • Временни трикове
  • Трикове за задействане
  • „Късно обвързване“ на промените, които не са репликирани навреме

В момента намерих само една идея, която изглежда работи:

  1. Добавете тригер към таблицата „Редове“, за да промените клеймото за време на запис на „Поръчка“ (last_line_time)
  2. В репликата изчакайте, докато се появи ред с време, равно на last_line_time.
    • Ако max(lines.line_time)> order.last_line_time тогава поръчката е остаряла
    • Ако max(lines.line_time)
    • Ако max(lines.line_time) ==order.last_line_time тогава всичко е наред засега :)

Но този случай може да се провали в безкраен цикъл, ако редовете се променят постоянно и репликата на таблицата на редовете винаги изостава.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете определен брой символи отляво или отдясно на низ в SQL Server

  2. Импортирайте CSV файл в SQL Server

  3. СЪЮЗ ВСИЧКИ и НЕ В заедно

  4. SQL Server заместете, премахнете всички след определен знак

  5. Как да стартирам SSIS пакет без SQL Server?