Поделиться через


Устранение неполадок с Always On в SQL Server

Эта статья поможет устранить распространенные проблемы с конфигурацией AlwaysOn в SQL Server.

Примечание.

Пошаговое руководство по устранению неполадок с SQL Server AlwaysOn см. в этой статье.

Исходная версия продукта: SQL Server 2012 Корпоративная, SQL Server 2014 Корпоративная, SQL Server 2016 Корпоративная
Исходный номер базы знаний: 10179

Важные примечания

Мне нужны указатели на настройку и настройку групп доступности AlwaysOn

Если вы ищете документацию по настройке конфигурации AlwaysOn, ознакомьтесь со следующими документами:

Приступая к работе с группами доступности AlwaysOn (SQL Server) — документ содержит ответы на множество вопросов о группах доступности и настройке. После выполнения всех действий в этой статье и проверки предварительных требований, ограничений и рекомендаций для групп доступности AlwaysOn (SQL Server) поможет предотвратить множество проблем, с которыми вы можете столкнуться с настройкой и обслуживанием групп доступности в вашей среде.

Дополнительные ресурсы

Если эта информация не полезна, см . дополнительные сведения о группах доступности AlwaysOn.

У меня возникли проблемы с настройкой групп доступности AlwaysOn

Типичные проблемы конфигурации: группы доступности AlwaysOn отключены, учетные записи настроены неправильно, конечная точка зеркального отображения базы данных не существует, конечная точка недоступна (ошибка SQL Server 1418), сетевой доступ не существует, и команда базы данных соединения завершается ошибкой (ошибка SQL Server 35250). Ознакомьтесь со следующим документом, чтобы помочь в устранении этих проблем:

Поиск и устранение неисправностей конфигурации групп доступности AlwaysOn (SQL Server)

Дополнительная ссылка: исправление: ошибка 41009 при попытке создать несколько групп доступности

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

У меня возникли проблемы с конфигурацией прослушивателя (19471, 19476 и другие ошибки)

Одним из наиболее распространенных проблем с конфигурацией является создание прослушивателя группы доступности. Ошибки похожи на следующие:

  • Msg 19471, level 16, State 0, Line 2The WSFC cluster не удалось перенести ресурс сетевого имени с DNS-именем "" в сети. Возможно, DNS-имя было принято или имеет конфликт с существующими службами имен, или служба кластера WSFC может не работать или может быть недоступна. Используйте другое DNS-имя для разрешения конфликтов имен или проверьте журнал кластера WSFC для получения дополнительных сведений.

  • Msg 19476, Level 16, State 4, Line 2The пытается создать сетевое имя и IP-адрес прослушивателя. Служба WSFC может не работать или может быть недоступна в текущем состоянии, или значения, указанные для сетевого имени и IP-адреса, могут быть неверными. Проверьте состояние кластера WSFC и проверьте сетевое имя и IP-адрес с помощью администратора сети.

Большая часть времени, сбой создания прослушивателя, в результате чего предыдущие сообщения возникают из-за отсутствия разрешений для объекта имени кластера (CNO) в Active Directory для создания и чтения объекта компьютера прослушивателя. Чтобы устранить эту проблему, ознакомьтесь со следующими статьями:

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

Автоматическая отработка отказа не работает должным образом

Если вы заметили, что автоматическая отработка отказа не работает должным образом во время тестирования или в рабочей среде, см. статью "Устранение неполадок автоматической отработки отказа в средах AlwaysOn SQL Server 2012".

Недопустимая настройка максимальных сбоев в указанный период является одной из основных причин автоматического отработки отказа в дополнительный. Значение по умолчанию для этого параметра — N-1, где N — это число реплик. Дополнительные сведения см. в разделе "Максимальное ограничение отказоустойчивости кластера (группы).

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

У меня возникли проблемы с подключением к группам доступности AlwaysOn

После настройки прослушивателя группы доступности Для группы доступности AlwaysOn в SQL Server 2012 может быть не удается подключить прослушиватель или подключиться к нему из приложения. Вы можете получить ошибку, аналогичную следующей:

Sqlcmd: ошибка: собственный клиент Microsoft SQL: истек срок действия входа.

Чтобы устранить эти и аналогичные ошибки, ознакомьтесь со следующими статьями:

Дополнительные ссылки:

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

У меня возникли проблемы с настройкой групп доступности AlwaysOn на виртуальной машине Azure (IaaS)

  1. Многие проблемы, связанные с AlwaysOn, возникают из-за неправильной настройки прослушивателя. Если у вас возникли проблемы с подключением к прослушивателю,

    1. Убедитесь, что вы прочитали все ограничения прослушивателя подсистемы балансировки нагрузки и выполнили все действия, описанные в следующей статье, уделяя особое внимание конфигурации зависимостей, IP-адресу и различным другим параметрам в скрипте PowerShell.

    2. Если вы не уверены, вы можете удалить и повторно создать прослушиватель, как показано в приведенном выше документе.

  2. Если вы недавно переместили виртуальную машину в другую службу или если IP-адреса изменились, необходимо обновить значение ресурса IP-адресов, чтобы отразить новый адрес, и необходимо повторно создать конечную точку балансировки нагрузки для группы доступности. Вы можете обновить IP-адрес с помощью Get следующих команд.Set

    Get-ClusterResource "IPResourceName" | Set-ClusterParameter -name Address -value "w.x.y.z"
    

Рекомендуемые документы:

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

Отработка отказа от первичного на вторичную или наоборот занимает много времени.

После автоматического перехода на другой ресурс или планового перехода на другой ресурс вручную без потери данных в группе доступности можно обнаружить, что время перехода на другой ресурс превышает цель времени восстановления (RTO). Сведения об устранении неполадок и потенциальных разрешениях см. в статье "Устранение неполадок: превышено значение RTO группы доступности".

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

Изменения основной реплики не отражаются или медленно реплицируются на вторичную реплику.

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

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

Управление размером журнала транзакций для баз данных группы доступности

Размер журнала транзакций можно уменьшить, настроив регулярные резервные копии на первичных или вторичных серверах.

Дополнительные сведения см. в следующих разделах:

Если эта информация не полезна, см . дополнительные сведения о группах доступности AlwaysOn.

Первичные или вторичные серверы, пораженные в состоянии разрешения или непредвиденная отработка отказа

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

Не удается перенести ресурсы в Интернет

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

Если проблема по-прежнему существует, см . дополнительные сведения о группах доступности AlwaysOn.

Часто задаваемые вопросы

  1. Можно ли использовать два прослушивателя для одной группы доступности?

    Да, можно настроить несколько прослушивателей для одной группы доступности. Узнайте , как создать несколько прослушивателей для одной группы доступности (Goden Yao).

  2. Можно ли использовать отдельную карту сетевого адаптера для постоянного трафика и подключения клиента?

    Да, вы можете использовать выделенную карту сетевого адаптера для трафика AlwaysOn. См. раздел "Настройка группы доступности для обмена данными в выделенной сети".

  3. Какие выпуски поддерживают экземпляры отказоустойчивого кластера AlwaysOn?

    В этой статье в электронной документации по SQL Server содержатся дополнительные сведения: выпуски и поддерживаемые функции для SQL Server 2016.

  4. Как восстановиться в случае сбоя на всех узлах кластера?

    См. раздел аварийного восстановления WSFC с помощью принудительного кворума (SQL Server).

  5. Где можно найти сведения о поддержке распределенных транзакций в конфигурациях группы доступности?

    См. сведения о транзакциях — группах доступности и зеркальном отображении базы данных.

  6. Как обновить конфигурации AlwaysOn?

    См. раздел об обновлении экземпляров реплики группы доступности AlwaysOn.

  7. Как добавить базу данных TDE (прозрачное шифрование данных) в конфигурацию группы доступности?

    Чтобы добавить базу данных с поддержкой TDE в группу доступности, см. инструкции по настройке AlwaysOn для базы данных TDE.

  8. Как настроить оповещения для проверки того, отстает ли вторичный источник?

    Можно использовать следующий скрипт:

    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
    
  9. Как получить оповещение, если состояние базы данных отличается от синхронизации?

    Можно использовать следующий скрипт:

    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
    

    Вы также можете просмотреть следующие ссылки на дополнительные методы для мониторинга групп AlwaysOn:

Дополнительные сведения о группах доступности AlwaysOn