Подготовка к использованию группы доступности SQL Server Always On с Configuration Manager

Относится к Configuration Manager (Current Branch)

Используйте эту статью, чтобы подготовить Configuration Manager к использованию группы доступности SQL Server Always On для базы данных сайта. Эта функция обеспечивает высокий уровень доступности и решение для аварийного восстановления.

Configuration Manager поддерживает использование групп доступности:

  • На первичных сайтах и на сайте центра администрирования.
  • Локально или в Майкрософт Azure.

При использовании групп доступности в Майкрософт Azure можно дополнительно повысить доступность базы данных сайта с помощью групп доступности Azure. Дополнительные сведения о группах доступности Azure см. в статье Управление доступностью виртуальных машин.

Важно!

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

Поддерживаемые сценарии

Для использования групп доступности с Configuration Manager поддерживаются следующие сценарии. Дополнительные сведения и процедуры для каждого сценария см. в статье Настройка групп доступности для Configuration Manager.

Предварительные требования

Следующие предварительные требования применяются ко всем сценариям. Если к определенному сценарию применяются дополнительные предварительные требования, они подробно описаны в этом сценарии.

Configuration Manager учетные записи и разрешения

Учетная запись для установки

Учетная запись, используемая для запуска Configuration Manager установки, должна быть следующей:

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

Сервер сайта для доступа к члену реплики

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

SQL Server

Версия

Каждая реплика в группе доступности должна запускать версию SQL Server, поддерживаемую вашей версией Configuration Manager. При поддержке SQL Server разные узлы группы доступности могут запускать разные версии SQL Server. Дополнительные сведения см. в статье Поддерживаемые версии SQL Server для Configuration Manager.

Выпуск

Используйте корпоративный выпуск SQL Server.

Счет

Каждый экземпляр SQL Server может выполняться под учетной записью пользователя домена (учетной записью службы) или учетной записью, отличной от домена. Каждая реплика в группе может иметь разную конфигурацию.

База данных

Настройка базы данных в новой реплике

Эти конфигурации можно использовать только в первичной реплике. Чтобы настроить вторичную реплику, сначала выполните отработку отказа первичной реплики на вторичную. Это действие делает вторичную реплика новой первичной репликой.

Настройте базу данных каждой реплики со следующими параметрами:

  • Включение интеграции со средой CLR:

    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO  
    sp_configure 'clr enabled', 1;  
    GO  
    RECONFIGURE;  
    GO
    

    Дополнительные сведения см. в разделе Интеграция со средой CLR.

  • Задайте для параметра Max text repl size значение2147483647:

    EXECUTE sp_configure 'max text repl size (B)', 2147483647
    
  • Задайте для владельца базы данных учетную запись SA. Вам не нужно включать эту учетную запись.

  • Включите параметрTRUSTWORTHY:

    ALTER DATABASE [CM_xxx] SET TRUSTWORTHY ON;
    

    Дополнительные сведения см. в разделе Свойство базы данных TRUSTWORTHY.

  • Включите компонент Service Broker:

    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER
    

    Примечание.

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

  • Настройте приоритет компонента Service Broker.

    ALTER DATABASE [CM_xxx] SET HONOR_BROKER_PRIORITY ON;
    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
    

Скрипт проверки базы данных

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

    SET NOCOUNT ON

    DECLARE @dbname NVARCHAR(128)

    SELECT @dbname = sd.name FROM sys.sysdatabases sd WHERE sd.dbid = DB_ID()

    IF (@dbname = N'master' OR @dbname = N'model' OR @dbname = N'msdb' OR @dbname = N'tempdb' OR @dbname = N'distribution' ) BEGIN
    RAISERROR(N'ERROR: Script is targeting a system database.  It should be targeting the DB you created instead.', 0, 1)
    GOTO Branch_Exit;
    END ELSE
    PRINT N'INFO: Targeted database is ' + @dbname + N'.'

    PRINT N'INFO: Running verifications....'

    IF NOT EXISTS (SELECT * FROM sys.configurations c WHERE c.name = 'clr enabled' AND c.value_in_use = 1)
    PRINT N'ERROR: CLR is not enabled!'
    ELSE
    PRINT N'PASS: CLR is enabled.'

    DECLARE @repltable TABLE (
    name nvarchar(max),
    minimum int,
    maximum int,
    config_value int,
    run_value int )

    INSERT INTO @repltable
    EXEC sp_configure 'max text repl size (B)'

    IF NOT EXISTS(SELECT * from @repltable where config_value = 2147483647 and run_value = 2147483647 )
    PRINT N'ERROR: Max text repl size is not correct!'
    ELSE
    PRINT N'PASS: Max text repl size is correct.'

    IF NOT EXISTS (SELECT db.owner_sid FROM sys.databases db WHERE db.database_id = DB_ID() AND db.owner_sid = 0x01)
    PRINT N'ERROR: Database owner is not sa account!'
    ELSE
    PRINT N'PASS: Database owner is sa account.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_trustworthy_on = 1 )
    PRINT N'ERROR: Trustworthy bit is not on!'
    ELSE
    PRINT N'PASS: Trustworthy bit is on.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_broker_enabled = 1 )
    PRINT N'ERROR: Service broker is not enabled!'
    ELSE
    PRINT N'PASS: Service broker is enabled.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_honor_broker_priority_on = 1 )
    PRINT N'ERROR: Service broker priority is not set!'
    ELSE
    PRINT N'PASS: Service broker priority is set.'

    PRINT N'Done!'

    Branch_Exit:

Конфигурации групп доступности

Члены реплики

  • Группа доступности должна иметь одну первичную реплику.

  • Используйте то же количество и тип реплик в группе доступности, что и ваша версия SQL Server.

  • Для восстановления синхронной реплики можно использовать асинхронную реплику фиксации. Дополнительные сведения см. в разделе Параметры восстановления базы данных сайта.

    Предупреждение

    Configuration Manager не поддерживает отработку отказа, чтобы использовать асинхронную реплику фиксации в качестве базы данных сайта. Дополнительные сведения см. в разделе Режимы отработки отказа и отработки отказа (Always On группы доступности).

Configuration Manager не проверяет состояние асинхронной реплики фиксации, чтобы убедиться, что она является текущей. Использование асинхронной реплики фиксации в качестве базы данных сайта может поставить под угрозу целостность сайта и данных. Эта реплика может быть не синхронизирована. Дополнительные сведения см. в статье Общие сведения о группах доступности SQL Server Always On.

Каждый член реплики должен иметь следующую конфигурацию:

  • Используйте экземпляр по умолчанию или именованный экземпляр.

    Примечание.

    Не укажите на сервере общую папку с именем экземпляра SQL Server.

  • Параметр Подключения в основной ролиРазрешить все подключения.

  • Параметр "Удобочитаемый дополнительный " имеет значение Да.

  • Включена отработка отказа вручную

    Примечание.

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

    • Вы запускаете Configuration Manager настройку, чтобы указать использование базы данных сайта в группе доступности.
    • Все обновления устанавливаются в Configuration Manager. (Не только обновления, которые применяются к базе данных сайта.
  • Всем членам требуется один и тот же режим заполнения.Configuration Manager настройка включает проверку предварительных требований для проверки этой конфигурации при создании базы данных путем установки или восстановления.

    Примечание.

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

Расположение члена реплики

Размещение всех реплик в локальной группе доступности или размещение всех реплик в Майкрософт Azure. Группа, включающая локального участника и участника в Azure, не поддерживается.

Примечание.

Если вы используете виртуальную машину Azure для SQL Server, включите плавающий IP-адрес. Дополнительные сведения см. в статье Настройка подсистемы балансировки нагрузки для группы доступности SQL Server Always On на виртуальных машинах Azure.

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

  • Сопоставитель конечных точек RPC: TCP 135

  • SQL Server Service Broker: TCP 4022

  • SQL через TCP: TCP 1433

После завершения настройки эти порты должны оставаться открытыми для Configuration Manager и анализатора каналов репликации.

Для этих конфигураций можно использовать пользовательские порты. Используйте одни и те же настраиваемые порты для конечной точки и для всех реплик в группе доступности.

Чтобы SQL Server реплицировать данные между сайтами, создайте правило балансировки нагрузки для каждого порта в Azure Load Balancer. Дополнительные сведения см. в статье Настройка портов высокой доступности для внутренней подсистемы балансировки нагрузки.

Прослушивателя

Группа доступности должна иметь по крайней мере один прослушиватель группы доступности. При настройке Configuration Manager для использования базы данных сайта в группе доступности используется виртуальное имя этого прослушивателя. Хотя группа доступности может содержать несколько прослушивателей, Configuration Manager могут использовать только один прослушиватель. Дополнительные сведения см. в статье Создание или настройка прослушивателя группы доступности SQL Server.

Пути к файлу

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

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

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

Рассмотрим, например, описанный ниже сценарий.

  • Вы создаете группу доступности, которая использует три сервера SQL Server.

  • Сервер первичной реплики — это новая установка SQL Server 2014. По умолчанию база данных MDF и LDF-файлы хранятся в C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA.

  • Вы обновили оба сервера-получатель реплики до SQL Server 2014 по сравнению с предыдущими версиями. При обновлении эти серверы сохраняют исходный путь к файлу для хранения файлов базы данных: C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA.

  • Перед перемещением базы данных сайта в эту группу доступности на каждом сервере-получателе реплики создайте следующий путь к файлу: C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA. Этот путь является дубликатом пути, используемого в первичной реплике, даже если вторичные реплики не будут использовать это расположение файла.

  • Затем вы предоставляете учетной записи службы SQL Server на каждой вторичной реплике полный доступ к только что созданному расположению файла на этом сервере.

  • Теперь можно успешно запустить Configuration Manager настройку, чтобы настроить сайт для использования базы данных сайта в группе доступности.

Отработка отказа нескольких подсетей

Ключевое слово Строки подключения MultiSubnetFailover можно включить в SQL Server. Кроме того, необходимо вручную добавить следующие значения в реестр Windows на сервере сайта:

HKLM:\SOFTWARE\Microsoft\SMS\Identification
HKLM:\SOFTWARE\Microsoft\SMS\SQL Server

MSF Enabled : 1 (DWORD)

Предупреждение

Использование высокого уровня доступности сервера сайта и SQL Server Always On групп доступности с отработкой отказа с несколькими подсетями не предоставляет полные возможности автоматической отработки отказа для сценариев аварийного восстановления.

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

Ограничения и известные проблемы

Следующие ограничения применяются ко всем сценариям.

Неподдерживаемые параметры и конфигурации SQL Server

  • Базовые группы доступности. Впервые появилось SQL Server выпуске Standard 2016, базовые группы доступности не поддерживают доступ на чтение к вторичным репликам. Этот доступ требуется для конфигурации. Дополнительные сведения см. в статье Базовый SQL Server группы доступности.

  • Экземпляр отказоустойчивого кластера. Экземпляры отказоустойчивого кластера не поддерживаются для реплики, используемой с Configuration Manager. Дополнительные сведения см. в разделе SQL Server Always On экземпляры отказоустойчивого кластера.

Серверы SQL Server, на которых размещены дополнительные группы доступности

Если в SQL Server размещается одна или несколько групп доступности в дополнение к группе, используемой для Configuration Manager, ей требуются определенные параметры во время выполнения Configuration Manager настройки. Эти параметры также необходимы для установки обновления для Configuration Manager. Каждая реплика в каждой группе доступности должна иметь следующие конфигурации:

  • Отработка отказа вручную

  • Разрешить любое подключение только для чтения

Примечание.

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

  • Вы запускаете Configuration Manager настройку, чтобы указать использование базы данных сайта в группе доступности.
  • Все обновления устанавливаются в Configuration Manager. (Не только обновления, которые применяются к базе данных сайта.

Неподдерживаемое использование базы данных

Configuration Manager поддерживает только базу данных сайта в группе доступности.

Следующие базы данных не поддерживаются Configuration Manager в группе доступности:

  • База данных для формирования отчетов

  • База данных WSUS

Существующая база данных

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

Ошибки установки в ConfigMgrSetup.log

При выполнении Configuration Manager настройки для перемещения базы данных сайта в группу доступности выполняется попытка обработать роли базы данных во вторичных репликах группы доступности. В файле ConfigMgrSetup.log отображается следующая ошибка:

ERROR: SQL Server error: [25000][3906][Microsoft][SQL Server Native Client 11.0][SQL Server]Failed to update database "CM_AAA" because the database is read-only. Configuration Manager Setup 1/21/2016 4:54:59 PM 7344 (0x1CB0)

Эти ошибки можно игнорировать.

Расширение сайта

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

При добавлении дополнительного сайта не нужно вносить какие-либо изменения в конфигурацию.

Изменения в резервном копировании сайта

Резервное копирование файлов базы данных

Если база данных сайта использует группу доступности, выполните встроенную задачу обслуживания сервера сайта резервного копирования, чтобы создать резервную копию общих Configuration Manager параметров и файлов. Не используйте файлы MDF или LDF, созданные этой резервной копией. Вместо этого создайте прямые резервные копии этих файлов базы данных с помощью SQL Server.

Вы по-прежнему можете использовать резервную копию SQL Server, однако не можете восстановить ее непосредственно в кластере SQL Server Always On. Необходимо восстановить его на автономном сервере и переместить обратно в SQL Server Always On.

Журнал транзакций

Задайте для модели восстановления базы данных сайта значение Полная. Эта конфигурация является обязательным требованием для Configuration Manager использования в группе доступности. Запланируйте мониторинг и поддержание размера журнала транзакций базы данных сайта. В модели полного восстановления транзакции не защищены, пока не создайте полную резервную копию базы данных или журнала транзакций. Дополнительные сведения см. в статье Резервное копирование и восстановление баз данных SQL Server.

Изменения для site recovery

Если хотя бы один узел группы доступности по-прежнему работает, используйте параметр site recovery для параметра Пропустить восстановление базы данных (используйте этот параметр, если база данных сайта не пострадала).

Site recovery может воссоздать базу данных в группе доступности. Этот процесс работает как с ручным, так и с автоматическим заполнением.

Совет

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

Дополнительные сведения см. в разделе Резервное копирование и восстановление.

Изменения в отчетах

Установка точки службы отчетов

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

  • По умолчанию точка установки служб reporting services задает для имени сервера базы данных сайта виртуальное имя, указанное в качестве прослушивателя. Измените этот параметр, чтобы указать имя компьютера и экземпляр реплики в группе доступности.

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

Переключение точки служб отчетов, используемой консолью

  1. В консоли Configuration Manager перейдите в рабочую область Мониторинг, разверните узел Отчеты и выберите узел Отчеты.

  2. На ленте выберите Параметры отчета.

  3. В диалоговом окне Параметры отчета выберите нужную точку служб отчетов.

Дальнейшие действия

В этой статье описываются предварительные требования, ограничения и изменения для распространенных задач, которые Configuration Manager требуются при использовании групп доступности. Инструкции по настройке и настройке сайта для использования групп доступности см. в разделе Настройка групп доступности.