Подготовка среды для канала: Управляемый экземпляр SQL Azure

Область применения: Управляемый экземпляр SQL Azure

В этой статье описано, как подготовить среду к ссылке Управляемый экземпляр, чтобы можно было реплицировать между SQL Server, установленной в Windows или Linux, и Управляемый экземпляр SQL Azure.

Примечание.

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

Необходимые компоненты

Чтобы создать связь между SQL Server и Управляемый экземпляр SQL Azure, вам потребуется следующее:

Внимание

При создании управляемого экземпляра SQL для использования с функцией компоновки учитывайте требования к памяти для любых функций OLTP в памяти, используемых SQL Server. Дополнительные сведения см. в разделе "Обзор ограничений Управляемый экземпляр SQL Azure ресурсов".

Разрешения

Для SQL Server у вас должны быть разрешения sysadmin .

Для Управляемый экземпляр SQL Azure вы должны быть членом участника Управляемый экземпляр SQL или иметь следующие разрешения для пользовательской роли:

Microsoft.Sql/ ресурс Необходимые разрешения
Microsoft.Sql/managedInstances /read, /write
Microsoft.Sql/managedInstances/hybridCertificate /действие
Microsoft.Sql/managedInstances/databases /read, /delete, /write, /completeRestore/action, /readBackups/action, /restoreDetails/read
Microsoft.Sql/managedInstances/distributedAvailabilityGroups /read, /write, /delete, /setRole/action
Microsoft.Sql/managedInstances/endpointCertificates /read
Microsoft.Sql/managedInstances/hybridLink /read, /write, /delete
Microsoft.Sql/managedInstances/serverTrustCertificates /write, /delete, /read

Подготовка экземпляра SQL Server

Чтобы подготовить экземпляр SQL Server, необходимо проверить следующее:

  • Вы используете минимальную поддерживаемую версию.
  • Функция "Группа доступности" включена.
  • Добавлены необходимые флаги трассировки при запуске.
  • Базы данных находятся в полной модели восстановления и создают резервную копию.

Чтобы эти изменения вступили в силу, необходимо перезапустить SQL Server.

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

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

Чтобы проверить версию SQL Server, запустите следующий скрипт Transact-SQL (T-SQL) на экземпляре SQL Server:

-- Run on SQL Server
-- Shows the version and CU of the SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';

Создание главного ключа базы данных в master базе данных

Создайте главный master ключ базы данных в базе данных, если он еще не присутствует. Вставьте пароль вместо следующего скрипта <strong_password> и сохраните его в конфиденциальном и безопасном месте. Запустите этот скрипт T-SQL в SQL Server:

-- Run on SQL Server
-- Create a master key
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>';

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

-- Run on SQL Server
USE master;
GO
SELECT * FROM sys.symmetric_keys WHERE name LIKE '%DatabaseMasterKey%';

Включение групп доступности

Функция ссылки использует функцию групп доступности AlwaysOn, которая по умолчанию отключена. Дополнительные сведения см. в разделе "Включить групп доступности AlwaysOn".

Примечание.

Сведения о SQL Server на Linux см. в разделе "Включить группы доступности AlwaysOn".

Чтобы убедиться, что функция групп доступности включена, выполните следующий скрипт T-SQL на SQL Server:

-- Run on SQL Server
-- Is the availability groups feature enabled on this SQL Server
DECLARE @IsHadrEnabled sql_variant = (select SERVERPROPERTY('IsHadrEnabled'))
SELECT
    @IsHadrEnabled as 'Is HADR enabled',
    CASE @IsHadrEnabled
        WHEN 0 THEN 'Availability groups DISABLED.'
        WHEN 1 THEN 'Availability groups ENABLED.'
        ELSE 'Unknown status.'
    END
    as 'HADR status'

Внимание

Для SQL Server 2016 (13.x), если необходимо включить функцию групп доступности, вам потребуется выполнить дополнительные действия, описанные в разделе "Подготовка предварительных требований SQL Server 2016" — Управляемый экземпляр SQL Azure ссылку. Эти дополнительные шаги не требуются для SQL Server 2019 (15.x) и более поздних версий, поддерживаемых ссылкой.

Если компонент групп доступности не включен:

  1. Откройте диспетчер конфигурации SQL Server.

  2. Выберите элемент Службы SQL Server на панели слева.

  3. Щелкните правой кнопкой мыши службу SQL Server, а затем выберите Свойства.

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

  4. Перейдите на вкладку Группы доступности Always On.

  5. Установите флажок "Включить группы доступности AlwaysOn" и нажмите кнопку "ОК".

    Снимок экрана: свойства для групп доступности AlwaysOn.

  6. Нажмите кнопку "ОК " в диалоговом окне.

  7. Перезапустите службу SQL Server.

Включение флагов трассировки запуска

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

  • -T1800: этот флаг трассировки оптимизирует производительность, если файлы журнала для основных и вторичных реплик в группе доступности размещаются на дисках с разными размерами сектора, такими как 512 байтов и 4 КБ. Если основной и вторичный реплики имеют размер сектора диска размером 4 КБ, этот флаг трассировки не требуется. Дополнительные сведения см. здесь: KB3009974.
  • -T9567. Этот флаг трассировки включает сжатие потока данных для групп доступности во время автоматического заполнения. Сжатие увеличивает загрузку ЦП, но может значительно сократить время передачи.

Примечание.

Сведения о SQL Server на Linux см. в разделе "Включение флагов трассировки".

Чтобы включить эти флаги трассировки при запуске, сделайте следующее:

  1. Откройте диспетчер конфигурации SQL Server.

  2. Выберите элемент Службы SQL Server на панели слева.

  3. Щелкните правой кнопкой мыши службу SQL Server, а затем выберите Свойства.

    Снимок экрана: диспетчер конфигурации SQL Server.

  4. Перейдите на вкладку Параметры запуска. В поле Укажите параметр запуска введите -T1800 и выберите Добавить, чтобы добавить параметр запуска. Затем введите -T9567 и выберите команду Добавить, чтобы добавить другой флаг трассировки. Щелкните Применить, чтобы сохранить изменения.

    Снимок экрана: свойства параметра запуска.

  5. Щелкните OK, чтобы закрыть окно Свойства.

Дополнительные сведения см. в синтаксисе для включения флагов трассировки.

Перезапуск SQL Server и проверка конфигурации

Убедившись, что вы используете поддерживаемую версию SQL Server, включили компонент групп доступности Always On и добавили флаги трассировки при запуске, перезапустите экземпляр SQL Server, чтобы применить все эти изменения:

  1. Откройте Диспетчер конфигурации SQL Server.

  2. Выберите элемент Службы SQL Server на панели слева.

  3. Щелкните правой кнопкой мыши службу SQL Server, а затем выберите элемент Перезапуск.

    Снимок экрана: вызов команды перезапуска SQL Server.

После перезапуска выполните следующий скрипт T-SQL в SQL Server, чтобы проверить конфигурацию экземпляра SQL Server:

-- Run on SQL Server
-- Shows the version and CU of SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';
GO
-- Shows if the Always On availability groups feature is enabled
SELECT SERVERPROPERTY ('IsHadrEnabled') as 'Is Always On enabled? (1 true, 0 false)';
GO
-- Lists all trace flags enabled on SQL Server
DBCC TRACESTATUS;

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

Снимок экрана: ожидаемый результат в S S S S.

Настройка сетевого подключения

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

SQL Server на Виртуальных машинах Microsoft Azure

Развертывание SQL Server на виртуальных машинах Azure в той же виртуальной сети Azure, в которой размещен Управляемый экземпляр SQL, — это самый простой способ, так как между двумя экземплярами будет автоматически установлено сетевое подключение. Дополнительные сведения см. в кратком руководстве по настройке виртуальной машины Azure для подключения к Управляемый экземпляр SQL Azure.

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

Существует два варианта подключения виртуальных сетей.

Пиринг предпочтительнее, так как он использует магистральную сеть Майкрософт, поэтому с точки зрения подключения нет заметной разницы в задержке между виртуальными машинами в одноранговой виртуальной сети и в одной виртуальной сети. Пиринг между сетями в одном регионе поддерживается. Пиринг глобальной виртуальной сети поддерживается для экземпляров, размещенных в подсетях, созданных после 22 сентября 2020 г. Дополнительные сведения см. в разделе часто задаваемые вопросы (часто задаваемые вопросы).

SQL Server вне Azure

Если ваш экземпляр SQ  Server размещен вне Azure, установите VPN-подключение между SQL Server и Управляемым экземпляром SQL, воспользовавшись одной из этих возможностей:

Совет

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

Сетевые порты между средами

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

Правила группы безопасности сети (NSG) в подсети, на котором размещен управляемый экземпляр, должны разрешать:

  • Входящий порт 5022 и диапазон портов 11000–11999 для получения трафика от исходного IP-адреса SQL Server
  • Исходящий порт 5022 для отправки трафика в целевой IP-адрес SQL Server

Все брандмауэры в сети, в которых размещен SQL Server, и ос узла должны разрешать:

  • Входящий порт 5022 открыт для получения трафика из исходного диапазона IP-адресов подсети MI /24 (например, 10.0.0.0/24)
  • Исходящие порты 5022 и диапазон портов 11000-11999, открытый для отправки трафика в диапазон IP-адресов целевой подсети MI (например, 10.0.0.0/24)

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

В таблице ниже описаны действия портов для каждой среды.

Среда Что следует делать
SQL Server (в Azure) Откройте входящий и исходящий трафик через порт 5022 для сетевого брандмауэра для всего диапазона IP-адресов подсети Управляемого экземпляра SQL. При необходимости сделайте то же самое в брандмауэре ОС узла SQL Server (Windows или Linux). Чтобы разрешить обмен данными через порт 5022, создайте правило группы безопасности сети (NSG) в виртуальной сети, на котором размещена виртуальная машина.
SQL Server (вне Azure) Откройте входящий и исходящий трафик через порт 5022 для сетевого брандмауэра для всего диапазона IP-адресов подсети Управляемого экземпляра SQL. При необходимости сделайте то же самое в брандмауэре ОС узла SQL Server (Windows или Linux).
Управляемый экземпляр SQL Создайте правило NSG в портал Azure, чтобы разрешить входящий и исходящий трафик из IP-адреса и сети, на котором размещен SQL Server через порт 5022 и диапазон портов 11000-11999.

Используйте следующий сценарий PowerShell в операционной системе узла Windows экземпляра SQL Server, чтобы открыть порты в брандмауэре Windows:

New-NetFirewallRule -DisplayName "Allow TCP port 5022 inbound" -Direction inbound -Profile Any -Action Allow -LocalPort 5022 -Protocol TCP
New-NetFirewallRule -DisplayName "Allow TCP port 5022 outbound" -Direction outbound -Profile Any -Action Allow -LocalPort 5022 -Protocol TCP

На следующей схеме показан пример локальной сетевой среды, указывающий, что все брандмауэры в среде должны иметь открытые порты, включая брандмауэр ОС, на котором размещен SQL Server, и все корпоративные брандмауэры и (или) шлюзы:

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

Внимание

  • Порты должны быть открыты в каждом брандмауэре в сетевой среде, включая сервер узла, а также любые корпоративные брандмауэры или шлюзы в сети. В корпоративных средах может потребоваться показать администратору сети сведения в этом разделе, чтобы открыть дополнительные порты на корпоративном сетевом уровне.
  • Хотя вы можете настроить конечную точку на стороне SQL Server, номера портов для Управляемый экземпляр SQL нельзя изменить или настроить.
  • Диапазоны IP-адресов подсетей, в которые размещаются управляемые экземпляры, и SQL Server не должен перекрываться.

Добавление URL-адресов в список разрешений

В зависимости от параметров безопасности сети может потребоваться добавить URL-адреса для полного доменного имени Управляемый экземпляр SQL и некоторые конечные точки управления ресурсами, используемые Azure в список разрешений.

Ниже перечислены ресурсы, которые следует добавить в список разрешений:

  • Полное доменное имя Управляемый экземпляр SQL. Например: managedinstance1.6d710bcf372b.database.windows.net.
  • Центр записи Майкрософт
  • Идентификатор ресурса конечной точки Microsoft Entra
  • Конечная точка Resource Manager
  • Конечная точка сервиса

Выполните действия, описанные в разделе "Настройка SSMS для облачных служб для государственных организаций", чтобы получить доступ к интерфейсу tools в SQL Server Management Studio (SSMS) и определить конкретные URL-адреса ресурсов в облаке, которые необходимо добавить в список разрешений.

Проверка сетевого подключения

Для работы канала требуется двунаправленное сетевое подключение между экземпляром SQL Server и Управляемым экземпляром SQL. После открытия портов на стороне SQL Server и настройки правила NSG на стороне Управляемый экземпляр SQL проверьте подключение с помощью SQL Server Management Studio (SSMS) или Transact-SQL.

Проверьте сеть, создав временное задание агента SQL в SQL Server и Управляемый экземпляр SQL для проверки подключения между двумя экземплярами. При использовании средства проверки сети в SSMS задание автоматически создается и удаляется после завершения теста. При тестировании сети с помощью T-SQL необходимо вручную удалить задание агента SQL.

Примечание.

Выполнение скриптов PowerShell агент SQL Server в SQL Server на Linux в настоящее время не поддерживается, поэтому в настоящее время невозможно выполнить Test-NetConnection задание агент SQL Server в SQL Server на Linux.

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

  • Пользователь, выполняющий тест, должен иметь разрешения на создание задания (как sysadmin или принадлежит роли SQLAgentOperator для msdb) для SQL Server и Управляемый экземпляр SQL.
  • Служба агент SQL Server должна работать в SQL Server. Так как агент по умолчанию включен в Управляемый экземпляр SQL, никаких дополнительных действий не требуется.

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

  1. Подключитесь к экземпляру, который будет основной репликой в SSMS.

  2. В обозреватель объектов разверните базы данных и щелкните правой кнопкой мыши базу данных, которую вы планируете связать со вторичной. Выберите "Задачи> Управляемый экземпляр SQL Azure ссылку> Проверить подключение, чтобы открыть мастер проверки сети:

    Снимок экрана: обозреватель объектов в S S S S, с тестовыми подключениями, выбранными в меню ссылки базы данных правой кнопкой мыши.

  3. Нажмите кнопку "Далее" на странице "Введение" мастера проверки сети.

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

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

  6. При необходимости проверьте сведения на странице "Указать параметры сети" и укажите IP-адрес. Выберите Далее.

  7. На странице "Сводка" просмотрите действия мастера, а затем нажмите кнопку "Готово", чтобы проверить подключение между двумя репликами.

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

Внимание

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

Перенос сертификата защищенной TDE базы данных (необязательно)

Если вы связываете базу данных SQL Server, защищенную прозрачное шифрование данных (TDE) с управляемым экземпляром, необходимо перенести соответствующий сертификат шифрования из локального экземпляра или экземпляра SQL Server виртуальной машины Azure в управляемый экземпляр перед использованием ссылки. Подробные инструкции см. в статье "Перенос сертификата защищенной TDE базы данных в Управляемый экземпляр SQL Azure".

Управляемый экземпляр SQL базы данных, зашифрованные с помощью ключей TDE, управляемых службой, не могут быть связаны с SQL Server. Можно связать зашифрованную базу данных с SQL Server только в том случае, если он был зашифрован с помощью управляемого клиентом ключа, а целевой сервер имеет доступ к тому же ключу, который используется для шифрования базы данных. Дополнительные сведения см. в статье "Настройка TDE SQL Server с помощью Azure Key Vault".

Примечание.

Azure Key Vault поддерживается SQL Server на Linux начиная с SQL Server 2022 CU 14.

установка SSMS

SQL Server Management Studio (SSMS) — самый простой способ использовать ссылку Управляемый экземпляр. Скачайте SSMS версии 19.0 или более поздней версии и установите его на клиентский компьютер.

По завершении установки откройте SSMS и подключитесь к поддерживаемому экземпляру SQL Server. Щелкните правой кнопкой мыши пользовательскую базу данных и убедитесь, что в меню появляется параметр Azure SQL Managed Instance link (Канал Управляемого экземпляра SQL Azure).

Снимок экрана: параметр ссылки Управляемый экземпляр SQL Azure в контекстном меню.

Настройка SSMS для облачных служб для государственных организаций

Если вы хотите развернуть Управляемый экземпляр SQL в облаке для государственных организаций, необходимо изменить параметры SQL Server Management Studio (SSMS), чтобы использовать правильное облако. Если вы не развертываете Управляемый экземпляр SQL в облаке для государственных организаций, пропустите этот шаг.

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

  1. Откройте SSMS.
  2. В меню выберите "Сервис" и выберите пункт "Параметры".
  3. Разверните службы Azure и выберите Azure Cloud.
  4. В разделе "Выбор облака Azure" используйте раскрывающийся список для выбора AzureUSGovernment или другого облака для государственных организаций, например AzureChinaCloud:

Снимок экрана: пользовательский интерфейс SSMS, страница параметров, службы Azure с выделенным облаком Azure.

Если вы хотите вернуться в общедоступное облако, выберите AzureCloud из раскрывающегося списка.

Чтобы использовать ссылку, выполните следующие действия.

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

Для других сценариев репликации и миграции рекомендуется: