алгоритм репликации сервера sql - PullRequest
2 голосов
/ 02 января 2011

Кто-нибудь знает, как работает базовая модель репликации на сервере SQL?Существенно ли они зависят от значений даты и времени UTC, чтобы определить, является ли что-то новым, или они хранят таблицу всех изменений (например, таблицу tableID + rowid, которые изменились).

Я создаю свою собственную "репликацию"Система и планировал использовать даты, чтобы знать, что копировать.Тогда я начал задаваться вопросом, что произойдет, если дата сбилась в компьютере по какой-то причине.Очевидный выбор - вести журнал изменений по ходу работы, а после репликации этих изменений вы удаляете их из журнала изменений.Но это большая дополнительная работа, вместо того, чтобы просто проверять даты.

Я полагаю, если репликация на сервере sql работает, просто проверяя даты, то для меня это будет достаточно.

Любая мудростьздесь?

спасибо

Ответы [ 3 ]

2 голосов
/ 03 января 2011

Когда транзакция происходит в SQL Server, она записывается в журнал транзакций вместе с информацией, относящейся к транзакции.

Репликация SQL Server использует этот журнал транзакций, чтобы определить, какие транзакции еще не были обработаны, и переместить их подписчику. Под капотом происходит гораздо больше, чтобы отслеживать пересечение транзакций, публикаций, подписок и т. Д., Но я оставлю это документации MSDN о репликации SQL Server http://msdn.microsoft.com/en-us/library/ms151198.aspx

Переходя к вашей мысли о создании собственной системы репликации:

Не создавайте свою собственную систему репликации. Слишком много сложностей, из-за которых вы можете провести много-много дней в работе. Вам будет гораздо лучше использовать предметы, поставляемые с SQL Server.

Способы репликации SQL Server довольно внушительны.

Если вы наметите, что заставляет вас думать о построении собственной системы репликации, мы можем помочь вам понять, как использовать существующие элементы для предоставления того, что вам нужно.

Кроме того, прочитайте как можно больше здесь, чтобы получить представление о том, что он может сделать для вас http://msdn.microsoft.com/en-us/library/ms151198.aspx

1 голос
/ 02 января 2011

SQL Server имеет задание LogReader с точным именем.Репликация читает журнал транзакций и применяет соответствующие транзакции к подписывающим базам данных.

0 голосов
/ 03 января 2011

С одной стороны, SQLServer (и не только) поддерживает несколько алгоритмов репликации.
Вы можете найти здесь подробностей о тех, которые реализованы в SQLServer 2008. Сначала прочтите X Replication Overview, а затем How X Replication works для получения более подробной информации.

...