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

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

В этой статье описано, как подготовить среду к ссылке Управляемый экземпляр, чтобы можно было реплика te между SQL Server и Управляемый экземпляр 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".

Чтобы убедиться, что функция групп доступности включена, выполните следующий скрипт 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, а затем выберите Свойства.

    Screenshot that shows SQL Server Configuration Manager, with selections for opening properties for the service.

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

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

    Screenshot that shows the properties for Always On availability groups.

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

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

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

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

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

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

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

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

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

    Screenshot that shows SQL Server Configuration Manager.

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

    Screenshot that shows startup parameter properties.

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

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

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

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

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

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

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

    Screenshot that shows the SQL Server restart command call.

После перезапуска выполните следующий скрипт 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, который был правильно настроен:

Screenshot that shows the expected outcome in S S M 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)

Diagram showing network requirements to set up the link between SQL Server and managed instance.

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

Среда Что следует делать
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, и все корпоративные брандмауэры и (или) шлюзы:

Diagram showing network infrastructure to set up the link between SQL Server and managed instance.

Важно!

  • Порты должны быть открыты в каждом брандмауэре в сетевой среде, включая сервер узла, а также любые корпоративные брандмауэры или шлюзы в сети. В корпоративных средах может потребоваться показать администратору сети сведения в этом разделе, чтобы открыть дополнительные порты на корпоративном сетевом уровне.
  • Хотя вы можете настроить конечную точку на стороне 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 Server и Управляемый экземпляр SQL в SSMS, выполните следующие действия.

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

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

    Screenshot of object explorer in S S M S, with test connection selected in the database link right-click menu.

  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".

установка SSMS

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

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

Screenshot that shows the Azure SQL Managed Instance link option on the context menu.

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

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

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

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

Screenshot of SSMS UI, options page, Azure services, with Azure cloud highlighted.

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