SQL сервер перестал реплицировать одну таблицу


5 0

Пятница, вечер, уже почти пора идти домой, и тут парень, с которым я работаю в паре над сайтом клиента подзывает, и показывает магическую вещь – данные в базе не корректны. У меня чуть разрыв сердца не произошел, потому что некорректными данные были в таблице кредитных карточек. Несколько раз запускали разные запросы на сервере отчетности, но все показывало на то, что я налажал, а именно я в понедельник (21-го числа) гнал скрипты на этой таблице, которые могли накрыть данные. 

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

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

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

Итог, репликация остановилась только для одной таблицы и только на одном сервере. Ошибок нигде нет, все и везде показывает, что все отлично. Кто-нибудь встречался с таким косяком у MS SQL Server? У меня времени особо разбираться не было, потому что и так уже задержался после работы на исследования, решил просто реинициализировать репликацию с последнего снапшота и идти домой. 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

ЧайФтройом

26 Января 2013

А какой тип репликации используется?

Был у меня такой момент, когда при использовании репликации снимков, я затронул изменив данные в таблице на подписчике. Тогда аналогичным образом для этой таблицы репликация застряла, пришлось реинициализировать.


Михаил Фленов

26 Января 2013

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


trans_coder

27 Января 2013

повезло  что ошибку обнаружили вовремя


alex.mrnv

30 Января 2013

Вот тоже тема для холивара, что использовать MyISAM или InnoDB, у вас наверное ввиду пристастия работодателя к .NET второе?


Михаил Фленов

30 Января 2013

Ввиду пристрастия работодателя, у меня MS SQL Server.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне