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

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

ПримечаниеПримечание

Проверьте, выполняются ли предварительные требования Группы доступности AlwaysOn. Дополнительные сведения см. в разделе предварительными требованиями, и ограничениями и рекомендациями для групп доступности AlwaysOn (SQL Server).

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

Раздел

Описание

Функция групп доступности AlwaysOn не включена

Если экземпляр SQL Server не включен для Группы доступности AlwaysOn, то экземпляр не поддерживает создание групп доступности и на нем не могут размещаться реплики доступности.

Учетные записи

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

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

Описывается диагностика проблем конечной точки зеркального отображения баз данных для экземпляра сервера.

Имя системы

Обобщаются альтернативы указанию системного имени экземпляра сервера в URL-адресе конечной точки.

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

Документирует требование к каждому экземпляру сервера, на котором размещается реплика доступности, чтобы каждый такой экземпляр имел доступ к порту каждого другого экземпляра сервера по протоколу TCP.

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

Содержит сведения об этом сообщении об ошибке SQL Server.

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

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

Маршрутизация только для чтения работает неправильно

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

Содержит список разбитых по задачам разделов в электронной документации по SQL Server 2012, особенно важных для устранения неполадок с конфигурацией группы.

См. также

Содержит список важных ресурсов, не входящих в состав электронной документации по SQL Server.

Функция групп доступности AlwaysOn не включена

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

Учетные записи

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

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

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

    2. Если два экземпляра сервера выполняются под разными учетными записями, то для каждой учетной записи должно быть создано имя входа в базе данных master на удаленном экземпляре сервера и этому имени входа необходимо присвоить разрешения 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. Чтобы узнать, кто имеет разрешение 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-адрес (желательно статический). Полное доменное имя будет работать гарантированно. Дополнительные сведения см. в разделе Укажите URL-адрес конечной точки при добавлении или изменении реплики доступности (SQL Server).

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

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

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

Решение.

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

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

Маршрутизация только для чтения работает неправильно

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

     

При выполнении...

Действие

Комментарии

Ссылка

Флажок

Текущая первичная реплика

Убедитесь, что прослушиватель группы доступности находится в режиме «в сети».

Чтобы убедиться, что прослушиватель имеет состояние «в сети», выполните следующие действия.

SELECT * FROM sys.dm_tcp_listener_states;

Перезапуск прослушивателя с состоянием «вне сети»

ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener';

sys.dm_tcp_listener_states (Transact-SQL)

ALTER AVAILABILITY GROUP (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)

ALTER AVAILABILITY GROUP (Transact-SQL)

Флажок

Каждая реплика в списке read_only_routing_list

Убедитесь, что брандмауэр Windows не блокирует порт READ_ONLY_ROUTING_URL.

Настройка брандмауэра Windows для доступа к компоненту Database Engine

Флажок

Каждая реплика в списке read_only_routing_list

В диспетчере конфигурации SQL Server убедитесь в следующем.

  • Удаленное соединение с SQL Server включено.

  • TCP/IP включен.

  • IP-адреса настроены правильно.

Просмотр или изменение свойств сервера

Настройка сервера для прослушивания указанного 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)

ALTER AVAILABILITY GROUP (Transact-SQL)

Флажок

Система клиента

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

Возможность подключения клиентов AlwaysOn (SQL Server)

Значок стрелки, используемый со ссылкой «В начало»В начало

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Основные понятия

Безопасность транспорта для зеркального отображения баз данных и групп доступности AlwaysOn (SQL Server)

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

Другие ресурсы

Конфигурация клиентской сети