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

Откуда:
Сообщений: 12
может кто подскажет как быть в такой ситуации:
SQL 2005. Настроена репликация транзакциями.
Бывают случаи когда reader agent сваливается в ошибку, при этом работа с базой данных продолжается и вносимые изменения уже не пишутся в базу дистрибьютера. После этого приходится пересливать всю базу делая snapshot – короче геморой!
Reader agent сваливается в ошибку при этом сам sql Agent работает.
Нашел способ контролировать reader Agnet,
но как сделать чтобы работа с базой была бы не возможна при сваленном reader Agnet?
Пробывал разные способы, но ничего удачного не прижилось.
9 авг 18, 10:02    [21635454]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
Joker84
Member

Откуда:
Сообщений: 12
я не ищу причины сбоя reader agent
проблема в том что у меня 40 серверов и стабильно раз,два в месяц приходится пересливать что то, что порядком уже надоело.
каждый день мониторю состояние reader agent и в случае сбоя стараюсь быстро исправить, но все равно кто то что то успевается внести в базу при нерабочем reader agent
9 авг 18, 10:21    [21635490]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
Чтобы не приходилось "пересливать", нужно найти причину ошибки и устранить ее.
Транзакции, подлежащие репликации никуда из БД не деваются, даже если логридер не работает.

Т.к. ошибку вы держите в тайне, то затруднительно помочь вам конкретнее.
9 авг 18, 11:04    [21635578]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
Joker84
Member

Откуда:
Сообщений: 12
invm, то есть вы хотите сказать что если лог ридер агент остановлен то транзакции будут копиться до тех пор пока я его не запущу?

даже если у базы стоит Recovery model - Simple ?
10 авг 18, 14:34    [21637938]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
Joker84
invm, то есть вы хотите сказать что если лог ридер агент остановлен то транзакции будут копиться до тех пор пока я его не запущу?

даже если у базы стоит Recovery model - Simple ?
Да.
10 авг 18, 14:42    [21637964]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Joker84
invm, то есть вы хотите сказать что если лог ридер агент остановлен то транзакции будут копиться до тех пор пока я его не запущу?

даже если у базы стоит Recovery model - Simple ?
Хм, разумеется. А как вы думали, если агент не запущен, логи начинают удаляться? это я даже технически не представляю как сделать.

Агент - это всего лишь Windows-процесс, и от его наличия в памяти не может что то удаляться или не удаляться.

Он читает записи из лога, и после прочтения, помечает их как доступные к удалению.
А делает им пометку "для репликации, не удалять" сам сиквел, на основании настроек базы, что "такие то данные должны реплицироваться", в связи с чем любая запись в лог изменений этих данных получает флажок "для репликации"
10 авг 18, 14:47    [21637979]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
Joker84
Member

Откуда:
Сообщений: 12
alexeyvg,

тогда не понимаю почему у меня иногда случается так что на подписчике не хватает некоторых изменений?, я это сводил на проблему останова ридер агента!

то есть к подписчику этот кусок так и не приходит, новые изменения приходят.
10 авг 18, 17:02    [21638193]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
Joker84
Member

Откуда:
Сообщений: 12
на каком этапе тогда изменения теряются:
не пишутся в лог транзакций или не пишутся в базу дистрибьютер

как выяснить?
10 авг 18, 17:06    [21638199]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
invm
Member

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

Нам же неизвестно, что вы там делаете на издателе или подписчике.

Может на издателе вызывали sp_repldone или sp_replrestart.
Может вручную удаляли данные в distribution
Может вообще банально даннные на подписчике были изменены или удалены уже после получения.
Может на подписчике для таблицы есть триггер instead of, который неправильно работает.
И т.д. и т.п.

Если при остановленном LogReader хочется посмотреть какие инструкции не доставлены в distribution, то это делается процедурой sp_showreplcmds
10 авг 18, 18:26    [21638246]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Joker84
на каком этапе тогда изменения теряются:
не пишутся в лог транзакций
В лог транзакций они не писаться не могут, вы же их видите на исходном сервере.

Joker84
как выяснить?
А так да, это как отвечать на вопрос "у меня в программе в переменгой должно быть 5, а там 2, где ошибка?"

Нужно просто учиться, читать, пробовать.
10 авг 18, 19:29    [21638274]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
Joker84
Member

Откуда:
Сообщений: 12
спасибо всем за ответы и советы,
ничего из перечисленного на дистрибьютере не делается, на подписчике база через exe-ку только на чтение.
у меня 46 sql серверов публикаторов и один подписчик. недоставку данных обнаруживаю не сразу а спустя несколько недель и понять в чем была причина на тот момент как то сложновато.
буду искать.
13 авг 18, 08:29    [21639922]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Joker84
ничего из перечисленного на дистрибьютере не делается, на подписчике база через exe-ку только на чтение.
у меня 46 sql серверов публикаторов и один подписчик
Из перечисленного получаем обновления подписчика от нескольких источников. В результате могут быть конфликты изменения одних и тех же данных, если есть какие то ошибки в логике обновления.

Joker84
недоставку данных обнаруживаю не сразу а спустя несколько недель и понять в чем была причина на тот момент как то сложновато.
Так надо научиться мониторить ошибки.
Когда:
Joker84
Бывают случаи когда reader agent сваливается в ошибку, при этом работа с базой данных продолжается и вносимые изменения уже не пишутся в базу дистрибьютера
вам должны приходить письма, СМС, далее нужно изучать эти ошибки по логам, ну и так далее, а не просто "всё переинициализировать".
Это же совсем неправильно, когда про ошибку узнаёте "через несколько недель".
13 авг 18, 09:33    [21639950]     Ответить | Цитировать Сообщить модератору
 Re: репликация и контроль LogReader agent  [new]
ShIgor
Member

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

это одна из причин поэтому я ушел от репликации на связку CT + SB
13 авг 18, 09:37    [21639954]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить