Многие, думаю, знают, что такое зеркалирование в MS SQL Server. Я тоже в курсе, мало того, часто приходится с этой технологией работать. Спасает она меня регулярно, но и подводные камни иной раз подставляет такие, что мама не горюй.
Например, в какой-то момент случилась такая вот оказия:
Перестает отвечать сервер principal. Мы его перезагрузили, но переключение зеркала не произошло, хотя и присутствовал witness. Мало того, после перезагрузки основного сервера у меня на руках оказалось два Principal… Да-да. Именно так мне и писалось. Увы, скриншот снять не догадался – не до того было ;)
Но на одном хосте состояние всех баз было “Principal, Disconnected”, а на втором “Principal, Disconnected/In Recovery” , по-моему.
Ужасная ситуация. Я начал с одной самой маленькой базы – удалил ее с основного хоста и стал восстанавливать зеркало. Восстановил базу на сервер с NORECOVERY и попытался запустить зеркало. Мастер Configure Security отработал на ура, но при попытке запустить зеркалирование я получил ошибку…
Опа… Какие-такие endpoints… Не брал. И Астрахань-то с Казанью вместе не брал, а уж endpoints… И вовсе не трогал. Начинаем ковыряться и находим статейку, с помощью которой видим, что все отлично работает:
Совсем упс… Пинговаться все пингуется, никаких внезапных файрволлов между узлами за те несколько минут, что все лежит тоже не появилось… Ужас. Совершенно непонятная ситуация, а время идет. Дальнейшее расследование нужного результата не давала. Даже нужный порт слушался на обоих серверах. Все было бессмысленным, надежда на премию таяла… И тут где-то промелькнула мысль, что, о ужас, строка, показанная на предыдущем скриншоте, может выдавать неверную информацию не только в случае, указанном в разделе Using The Error Log File For Diagnosis в последней ссылке. Итак, срочно запускаем
alter endpoint mirror state = started
на обоих серверах и – вуаля! Как только я это сделал, все старые базы просто-напросто заработали в штатном режиме зеркала, а та, где я успел убить зеркало дала его восстановить.
Глубинные причины происшедшего мне непонятны пока – расследование все еще ведется, но сам результат уже почти устраивает ;)
2 комментария:
Что мне нравтся в системах резрвирования, что никогда не узнаешь работает ли резерв, пока на него не перейдешь!!!
Ну... В данном случае это один сбой на множественные отказы. Потому, скорее оно работет, чем наоборот =)
Отправить комментарий