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


Подготовка среды для ссылки - SQL управляемый экземпляр Azure

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

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

Примечание.

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

Требования

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

Внимание

При создании управляемого экземпляра SQL для использования с функцией связывания, учитывайте требования к памяти для любых функций In-Memory 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 /читать
Microsoft.Sql/managedInstances/hybridLink /рид (read), /райт (write), /делит (delete)
Microsoft.Sql/managedInstances/serverTrustCertificates /записать, /удалить, /прочитать

Подготовка экземпляра 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. Выберите флажок "Включить Always On Availability Groups", затем выберите ОК.

    Снимок экрана: свойства групп доступности 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 M S.

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

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

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

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

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

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

Пиринг предпочтительнее, так как он использует магистральную сеть Майкрософт, поэтому с точки зрения подключения нет заметной разницы в задержке между виртуальными машинами в одноранговой виртуальной сети и в одной виртуальной сети. Поддерживается пиринг виртуальных сетей в одном регионе. Пиринг глобальной виртуальной сети поддерживается для экземпляров, размещенных в подсетях, созданных после 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 Managed Instance нельзя.
  • Диапазоны IP-адресов подсетей, где размещаются управляемые инстансы, и SQL Server не должны перекрываться.

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

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

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

  • Полное доменное имя Управляемый экземпляр SQL. Например: managedinstance1.6d710bcf372b.database.windows.net.
  • Управление Microsoft Entra
  • Идентификатор ресурса конечной точки 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 Server.
  • Служба Agent SQL Server должна быть запущена на SQL Server. Поскольку агент включен по умолчанию в управляемом экземпляре SQL, никаких дополнительных действий не требуется.

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

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

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

    Снимок экрана обозревателя объектов в S S M 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.

Снимок экрана, показывающий опцию ссылки на управляемый экземпляр SQL Azure в контекстном меню.

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

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

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

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

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

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

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

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

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