2010-01-28 2 views
0

Мы хотим использовать отслеживание изменений для реализации двухсторонней синхронизации между экземпляром SQL Server 2008 Enterprise/Standard и экземпляром Express 2008.Отслеживание изменений SQL Server 2008

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

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

Есть ли способ отключить отслеживание изменений для каждой транзакции или для каждой транзакции?

EDIT: Я обнаружил команду WITH CHANGE_TRACKING_CONTEXT, поэтому я мог бы использовать это, чтобы указать, когда изменения выполняются кодом синхронизации, чтобы сам код синхронизации не выбирал их и не использовал.

ответ

1

Изменение отслеживания на самом деле не предназначено для использования в качестве двунаправленной репликации. Вы должны выяснить, каким образом определить экземпляр, где было сделано изменение, тогда ваш код «репликации» должен иметь возможность убедиться, что измененные строки на реплицированном сервере снова не вернутся к исходному серверу.

+0

Мы действительно пошли с отслеживанием изменений и просто синхронизировали процесс, добавляя другой контекст, чтобы мы могли определить, какие изменения являются изменениями синхронизации или исходными изменениями. До сих пор он работал достаточно хорошо. – Matt

Смежные вопросы