Я тестировал функцию групп доступности в SQL Server 2012 и обнаружил, что при переключении основного сервера на вторичный сервер происходит примерно 15 секунд простоя. Все SQL-запросы, выполняемые в течение этого времени, завершаются сбоем до завершения перехода на другой ресурс.
Есть ли способ уменьшить это до 0 секунд и предотвратить сбой запросов во время перехода на другой ресурс?
Другими словами, есть ли способ заставить любые запросы, выполняемые во время сбоя, перенаправляться на основной сервер вместо сбоя ... и есть ли способ получить новые соединения БД для немедленного подключения к вторичному серверу вместо сбоя подключиться во время перехода на другой ресурс при сбое?
В настоящее время у меня есть 2 сервера, настроенные в группе доступности.
Ответы:
Нет, при AlwaysOn нет способа сделать отказоустойчивое переключение без сбоев (или, насколько я знаю, в SQL Server в целом). Для этого SQL-сервер, к которому вы подключены, должен будет перенести состояние в другой запрос промежуточного узла, а поскольку многие отработки отказа являются неожиданными, это невозможно.
Однако вы можете включить «Secondary-only-read-only» в AlwaysOn, и тогда у ваших читателей будет нулевое время простоя при сбое основного сервера - поскольку они все равно подключаются к вторичной копии для выполнения запросов SELECT, они не будут даже заметить отказоустойчивость. Для пользователей с открытым соединением «Запись» все равно будет прерывание, но по крайней мере некоторая часть вашей пользовательской базы будет работать непрерывно.
источник