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


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

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

Замечание

Убедитесь, что вы соответствуете предварительным требованиям для Always On Availability Groups. Дополнительные сведения см. в разделе "Предварительные требования", "Ограничения" и "Рекомендации" для групп доступности AlwaysOn (SQL Server).

В этом разделе:

Секция Описание
Группы доступности AlwaysOn не включены Если экземпляр SQL Server не включен для групп доступности AlwaysOn, экземпляр не поддерживает создание группы доступности и не может размещать реплики доступности.
Аккаунты Описывает требования для правильной настройки учетных записей, в которых выполняется SQL Server.
Конечные точки Рассматривается, как диагностировать проблемы с конечной точкой зеркалирования базы данных экземпляра сервера.
Имя системы Суммирует альтернативные варианты указания системного имени экземпляра сервера в URL-адресе конечной точки.
Сетевой доступ Документирует требование, что каждый экземпляр сервера, на котором размещена реплика доступности, должен иметь доступ к порту каждого из остальных экземпляров сервера через TCP.
Доступ к конечным точкам (ошибка SQL Server 1418) Содержит сведения об этом сообщении об ошибке SQL Server.
Сбой присоединения к базе данных (ошибка SQL Server 35250) Обсуждаются возможные причины и способы разрешения проблемы подключения вторичных баз данных к группе доступности, поскольку подключение к первичной реплике не активно.
Read-Only маршрутизация работает неправильно
Связанные задачи Содержит список вопросов, ориентированных на задачи, в электронной документации по SQL Server 2014, которые особенно важны для устранения неполадок конфигурации группы доступности.
См. также Содержит список соответствующих ресурсов, внешних для электронной документации по SQL Server.

Группы доступности AlwaysOn не активированы

Компонент "Группы доступности AlwaysOn" должен быть включен для каждого экземпляра SQL Server 2014. Дополнительные сведения см. в разделе "Включение и отключение групп доступности AlwaysOn" (SQL Server).

Счета

Учетные записи, в которых работает SQL Server, должны быть правильно настроены.

  1. Имеют ли учетные записи правильные разрешения?

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

    2. Если два экземпляра сервера запускаются под разными учетными записями, учетная запись каждого входа должна быть создана в мастер на удаленном экземпляре сервера, и этому имени входа должно быть предоставлено разрешение на подключение CONNECT к конечной точке зеркального отображения базы данных этого экземпляра сервера. Дополнительные сведения см. в разделе"Настройка учетных записей входа для зеркального отображения базы данных" или групп доступности AlwaysOn (SQL Server).

  2. Если SQL Server работает как встроенная учетная запись, например локальная система, локальная служба или сетевая служба, или учетная запись, не являющаяся доменом, необходимо использовать сертификаты для проверки подлинности конечной точки. Если учетные записи службы используют учетные записи домена в одном домене, вы можете предоставить доступ CONNECT для каждой учетной записи службы во всех расположениях реплик или использовать сертификаты. Дополнительные сведения см. в разделе"Использование сертификатов для конечной точки зеркального отображения базы данных" (Transact-SQL).

Конечные точки

Конечные точки должны быть правильно настроены.

  1. Убедитесь, что каждый экземпляр SQL Server, который будет размещать реплику доступности (каждое расположение реплики), имеет конечную точку зеркального отображения базы данных. Чтобы определить, существует ли конечная точка зеркального отображения базы данных в данном экземпляре сервера, используйте представление каталога sys.database_mirroring_endpoints . Дополнительные сведения см. в разделе "Создание конечной точки зеркального отображения базы данных для проверки подлинности Windows" (Transact-SQL) или "Разрешить конечную точку зеркального отображения базы данных" для использования сертификатов для исходящих подключений (Transact-SQL).

  2. Проверьте правильность номеров портов.

    Чтобы определить, какой порт в текущий момент связан с конечной точкой зеркального отображения базы данных экземпляра сервера, воспользуйтесь следующей инструкцией Transact-SQL:

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. Для проблем с настройкой групп доступности AlwaysOn, которые сложно объяснить, рекомендуется проверить каждый экземпляр сервера, чтобы определить, прослушивает ли он правильные порты. Сведения о проверке доступности портов см. в MSSQLSERVER_1418.

  4. Убедитесь, что конечные узлы запущены (STATE=STARTED). На каждом экземпляре сервера используйте следующую команду Transact-SQL:

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

    Дополнительные сведения о столбце state_desc см. в разделе sys.database_mirroring_endpoints (Transact-SQL).

    Чтобы запустить конечную точку, используйте следующую инструкцию Transact-SQL:

    ALTER ENDPOINT Endpoint_Mirroring 
    STATE = STARTED 
    AS TCP (LISTENER_PORT = <port_number>)
    FOR database_mirroring (ROLE = ALL);
    GO
    

    Дополнительные сведения см. в разделе ALTER ENDPOINT (Transact-SQL).

  5. Убедитесь, что учетная запись на другом сервере имеет разрешение на подключение. Чтобы определить, кто имеет разрешение CONNECT для конечной точки, на каждом экземпляре сервера используйте следующую инструкцию Transact-SQL:

    SELECT 'Metadata Check';
    SELECT EP.name, SP.STATE, 
       CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
          AS GRANTOR, 
       SP.TYPE AS PERMISSION,
       CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
          AS GRANTEE 
       FROM sys.server_permissions SP , sys.endpoints EP
       WHERE SP.major_id = EP.endpoint_id
       ORDER BY Permission,grantor, grantee; 
    GO
    
    

Имя системы

Для системного имени экземпляра сервера в URL-адресе конечной точки можно использовать любое имя, однозначно определяющее систему. Адрес сервера может быть системным именем (если системы находятся в одном домене), полным доменным именем или IP-адресом (предпочтительно статическим IP-адресом). Использование полного доменного имени гарантирует работоспособность. Дополнительные сведения см. в разделе Выбор URL-адреса конечной точки при добавлении или изменении реплики доступности (SQL Server).

Сетевой доступ

Каждый экземпляр сервера, на котором размещена реплика доступности, должен иметь доступ к порту каждого из других экземпляров сервера через TCP. Это особенно важно, если экземпляры сервера находятся в разных доменах, которые не доверяют друг другу (ненадежным доменам).

Доступ к конечным точкам (ошибка SQL Server 1418)

Это сообщение SQL Server указывает, что сетевой адрес сервера, указанный в URL-адресе конечной точки, не может быть достигнут или не существует, и предполагается, что вы проверяете имя сетевого адреса и повторно возвращаете команду. Дополнительные сведения см. в MSSQLSERVER_1418.

Сбой присоединения к базе данных (ошибка SQL Server 35250)

В этом разделе рассматриваются возможные причины и устранение сбоя при присоединении вторичных баз данных к группе доступности из-за того, что подключение к первичной реплике не активно.

Резолюция:

  1. Проверьте параметр брандмауэра, чтобы узнать, разрешает ли порт конечной точки обмен данными между экземплярами сервера, на которых размещена первичная реплика и вторичная реплика (порт 5022 по умолчанию).

  2. Проверьте, имеет ли учетная запись сетевой службы разрешение на подключение к конечной точке.

Read-Only маршрутизация работает неправильно

Проверьте следующие параметры конфигурации и исправьте их при необходимости.

На... Действие Комментарии Ссылка
Флажок Текущая первичная реплика Убедитесь, что прослушиватель группы доступности подключен к сети. Чтобы проверить, подключен ли прослушиватель:

SELECT * FROM sys.dm_tcp_listener_states;

Чтобы перезапустить автономный прослушиватель, выполните следующее:

ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener';
sys.dm_tcp_listener_states (Transact-SQL)

ИЗМЕНИТЬ ГРУППУ ДОСТУПНОСТИ (Transact-SQL)
Флажок Текущая первичная реплика Убедитесь, что READ_ONLY_ROUTING_LIST содержит только экземпляры сервера, на которых размещена вторичная реплика в режиме чтения. Чтобы определить доступные для чтения вторичные реплики: sys.availability_replicas (столбец secondary_role_allow_connections_desc )

Чтобы просмотреть список маршрутизации только для чтения, sys.availability_read_only_routing_lists

Чтобы изменить список маршрутизации только для чтения: ALTER AVAILABILITY GROUP
sys.availability_replicas (Transact-SQL)

sys.availability_read_only_routing_lists (списки маршрутизации только для чтения доступности системыTransact-SQL)

ИЗМЕНИТЬ ГРУППУ ДОСТУПНОСТИ (Transact-SQL)
Флажок Каждая реплика в read_only_routing_list Убедитесь, что брандмауэр Windows не блокирует порт READ_ONLY_ROUTING_URL. - настройка брандмауэра Windows для доступа к ядрам СУБД
Флажок Каждая реплика в read_only_routing_list В диспетчере конфигурации SQL Server убедитесь, что:

Включено удаленное подключение к SQL Server.

ВКЛЮЧЕН ПРОТОКОЛ TCP/IP.

IP-адреса настроены правильно.
- Просмотр или изменение свойств сервера (SQL Server)

Настройка сервера для прослушивания указанного TCP-порта (диспетчер конфигурации SQL Server)
Флажок Каждая реплика в read_only_routing_list Убедитесь, что READ_ONLY_ROUTING_URL (TCP://system-address:port) содержит правильное полное доменное имя (FQDN) и номер порта. - Вычисление read_only_routing_url для AlwaysOn

sys.availability_replicas (Transact-SQL)

ИЗМЕНИТЬ ГРУППУ ДОСТУПНОСТИ (Transact-SQL)
Флажок Клиентская система Убедитесь, что драйвер клиента поддерживает маршрутизацию только для чтения. - Подключение клиента AlwaysOn (SQL Server)

Связанные задачи

Связанные материалы

См. также

Безопасность транспорта для зеркалирования баз данных и групп доступности AlwaysOn (SQL Server)Конфигурация клиентской сетиТребования, ограничения и рекомендации для групп доступности AlwaysOn (SQL Server)