Пятница, вечер, уже почти пора идти домой, и тут парень, с которым я работаю в паре над сайтом клиента подзывает, и показывает магическую вещь – данные в базе не корректны. У меня чуть разрыв сердца не произошел, потому что некорректными данные были в таблице кредитных карточек. Несколько раз запускали разные запросы на сервере отчетности, но все показывало на то, что я налажал, а именно я в понедельник (21-го числа) гнал скрипты на этой таблице, которые могли накрыть данные.
Мы гоняли запросы на сервере отчетности, данные на который реплицируются с рабочего и единственная надежда была в этот момент, что репликация накрылась и данные на сервере отчетности не обновляются уже неделю и никто не заметил косяка. Это предположение из серии очевидное невероятное, потому что не обновленная отчетность не может остаться незамеченной. Подключаемся к базе рабочего сервера, запускаем запрос, и о чудо, данные корректны. Очевидное невероятное с поломанной репликацией похоже стало реальностью.
Пошел разбираться с репликацией и выяснилось, что репликация всех таблиц идет прекрасно, сервер просто перестал обновлять всего одну таблицу 16-го января. Просто эта таблица в отчетности не участвует (не имеем права использовать кредитные карты в отчетности), поэтому никто и ничего не заметил.
Ошибок вообще нигде нет, сервер прекрасно работает и мониторинг репликации показывает, что данные идут отлично. Подключился к другому серверу, а там данные так же прекрасно реплицируются, причем во все таблицы включая эту.
Итог, репликация остановилась только для одной таблицы и только на одном сервере. Ошибок нигде нет, все и везде показывает, что все отлично. Кто-нибудь встречался с таким косяком у MS SQL Server? У меня времени особо разбираться не было, потому что и так уже задержался после работы на исследования, решил просто реинициализировать репликацию с последнего снапшота и идти домой.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
А какой тип репликации используется?
Был у меня такой момент, когда при использовании репликации снимков, я затронул изменив данные в таблице на подписчике. Тогда аналогичным образом для этой таблицы репликация застряла, пришлось реинициализировать.
Односторонними транзакциями, без репликации изменений на подписчике. Когда по ошибке изменял данные на подписчике, то у меня останавливалась полностью вся репликация и всегда была ошибка в логе. Тут остановилась только таблица и ошибок в логе нет. Правда у меня это было только один раз, потому что на подписчике мы данные не меняем. Возможно в этот раз кто-то по ошибке что-то изменил и возможно остановилась только одна таблица. Удивительно, что ошибок не было.
повезло что ошибку обнаружили вовремя
Вот тоже тема для холивара, что использовать MyISAM или InnoDB, у вас наверное ввиду пристастия работодателя к .NET второе?
Ввиду пристрастия работодателя, у меня MS SQL Server.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.