Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Репликация, есть ли способ понимать очередность выполнения TranID  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Собственно говоря вопрос, есть ли универсальный способ понимать очередность выполнения TranId(порядок применения транзакций)?
Предположим прописывается триггер на уникальную запись(по ключу например) и прописывается версия и TranID в таблицу истории изменений. Возможны ли ситуации когда в этой истории порядок TranID будет отличаться от оригинального?(ну мало ли)
21 ноя 19, 12:35    [22021651]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
invm
Member

Откуда: Москва
Сообщений: 9843
Транзакции передаются подписчикам в том порядке, в котором они вычитываются из ЖТ на издателе.
Если бы было иначе - репликацией бы никто не пользовался.
21 ноя 19, 12:49    [22021666]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Ну я тоже отношусь к этому как к аксиоме, иначе внутри сервера была бы каша.(спросил на всякий случай).
Ну все таки второй вопрос, есть какое либо API по которому можно было бы вычитывать порядок применения TranID?
Ну типа Select TranId From ..... order by DateTime . Я например такого не знаю, кроме как по триггерам на значения прописывать какая транзакция раньше какой его изменила.
21 ноя 19, 13:04    [22021678]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
МуМу
Ну я тоже отношусь к этому как к аксиоме, иначе внутри сервера была бы каша.(спросил на всякий случай).
Ну все таки второй вопрос, есть какое либо API по которому можно было бы вычитывать порядок применения TranID?
Ну типа Select TranId From ..... order by DateTime . Я например такого не знаю, кроме как по триггерам на значения прописывать какая транзакция раньше какой его изменила.

начните не с придумывания решение, а озвучивания проблемы.
21 ноя 19, 13:08    [22021684]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
МуМу
Member

Откуда:
Сообщений: 1134
В параллельной теме озвучил вопрос. Реализация многопоточной загрузки для транзакционной репликации. Это вам много дало в плане доп. информации? Расписывать более не считаю необходимым потому как писать очень много придется, и вещей не тривиальных. Подозреваю, что на данный вопрос скорей всего ответ нет - типовых АПИ таких нет. Но не стесняюсь такие вопросы задавать, потому как пару раз ошибался.
21 ноя 19, 13:24    [22021701]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
invm
Member

Откуда: Москва
Сообщений: 9843
МуМу,

distribution..MSrepl_commands - order by xact_seqno, command_id в разрезе publisher_database_id
21 ноя 19, 13:40    [22021724]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
МуМу
Member

Откуда:
Сообщений: 1134
invm,
Да, извиняюсь не дал вводную, а без развернутой типовой репликации такая возможность существует? Changedata capture еще не копал, там надеюсь может быть.
21 ноя 19, 18:00    [22022045]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Еще вопрос, попутно. А Changedata capture кто нибудь для репликации уже пользовался? Идея хорошая, читаем из лога транзакций, есть данные до, есть после. Издержки на чтение выше но зато нет задержек и влияния на оперативный контур, то есть на саму систему, нет задержек по вине триггеров. Задействуется лишние пару ядер(или одно), да и фиг с ними зато можем утверждать, что на основную систему репликация практически не влияет?(тема стала интересна после включения в стандарт едишион)
22 ноя 19, 22:28    [22023331]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2418
МуМу,

а нужен ли CDC в полном объеме для репликации? по-моему достаточно CT
23 ноя 19, 11:52    [22023481]     Ответить | Цитировать Сообщить модератору
 Re: Репликация, есть ли способ понимать очередность выполнения TranID  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Провел анализ Changedata capture, не захотели разработчики выдать api для предоставления лога транзакций(видимо по политическим мотивам), но при этом годится для однонаправленной репликации если внутренних багов не будет. Но для двунаправленной репликации увы нельзя приспособить. Нет возможности транзакции идентифицировать. В типовой транзакционной репликации есть свои архитектурные недостатки.
4 дек 19, 17:53    [22032397]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить