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

Откуда: Moscow Square
Сообщений: 624
Добрый день!
Задача: протестировать работу AlwaysOn при отказе.

Дано: Настроенный синхронный AlwaysOn в виндовом Failover кластере, одна база, синхронизирована, вторая нода настроена на чтение (ApplicationIntent=ReadOnly)

Сценарий проверки: рушится кластер (первая нода при этом работает и там теоретически возможны транзакции), поднимаем AlwaysOn на второй ноде с возможной потерей данных, работаем там, поднимаем обратно кластер, возвращаемся на первую ноду с потерей данных на первой ноде.

При реализации сценария упираемся в проблему на этапе возврата на первую ноду с потерей на них данных.
Ситуация видна на приложенной картинке.

Первая нода разсинхронизирована. Как её синхронизировать обратно - непонятно. Выводить базу из AlwaysOn и обратно добавлять синхронизируя с нуля - неспортивно (на продакшене это займет несколько суток).

Нашел такую доку , там пишут:
Если потеря данных будет приемлема для ваших бизнес-целей, можно возобновить базы данных-получатели.

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

Однако этого не произошло.
Как можно повторно синхронизировать первую ноду данными со второй не ломая AlwaysOn и не выводя из него базы?
В технологии новички, не пинайте сильно. Если кините докой, буду благодарен.

К сообщению приложен файл. Размер - 94Kb
6 мар 18, 17:39    [21241278]     Ответить | Цитировать Сообщить модератору
 Re: Отработка отказа в AlwaysOn  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
После того, как сделали failover с потрей данных -- только с нуля.
6 мар 18, 17:44    [21241293]     Ответить | Цитировать Сообщить модератору
 Re: Отработка отказа в AlwaysOn  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 624
Гавриленко Сергей Алексеевич
После того, как сделали failover с потрей данных -- только с нуля.


Печально...

Общая постановка задачи: из строя выходит первая нода вместе со свидетелем кластера. необходимо уехать на вторую ноду, работать там, а при восстановлении первой ноды и свидетеля вернуться обратно с теми данными, что появились на второй ноде за время простоя.

Может мы изначально неправильно проблему решали? Может можно обойтись без поднятия AlwaysOn на второй ноде с возможной потерей данных?
6 мар 18, 17:55    [21241329]     Ответить | Цитировать Сообщить модератору
 Re: Отработка отказа в AlwaysOn  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
Oblom
Общая постановка задачи: из строя выходит первая нода вместе со свидетелем кластера. необходимо уехать на вторую ноду, работать там, а при восстановлении первой ноды и свидетеля вернуться обратно с теми данными, что появились на второй ноде за время простоя.
Если вы хотите сделать, что написали, то достаточно просто поднять базу в AlwaysOn по стандартной процедуре через полный бэкап базы.

Если вы вдруг хотите "смержить" две реплики после того, как их расцепили, то нет, сервер этого не умеет и придется делать вручную.

Ну и если не хотите таких проблем, включите уже синхронный commit. Не поможет в этом случае, но лучше включить, проблем меньше будет.

Сообщение было отредактировано: 6 мар 18, 18:05
6 мар 18, 18:00    [21241336]     Ответить | Цитировать Сообщить модератору
 Re: Отработка отказа в AlwaysOn  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 624
Гавриленко Сергей Алексеевич
Oblom
Общая постановка задачи: из строя выходит первая нода вместе со свидетелем кластера. необходимо уехать на вторую ноду, работать там, а при восстановлении первой ноды и свидетеля вернуться обратно с теми данными, что появились на второй ноде за время простоя.
Если вы хотите сделать, что написали, то достаточно просто поднять базу в AlwaysOn по стандартной процедуре через полный бэкап базы.

Если вы вдруг хотите "смержить" две реплики после того, как их расцепили, то нет, сервер этого не умеет и придется делать вручную.

Ну и если не хотите таких проблем, включите уже синхронный commit. Не поможет в этом случае, но лучше включить, проблем меньше будет.


Понятно, спасибо!
А синхронный коммит уже включен, без него автоматический переезд невозможен
6 мар 18, 19:22    [21241514]     Ответить | Цитировать Сообщить модератору
 Re: Отработка отказа в AlwaysOn  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 49523
Oblom
при восстановлении первой ноды и свидетеля вернуться обратно

Вот тут ключевая ошибка. "Померла так померла." После сбоя о ноде можно забыть и если что-то там и починилось, вернуться в кластер она может только в качестве совершенно нового слейва.
7 мар 18, 14:51    [21243450]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить