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


Как создать конечную точку зеркального отображения базы данных с проверкой подлинности Windows (Transact-SQL)

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

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

Важное примечаниеВажно!

Если конечная точка зеркального отображения базы данных существует и уже используется, рекомендуется использовать эту конечную точку для каждого сеанса экземпляра сервера. Удаление используемой конечной точки разрушает соединения существующих сеансов. Если для сеанса указан следящий сервер, удаление конечной точки зеркального отображения базы данных может привести к тому, что основной сервер этого сеанса потеряет кворум, вследствие чего база данных будет переведена в автономный режим и ее пользователи будут отключены. Дополнительные сведения см. в разделе Кворум: как следящий сервер влияет на доступность базы данных.

Создание конечной точки зеркального отображения с проверкой подлинности Windows

  1. Подключитесь к экземпляру сервера, для которого хотите создать конечную точку зеркального отображения.

  2. Определите, не существует ли уже конечная точка отображения, с помощью следующей инструкции:

    SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints 
    
    Важное примечаниеВажно!

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

  3. Чтобы создать конечную точку с проверкой подлинности Windows на языке Transact-SQL, выполните инструкцию CREATE ENDPOINT. Эта инструкция выглядит так:

    CREATE ENDPOINT <имяКонечнойТочки>

    STATE=STARTED

    AS TCP ( LISTENER_PORT = <списокПрослушиваемыхПортов> )

    FOR DATABASE_MIRRORING

    (

    [ AUTHENTICATION = WINDOWS [ <методАвторизации> ]

    ]

    [ [,] ENCRYPTION = REQUIRED

    [ ALGORITHM { <алгоритм> } ]

    ]

            [,] ROLE = <роль>

    )

    где

    • <имяКонечнойТочки> — уникальное имя, назначенное конечной точке зеркального отображения базы данных для экземпляра сервера.

    • STARTED указывает, что конечная точка должна запуститься и начать ожидать соединения. Обычно конечные точки зеркального отображения базы данных создаются в состоянии STARTED. Можно также начать сеанс в состоянии STOPPED (по умолчанию) или DISABLED.

    • <списокПрослушиваемыхПортов> — это номер одного порта (nnnn), по которому сервер должен прослушивать сообщения зеркального отображения базы данных. Разрешается только протокол TCP; использование другого протокола приведет к ошибке.

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

      SELECT name, port FROM sys.tcp_endpoints
      
      Важное примечаниеВажно!

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

    • Для проверки подлинности Windows параметр AUTHENTICATION необязателен, если только не нужно, чтобы конечная точка использовала для проверки соединений только NTLM или Kerberos. <методАвторизации> определяет способ проверки подлинности соединений как один из следующих: NTLM, KERBEROS или NEGOTIATE. Значение по умолчанию NEGOTIATE соответствует тому, что конечная точка будет использовать протокол согласования Windows для выбора NTLM либо Kerberos. Согласование разрешает соединения без проверки подлинности или с ней, в зависимости от уровня проверки подлинности противоположной конечной точки. Сведения об этих методах см. в разделе Типы проверки подлинности конечной точки.

    • По умолчанию параметр ENCRYPTION имеет значение REQUIRED. Это означает, что все соединения с этой конечной точкой должны использовать шифрование. Однако можно отключить шифрование или сделать его необязательным. Существуют следующие альтернативы.

      Значение

      Определение

      DISABLED

      Указывает на то, что данные, переданные через соединение, не зашифрованы.

      SUPPORTED

      Указывает на то, что данные будут шифроваться только в том случае, если противоположная конечная точка указана как SUPPORTED или REQUIRED.

      REQUIRED

      Указывает на то, что данные, передаваемые через соединение, шифруются.

      Если конечная точка требует шифрования, у другой конечной точки значением параметра ENCRYPTION может быть SUPPORTED или REQUIRED.

    • <алгоритм> позволяет выбрать стандарт шифрования для конечной точки. Значением параметра <алгоритм> может быть один из следующих алгоритмов шифрования или их комбинация: RC4, AES, AES RC4 или RC4 AES.

      Алгоритм AES RC4 определяет, что данная конечная точка будет согласовывать алгоритм шифрования, отдавая предпочтение алгоритму AES. Алгоритм RC4 AES определяет, что данная конечная точка будет согласовывать алгоритм шифрования, отдавая предпочтение алгоритму RC4. Если обе конечные точки указывают оба алгоритма, но в разной последовательности, то используется та, которая указана в принимающей стороне.

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

      Будучи значительно быстрее AES, RC4 является относительно слабым алгоритмом, в то время как AES — это относительно сильный алгоритм. Поэтому рекомендуется использовать алгоритм AES.

    • <роль> определяет роль или роли, которые может выполнять сервер. Указание параметра ROLE необходимо.

      Чтобы сервер мог выполнять одну роль в одном сеансе зеркального отображения и другую — в другом, укажите ROLE=ALL. Чтобы ограничить роль сервера только участником или следящим, укажите ROLE=PARTNER или ROLE=WITNESS соответственно.

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

      Для выпуска SQL Server Express WITNESS является единственным доступным параметром.

    Полное описание синтаксиса инструкции CREATE ENDPOINT см. в разделе CREATE ENDPOINT (Transact-SQL).

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

    Чтобы изменить существующую конечную точку, выполните инструкцию ALTER ENDPOINT (Transact-SQL).

Пример

В следующем примере создаются конечные точки для экземпляров сервера по умолчанию на трех разных системах.

Роль экземпляра сервера

Имя сервера

Участник (изначально в роли основного сервера)

SQLHOST01\.

Участник (изначально в роли зеркального сервера)

SQLHOST02\.

Следящий

SQLHOST03\.

В этом примере все три конечные точки используют порт с номером 7022, хотя можно было бы использовать номер любого доступного порта. Параметр AUTHENTICATION необязателен, так как все конечные точки используют тип по умолчанию, проверку подлинности Windows. Параметр ENCRYPTION также необязателен, так как все конечные точки намереваются согласовывать метод проверки подлинности соединения, а это поведение по умолчанию — для проверки подлинности Windows. Также все конечные точки требуют шифрование, что также является поведением по умолчанию.

Каждый сервер ограничен ролью или участника, или следящего, и конечная точка каждого сервера явно задает эту роль (ROLE=PARTNER или ROLE=WITNESS).

Важное примечаниеВажно!

У каждого экземпляра сервера может быть только одна конечная точка. Поэтому, если нужно, чтобы экземпляр сервера был в некоторых сеансах участником, а в некоторых — следящим, укажите ROLE=ALL.

--Endpoint for initial principal server instance, which
--is the only server instance running on SQLHOST01.
CREATE ENDPOINT endpoint_mirroring
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 7022 )
    FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for initial mirror server instance, which
--is the only server instance running on SQLHOST02.
CREATE ENDPOINT endpoint_mirroring
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 7022 )
    FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for witness server instance, which
--is the only server instance running on SQLHOST03.
CREATE ENDPOINT endpoint_mirroring
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 7022 )
    FOR DATABASE_MIRRORING (ROLE=WITNESS);
GO

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

См. также

Задания

Справочник

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