powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / rowversion и пропуски записей
5 сообщений из 30, страница 2 из 2
rowversion и пропуски записей
    #39917876
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
a_voronin
пропущено...


Каких?


описываю последовательность шагов
1. создаем таблицу в базе
Код: sql
1.
create table dbo.test(id rowversion not null, f int not null)



2. в первом коннекте выполняем
Код: sql
1.
2.
3.
begin tran 
insert dbo.test(f)
select 1


коннект не закрываем

3. во втором коннекте выполняем

Код: sql
1.
2.
3.
4.
begin tran 
insert dbo.test(f)
select 2
commit




4. на реплики читаем все, что меньше "активных rowversion" (нужно дождаться передачи данных)
Код: sql
1.
select * from dbo.test where id < min_active_rowversion()


и видим запись с f = 2 и запоминаем его id


5. в коннете из пункта 2 (там где вставка f=1) делаем commit и дожидаемся появления этой записи на реплике.
убеждаемся, что id у нее меньше, чем у записи с f=2, а значит на шаге 4 мы пропустили f=1


Тест понятен. Но остается вопрос -- какова разница в поведении синхронной и асинхронной ALWAYSON? Может быть одна из них всё же корректно работает?

У вас есть возможность протестировать, описанное здесь решение ?

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1205173&msg=18929494
...
Рейтинг: 0 / 0
rowversion и пропуски записей
    #39917879
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
rowversion и пропуски записей
    #39917892
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Но остается вопрос -- какова разница в поведении синхронной и асинхронной ALWAYSON?

Для этого вопроса никакой, там вся разница в синхронной / асинхронной записи коммиттов в лог вторичной реплики




a_voronin
У вас есть возможность протестировать, описанное здесь решение ?

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1205173&msg=18929494


Так как оно полностью основано на данных пользовательских таблиц, то проблем не будет.
Единственное, поле MIN_ACTIVE_ROWVERSION должно быть типа binary(8).
...
Рейтинг: 0 / 0
rowversion и пропуски записей
    #39917913
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
a_voronin
Но остается вопрос -- какова разница в поведении синхронной и асинхронной ALWAYSON?

Для этого вопроса никакой, там вся разница в синхронной / асинхронной записи коммиттов в лог вторичной реплики




a_voronin
У вас есть возможность протестировать, описанное здесь решение ?

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1205173&msg=18929494


Так как оно полностью основано на данных пользовательских таблиц, то проблем не будет.
Единственное, поле MIN_ACTIVE_ROWVERSION должно быть типа binary(8).


Ну и вопрос на миллион долларов: а как реплицируется или вычисляется MIN_ACTIVE_ROWVERSION на реплике ?
...
Рейтинг: 0 / 0
rowversion и пропуски записей
    #39917914
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
msLex
пропущено...

Для этого вопроса никакой, там вся разница в синхронной / асинхронной записи коммиттов в лог вторичной реплики




пропущено...


Так как оно полностью основано на данных пользовательских таблиц, то проблем не будет.
Единственное, поле MIN_ACTIVE_ROWVERSION должно быть типа binary(8).


Ну и вопрос на миллион долларов: а как реплицируется или вычисляется MIN_ACTIVE_ROWVERSION на реплике ?

никак. я вроде это уже написал
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / rowversion и пропуски записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]