Я пересматривал процедуры DR нашей компании и, когда искал в Интернете решения для потерянного кворума Always On Cluster, сравнивал с ним. Я изучил результаты Google на три страницы, прежде чем нашел первый пост SE на тему « Кластеризация», «Транзакционная репликация» и «Группы доступности», который лишь слегка затрагивает тему утраченного кворума.
Хотя все согласны с тем, что проигрышный кворум - это плохо, и есть некоторые предложения по снижению потенциала, это все же может произойти. Я ищу хороший рецензируемый ответ для наилучшего пути восстановления после потери кворума кластера Always On.
sql-server
availability-groups
disaster-recovery
Джеймс Дженкинс
источник
источник
Ответы:
AG основаны на кластеризации Windows. Применяются процедуры WSFC для потери кворума.
После запуска WSFC вы можете при необходимости принудительно включить AG. Выполните принудительное переключение вручную группы доступности :
источник
Я был в этой ситуации, особенно с кластеризацией нескольких подсетей, охватывающей разные страны (NY-LD-HK).
Как избежать потери кворума в кластере с несколькими подсетями?
CrossSubnetDelay
илиCrossSubnetThreshold
свойство этого исправления .Ситуация изменилась в Windows Server 2016 с появлением кластеров с поддержкой сайтов и облачных свидетелей .
Что делать, если кворум потерян?
Как всегда, для проведения анализа первопричин (RCA) соберите журналы кластера Windows, для AlwaysON RCA - используйте журналы диагностики отказоустойчивого кластера SQL Server . Эти файлы в каталоге SQL Server Log имеет следующий формат:
<HOSTNAME>_<INSTANCENAME>_SQLDIAG_X_XXXXXXXXX.xel
.источник
Однажды я попал в аварию, когда наши зеркальные серверы потеряли связь. Одна из вещей, о которой нужно беспокоиться, - убедиться, что ваши приложения направлены на один экземпляр. В случае сбоя в сети вы можете включить все узлы кластера Always On, но не можете общаться друг с другом. Вы принудительно переключаете резервный ресурс на вторичный, а затем, пока есть сбой, у вас может быть два первичных узла, так как исходный первичный не будет знать о принудительном восстановлении после сбоя.
В зависимости от местоположения серверов приложений, их конфигурации и их способности обращаться к серверу SQL, теоретически у вас может быть два узла, которые считают, что они являются первичными, и что данные изменяются одновременно. После устранения проблем в сети и возобновления подключения узлов все данные, измененные на исходном первичном сервере, будут перезаписаны с узла, на котором было выполнено аварийное переключение. Это может привести к потере важных данных.
Я видел эту ситуацию однажды с SQL 2005 и зеркалированием. И мы решили не форсировать отказ и оставить его недоступным. Причина в том, что в худшем случае, если бы нам пришлось выполнять резервное копирование и восстановление для перезапуска зеркалирования, для нас это был бы двухдневный процесс с рисками переполнения журнала транзакций и невозможности расширения диска, на котором он находился.
источник