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

Откуда: Moscow Square
Сообщений: 635
SELECT @@VERSION


Microsoft SQL Server 2005 - 9.00.5000.00 (X64) Dec 10 2010 10:38:40 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

Есть два сервера: SQL и SEARCH. На SQL две базы: Main и Online. Обе реплицируются на сервер SEARCH. База на SEARCH по факту read-only, пишет в неё только репликация, все остальные читают.

В определенный момент сервер SEARCH падает, его всем миром поднимают.

В логе репликации базы Online:
1. The process could not connect to Subscriber 'SEARCH'. The process could not access database 'Search' on server 'SEARCH'.

После чего репликация восстанавливается и работает.

В логе репликации базы Main:
1. The process could not connect to Subscriber 'SEARCH'. The process could not access database 'Search' on server 'SEARCH'.
2. The row was not found at the Subscriber when applying the replicated command. (Source: MSSQLServer, Error number: 20598)

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

Собственно вопрос: разве это нормальное поведение? что репликация сначала пытается изменить запись, которую ещё не передала?

Естественно это всё лечится переинициализацией подписки, но она занимает 2 часа, выбивает нормальную работу системы, и соответственно не очень желательна.
6 дек 12, 10:50    [13586082]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
Oblom
его всем миром поднимают.
Это что за последовательность действий?

В истории дистрибьюшн-агента, для ошибки 20598 должны быть указаны Transaction sequence number и Commnd ID. По ним, с помощью sp_browsereplcmds, определяете сбойную инструкцию и продолжаете разбирательства.
6 дек 12, 18:05    [13589994]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
Crimean
Member

Откуда:
Сообщений: 13147
> В определенный момент сервер SEARCH падает, его всем миром поднимают.

угу, только с потерей последних транзакций

> 1. The process could not connect to Subscriber 'SEARCH'. The process could not access database 'Search' on server 'SEARCH'.

логично, ибо база была в "рекавери" состоянии

> 2. The row was not found at the Subscriber when applying the replicated command. (Source: MSSQLServer, Error number: 20598)

логично, ибо были потеряны данные
6 дек 12, 18:20    [13590101]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
invm
Member

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

Каким образом после "рекавери" оказались потеряны зафиксированные транзакции?
6 дек 12, 18:34    [13590158]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
Crimean
Member

Откуда:
Сообщений: 13147
invm
Каким образом после "рекавери" оказались потеряны зафиксированные транзакции?


Oblom
В определенный момент сервер SEARCH падает, его всем миром поднимают


вопрос как "падает", что прячется за термином "поднимают" и не потеряли ли лог вообще или не подняли ли бакап с логами, традиционно забыв предварительно сделать сброс хвоста лога. как-то так.
6 дек 12, 19:35    [13590472]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
Crimean
вопрос как "падает", что прячется за термином "поднимают" и не потеряли ли лог вообще или не подняли ли бакап с логами, традиционно забыв предварительно сделать сброс хвоста лога. как-то так.
Ну да, об этом и спрашивал у ТС. Я-то подумал, что "рекавери" это "startup database recovery" и удивился :)
6 дек 12, 19:45    [13590516]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 635
Crimean
вопрос как "падает", что прячется за термином "поднимают" и не потеряли ли лог вообще или не подняли ли бакап с логами, традиционно забыв предварительно сделать сброс хвоста лога. как-то так.


Выключается электричество, выключается сервер. Включается электричество, включается сервер. Банально до невозможности.
7 дек 12, 10:41    [13592400]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1840
Oblom
Crimean
вопрос как "падает", что прячется за термином "поднимают" и не потеряли ли лог вообще или не подняли ли бакап с логами, традиционно забыв предварительно сделать сброс хвоста лога. как-то так.


Выключается электричество, выключается сервер. Включается электричество, включается сервер. Банально до невозможности.


Странная последовательность. Вроде бы должна быть такая:
Выключается электричество, включается ИБП, сервер подготавливается к корректному завершению работы, выключается сервер, выключается ИБП, включается электричество, включается ИБП, включается сервер.
7 дек 12, 11:30    [13592854]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
Crimean
Member

Откуда:
Сообщений: 13147
тупой путь - реинит подписки. долго но думать не надо
пох*истический путь - сменить профиль агенту, чтобы он не ругался на отсутствие записей. ну нет нескольких записей и нет
для джедаев - сравнить данные (как вариант - порыться в Distribution), найти недостающие, залить недостающие
ну и про синюю полосу на потолке вообще молчу
7 дек 12, 12:00    [13593156]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 635
X-Cite
Странная последовательность. Вроде бы должна быть такая:
Выключается электричество, включается ИБП, сервер подготавливается к корректному завершению работы, выключается сервер, выключается ИБП, включается электричество, включается ИБП, включается сервер.


Меня там не было, последовательность была через ИБП, но без корректного завершения работы. Виновные назначены и расстреляны.

Crimean
тупой путь - реинит подписки. долго но думать не надо
пох*истический путь - сменить профиль агенту, чтобы он не ругался на отсутствие записей. ну нет нескольких записей и нет
для джедаев - сравнить данные (как вариант - порыться в Distribution), найти недостающие, залить недостающие
ну и про синюю полосу на потолке вообще молчу


Про все пути(кроме синей полосы на потолке) я уже читал, решил реинитом подписки. Только так и не понял почему разсинхронизовалось, вроде как механизм этого допустить не должен, при условии неизменяемости данных на подписчике сторонними процессами.
7 дек 12, 14:55    [13594994]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
Crimean
Member

Откуда:
Сообщений: 13147
у вас не сбросился корректно журнал транзакций
из-за этого в ходе рекавери процесса были отменены последние транзакции
об этом, скорее всего, была запись в errorlog
а дальше вы знаете лучше нас
7 дек 12, 15:13    [13595154]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
Oblom
Только так и не понял почему разсинхронизовалось
Включен кеш на запись без BBU?
7 дек 12, 16:01    [13595646]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 635
invm
Oblom
Только так и не понял почему разсинхронизовалось
Включен кеш на запись без BBU?


А что это? И где это можно посмотреть?
10 дек 12, 11:18    [13605009]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка репликации при падении/поднятии подписчика  [new]
invm
Member

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

http://en.wikipedia.org/wiki/Backup_battery#Computers
10 дек 12, 12:15    [13605471]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить