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

Откуда:
Сообщений: 137
Добрый день, парни нужна помощь.

Ситуация следующая, есть два сервера между которыми настроена репликация, издатель и распространитель находятся на одном сервере. С базой распространителя (distribution) случился какой-то сбой (скорее всего отключился жесткий диск и она перешла в режим восстановления). Восстановил ее с помощью checkdb:
+

ALTER DATABASE DISTRIBUTION set single_user
DBCC CHECKDB (DISTRIBUTION, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE DISTRIBUTION set multi_user


Далее увидел, что базы не синхронизированы и переинициализировал все подписки для всех публикаций с созданием новых моментальных снимков. Данные действия не помогли. Агент лога везде выдавал ошибку "Процесс не смог выполнить "sp_repldone/sp_replcounters" на "SQL". (Источник: MSSQL_REPL, номер ошибки: MSSQL_REPL20011) Попробовал восстановить на чуть более ранее состояние distribution из бэкапа, что тоже не дало никакого эффекта.

Далее попробовал для отдельной публикации пересоздать подписку - не помогло. Попробовал пересоздать публикацию и добавить к ней подписку - создались без проблем, но агент чтения журнала выдавал ту же самую ошибку. В итоге решил удалить все публикации, благо есть скрипты и информация для ручного создания, если потребуется, а также отключить распространитель.

Все публикации кроме одной удалились корректно, последняя выдавала ошибку, к сожалению текст не сохранил. После чего принудительно удалил все используя команду: EXEC sp_removedbreplication 'моя_база_данных'

Отключился от распространителя, назад подключил, повторно создал одну публикацию и подписку к ней и все равно вижу следующую ошибку:

Сообщения об ошибках:
Процесс не смог выполнить "sp_repldone/sp_replcounters" на "мой_сервер". (Источник: MSSQL_REPL, номер ошибки: MSSQL_REPL20011)
Получить справку: http://help/MSSQL_REPL20011
Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related procedure, drop the connection over which the procedure was executed or execute sp_replflush over that connection before starting the Log Reader Agent or executing another log-related procedure. (Источник: MSSQLServer, номер ошибки: 18752)
Получить справку: http://help/18752
Процесс не смог установить последнюю распределенную транзакцию. (Источник: MSSQL_REPL, номер ошибки: MSSQL_REPL22017)
Получить справку: http://help/MSSQL_REPL22017
Процесс не смог выполнить "sp_repldone/sp_replcounters" на "мой_сервер". (Источник: MSSQL_REPL, номер ошибки: MSSQL_REPL22037)
Получить справку: http://help/MSSQL_REPL22037


Просмотр состояния синхронизации выдает ошибку о конкурирующем снимке:
автор
The concurrent snapshot for publication 'xxx' is not available because it has not been fully generated or the Log Reader Agent is not running to activate it. If generation of the concurrent snapshot was interrupted, the Snapshot Agent for the publicatio


DBCC OPENTRAN выдает следующий результат:
автор
Transaction information for database 'Axapta_base_test2'.

Replicated Transaction Information:
Oldest distributed LSN : (0:0:0)
Oldest non-distributed LSN : (2709635:202065:265)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.


Находил похожие темы, например эту: https://www.sql.ru/forum/188254/the-process-could-not-execute-sp-repldone-sp-replcounters-on-exciter2 , но если честно так и не понял, как можно разрешить данную ситуацию. Репликация очень необходима и с исходным сервером я особо манипуляций никаких сделать не могу, подскажите какие действия можно выполнить, что настроить повторно репликацию, пускай и с нуля, главное, чтобы не останавливать работу реплицируемой бд и сервера, на которой она находится.


Данные сервера, на котором находится распространитель:
+
Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: )


Сервер-подписчик:
+
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)


К сообщению приложен файл. Размер - 47Kb
4 апр 18, 16:58    [21312421]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением репликаций  [new]
invm
Member

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

Повторно удалите все публикации. После проверьте остались ли джобы категории REPL-LogReader.
4 апр 18, 19:19    [21312836]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением репликаций  [new]
nk13
Member

Откуда:
Сообщений: 137
invm,
Все задания с такими названиями исчезли. Из того, что относится к репликациям осталось:
- Agent history clean up: distribution
- Distribution clean up: distribution
- Replication agents checkup
- Reinitialize subscriptions having data validation failures
- Replication monitoring refresher for distribution. (выключено)
4 апр 18, 19:55    [21312904]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением репликаций  [new]
invm
Member

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

Это не название, а категория.

Ошибка говорит, что у вас имеется запущенный на БД LogReader. Ищите.
4 апр 18, 20:10    [21312936]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением репликаций  [new]
nk13
Member

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

Хоть намекните, где его можно искать? Он же автоматом создается при запуске репликаций, где его можно отдельно найти и отключить? Монитор сервера или процессы виндовс его как-то отображают?
5 апр 18, 04:36    [21313533]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением репликаций  [new]
nk13
Member

Откуда:
Сообщений: 137
Может перезагрузкп сервера с распространителем может помощь в том, чтобы лог ридер отвалился?
5 апр 18, 04:38    [21313534]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с восстановлением репликаций  [new]
nk13
Member

Откуда:
Сообщений: 137
В общем никакой перезагрузки не потребовалось. Попробовал утром повторно создать публикацию и все заработало без проблем, лог ридер стартовал без ошибок, такое ощущение, что ему нужно было время чтобы отсоединиться от предыдущих публикаций. Логи почитаю внимательно с какого момента он перестал ошибки слать. На будущее, если такое не дай бог повториться, надо понять, что с ним делать.
5 апр 18, 06:22    [21313561]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить