Устранение неполадок с SQL Server Always On
Эта статья поможет устранить распространенные проблемы, связанные с конфигурацией Always On на SQL Server.
Примечание.
Пошаговое руководство по этой статье см. в статье Устранение неполадок SQL Server Always On.
Исходная версия продукта: SQL Server 2012 Корпоративная, SQL Server 2014 Корпоративная, SQL Server 2016 Корпоративная
Оригинальный номер базы знаний: 10179
Важные замечания
Данные Microsoft CSS указывают на то, что значительная часть проблем клиентов часто решается ранее в выпуске CU, но не применяется упреждающе, и поэтому рекомендует текущую упреждающую установку ЦУ по мере их доступности. Дополнительные сведения см. в разделе Объявление об обновлениях SQL Server модели добавочного обслуживания (ISM).
Сведения о проверка последних ЦС, которые могут быть доступны для вашей версии, см. в статье Определение версии, выпуска и уровня обновления SQL Server и ее компонентов.
Дополнительные сведения о средствах, которые можно использовать Always On для диагностики различных типов проблем и мониторинга групп доступности и мониторинга, см. в статье Руководство по устранению неполадок и мониторингу групп доступности Always On. В руководстве также есть дополнительные сценарии, которые могут не быть рассмотрены в этом пошаговом руководстве.
Родительский узел документации по группам доступности Always On и предоставляет однократные справочные материалы по различным вопросам, см. Always On группы доступности (SQL Server).
Мне нужны указатели на настройку и настройку групп доступности Always On
Если вы ищете документацию по настройке Always On конфигурации, ознакомьтесь со следующими документами:
начало работы с группами доступности Always On (SQL Server). В этом документе содержатся ответы на многие вопросы о группах доступности и настройке. Выполнение всех действий, описанных в этой статье, и изучение предварительных требований, ограничений и рекомендаций для групп доступности Always On (SQL Server) поможет предотвратить множество проблем, с которыми вы можете столкнуться при настройке и обслуживании групп доступности в вашей среде.
Дополнительные ресурсы
- Пошаговое руководство. Создание группы доступности SQL Server 2012 Always On
- Руководства по архитектуре Always On
- Внешняя ссылка: группы доступности SQL Server Always On
Если эти сведения не помогают, см. дополнительные сведения о группах доступности Always On.
Возникли проблемы с настройкой групп доступности Always On
Типичные проблемы конфигурации включают в себя: Always On группы доступности отключены, учетные записи настроены неправильно, конечная точка зеркального отображения базы данных не существует, конечная точка недоступна (ошибка SQL Server 1418), сетевой доступ не существует, а команда присоединения к базе данных завершается сбоем (ошибка SQL Server 35250). Ознакомьтесь со следующим документом для получения справки по устранению этих проблем:
Устранение неполадок с конфигурацией групп доступности Always On (SQL Server)
Дополнительная ссылка: Исправление: ошибка 41009 при попытке создать несколько групп доступности
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Возникли проблемы с конфигурацией прослушивателя (19471, 19476 и другие ошибки)
Одной из наиболее распространенных проблем с конфигурацией, с которой сталкиваются клиенты, является создание прослушивателя группы доступности. Ошибки похожи на следующие:
-
Msg 19471, Level 16, State 0, Line 2Кластику WSFC не удалось подключить ресурс сетевого имени с DNS-именем "" в сети. Dns-имя может быть занято или иметь конфликт с существующими службами имен, или служба кластера WSFC может быть не запущена или недоступна. Используйте другое DNS-имя для разрешения конфликтов имен или проверка журнал кластера WSFC для получения дополнительных сведений.
-
Msg 19476, Level 16, State 4, Line 2 Сбой попытки создать сетевое имя и IP-адрес для прослушивателя. Возможно, служба WSFC не запущена или недоступна в текущем состоянии, или значения, указанные для сетевого имени и IP-адреса, могут быть неверными. Проверьте состояние кластера WSFC и проверьте сетевое имя и IP-адрес у администратора сети.
В большинстве случаев сбой при создании прослушивателя, приводя к предыдущим сообщениям, вызван отсутствием разрешений для объекта имени кластера (CNO) в Active Directory на создание и чтение объекта-компьютера прослушивателя. Чтобы устранить эту проблему, ознакомьтесь со следующими статьями:
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Автоматическая отработка отказа не работает должным образом
Если вы заметили, что автоматическая отработка отказа не работает должным образом во время тестирования или в рабочей среде, см. статью Устранение неполадок автоматической отработки отказа в SQL Server 2012 Always On средах.
Неправильная настройка максимального числа сбоев за указанный период является одной из основных причин, из-за того, что первичная отработка отказа не выполняется автоматически. Значение по умолчанию для этого параметра — N–1, где N — количество реплик. Дополнительные сведения см. в разделе Предел максимального количества сбоев отказоустойчивого кластера (группы).
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Возникли проблемы при подключении к Always On группам доступности
После настройки прослушивателя группы доступности для группы доступности Always On в SQL Server 2012 г. возможно, вам не удастся связаться с прослушивателем или подключиться к нему из приложения. Может появиться сообщение об ошибке следующего вида:
Sqlcmd: Ошибка: Собственный клиент Microsoft SQL: истекло время ожидания входа.
Чтобы устранить эту и аналогичные ошибки, ознакомьтесь со следующими сведениями:
- Ошибка времени ожидания и невозможно подключиться к прослушивателю группы доступности SQL Server 2012 Always On в среде с несколькими подсетью
- Время ожидания подключения в группе доступности с несколькими подсетями
Ссылки на дополнительные сведения:
- В обновлении добавлена поддержка функций Always On в SQL Server 2012 или более поздней версии для the.NET Framework 3.5 с пакетом обновления 1 (SP1)
- кластеризация SQL Server с несколькими подсетами (SQL Server)
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
У меня возникли проблемы с настройкой Always On групп доступности на виртуальной машине Azure (IaaS)
Многие проблемы, связанные с Always On возникают из-за неправильной настройки прослушивателя. Если у вас возникли проблемы с подключением к прослушивателю,
Убедитесь, что вы ознакомились со всеми ограничениями прослушивателя ILB и выполнили все действия, описанные в следующей статье, уделяя особое внимание настройке зависимостей, IP-адресу и различным другим параметрам в скрипте PowerShell.
Если вы не уверены, вы можете удалить и повторно создать прослушиватель, как указано в приведенном выше документе.
Если вы недавно переместили виртуальную машину в другую службу или IP-адреса изменились, необходимо обновить значение ресурса IP-адреса в соответствии с новым адресом и повторно создать конечную точку с балансировкой нагрузки для группы доступности. Ip-адрес можно обновить с помощью
Get
команд илиSet
следующим образом:Get-ClusterResource "IPResourceName" | Set-ClusterParameter -name Address -value "w.x.y.z"
Рекомендуемые документы:
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Переход на другой ресурс занимает много времени.
После автоматической отработки отказа или плановой отработки отказа вручную без потери данных в группе доступности может оказаться, что время отработки отказа превышает целевое время восстановления (RTO). Сведения об устранении причин и возможных решений см. в статье Устранение неполадок: превышено RTO группы доступности.
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Изменения в первичной реплике либо не отражаются, либо медленно реплицируются во вторичную реплику.
Вы можете заметить, что изменения на первичном реплика не распространяются на вторичные своевременно. Чтобы устранить эти проблемы, попробуйте выполнить следующие действия:
Сведения о средах SQL Server 2012 и SQL Server 2014 см. в статье Исправление: Медленная синхронизация при разных размерах секторов дисков для файлов журнала основного и дополнительного реплика в средах SQL Server AG и Logshipping.
Проверьте, находятся ли вторичные узлы в приостановленном состоянии в администраторе кластера.
См . раздел Устранение неполадок: изменения в первичной реплике не отражаются на вторичной реплике.
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Управление размером журнала транзакций для баз данных группы доступности
Размер журнала транзакций можно уменьшить, настроив регулярное резервное копирование на сервере-источнике или сервере-получателе.
Дополнительные сведения см. в следующих разделах:
- Разгрузка поддерживаемых резервных копий во вторичные реплики группы доступности
- Резервное копирование журналов транзакций с помощью Always On группы доступности Read-Only вторичных реплик — часть 1
Если эти сведения не помогают, см. дополнительные сведения о группах доступности Always On.
Основной сервер или сервер-получатель в состоянии разрешения, или возникает непредвиденная отработка отказа
Проверьте журналы событий системы и приложений на наличие проблем с оборудованием и других ошибок и обратитесь к поставщику, чтобы устранить их.
Если вы используете виртуальные машины, проверка их база знаний, чтобы узнать, есть ли какие-либо недавно обнаруженные проблемы, которые могут способствовать возникновению проблемы. Например, потеря больших пакетов на уровне гостевой операционной системы на VMXNET3 vNIC в ESXi (2039495) в некоторых случаях приводила к проблемам с конфигурацией группы доступности.
Дополнительные сведения:
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Не удается перевести ресурсы в режим "в сети"
Проверьте, требуется ли много времени для восстановления баз данных, просмотрите сообщения в журнале ошибок SQL.
Если проблема по-прежнему существует, см. дополнительные сведения о группах доступности Always On.
Вопросы и ответы
Можно ли использовать два прослушивателя для одной группы доступности?
Да, можно настроить несколько прослушивателей для одной группы доступности. См. статью Создание нескольких прослушивателей для одной группы доступности (Goden Yao).
Можно ли использовать отдельную сетевую карту карта для постоянного трафика и подключения клиента?
Да, вы можете использовать выделенные сетевые карты карта для Always On трафика. См . раздел Настройка группы доступности для взаимодействия в выделенной сети.
Какие выпуски поддерживают Always On экземпляры отказоустойчивого кластера?
В этом разделе электронной документации по SQL Server содержатся дополнительные сведения: Выпуски и поддерживаемые функции для SQL Server 2016 г.
Как выполнить восстановление в случае сбоя на всех узлах кластера?
См. статью Аварийное восстановление WSFC через принудительный кворум (SQL Server).
Где можно найти сведения о поддержке распределенных транзакций в конфигурациях группы доступности?
См . статью Транзакции — группы доступности и зеркальное отображение базы данных.
Как обновить конфигурации Always On?
См. раздел Обновление экземпляров реплик группы доступности Always On.
Как добавить базу данных с поддержкой TDE (прозрачное шифрование данных) в конфигурацию группы доступности?
Сведения о добавлении базы данных с поддержкой TDE в группу доступности см. в статье Настройка Always On для базы данных TDE.
Как настроить оповещения для проверки того, отстает ли получатель от основного?
Можно использовать следующий скрипт:
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id AS database_id, is_ag_replica_local = CASE WHEN ar_state.is_local = 1 THEN N'LOCAL' ELSE 'REMOTE' END, ag_replica_role = CASE WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED' ELSE ar_state.role_desc END, dr_state.last_hardened_lsn, dr_state.last_hardened_time, datediff(s,last_hardened_time, getdate()) AS 'seconds behind primary' FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id) JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id) JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
Как получать оповещения, если состояние базы данных отличается от синхронизированного?
Можно использовать следующий скрипт:
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id AS database_id, is_ag_replica_local = CASE WHEN ar_state.is_local = 1 THEN N'LOCAL' ELSE 'REMOTE' END, ag_replica_role = CASE WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED' ELSE ar_state.role_desc END, ar_state.connected_state_desc, ar.availability_mode_desc, dr_state.synchronization_state_desc FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id ) JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id) JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
Дополнительные методы мониторинга Always On групп также можно просмотреть по следующим ссылкам:
Управление на основе политик при операционных проблемах с Always On группами доступности
Внешняя ссылка: использование управления на основе политик для оповещений о потере данных групп доступности SQL Server
Поведение динамического следящего сервера при отказоустойчивой кластеризации Windows Server 2012 R2