Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Управляемый экземпляр SQL Azure
В этой статье описано, как подготовить среду к ссылке Управляемый экземпляр, чтобы можно было реплицировать между SQL Server, установленной в Windows или Linux, и Управляемый экземпляр SQL Azure.
Примечание.
Вы можете автоматизировать подготовку вашей среды для ссылки на Управляемый экземпляр, используя скачиваемый скрипт. Дополнительные сведения см. в блоге об автоматизации настройки ссылок.
Требования
Чтобы создать связь между SQL Server и Управляемый экземпляр SQL Azure, вам потребуется следующее:
- Активная подписка Azure. Если ее нет, создайте бесплатную учетную запись.
- Поддерживаемая версия SQL Server с необходимым обновлением службы.
- Управляемый экземпляр SQL Azure Приступить к работе , если у вас нет одного.
- Сервер, который вы планируете быть начальным первичным. Этот выбор определяет, откуда следует создать ссылку.
- Настройка ссылки из основного экземпляра SQL на вторичный экземпляр SQL Server 2025 поддерживается только с управляемыми экземплярами SQL, настроенными с политикой обновления SQL Server 2025.
- Настройка соединения из основного управляемого экземпляра SQL на вторичный экземпляр SQL Server 2022 поддерживается только начиная с SQL Server 2022 CU10 и для управляемых экземпляров SQL, настроенных в соответствии с политикой обновления SQL Server 2022.
Внимание
При создании управляемого экземпляра SQL для использования с функцией компоновки учитывайте требования к памяти для всех функций SQL Server In-Memory OLTP (онлайн-обработка транзакций). Дополнительные сведения см. в разделе "Обзор ограничений ресурсов Управляемого экземпляра SQL Azure".
Разрешения
Для SQL Server у вас должны быть разрешения sysadmin .
Для управляемого экземпляра SQL Azure вы должны быть членом Соавторы управляемого экземпляра SQL или иметь следующие разрешения для пользовательской роли:
| Microsoft.Sql/ ресурс | Необходимые разрешения |
|---|---|
| Microsoft.Sql/managedInstances | /чтение, /запись |
| Microsoft.Sql/managedInstances/hybridCertificate | /действие |
| Microsoft.Sql/managedInstances/databases | /просмотр, /удалить, /записать, /полноеВосстановление/действие, /просмотрРезервныхКопий/действие, /подробностиВосстановления/просмотр |
| 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, необходимо проверить следующее:
- Вы используете минимальную поддерживаемую версию.
- Вы создали главный ключ базы данных в
masterбазе данных. - Вы включили функцию групп доступности.
- Вы добавили соответствующие флаги трассировки при запуске.
Чтобы эти изменения вступили в силу, необходимо перезапустить 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
Ссылка использует сертификаты для шифрования проверки подлинности и обмена данными между SQL Server и Управляемым экземпляром SQL. Главный ключ базы данных защищает сертификаты, используемые ссылкой. Если у вас уже есть главный ключ базы данных, этот шаг можно пропустить.
Создайте главный ключ базы данных в 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 2017 (14.x) и более поздних версий, поддерживаемых ссылкой.
Если функция групп доступности не включена, выполните следующие шаги, чтобы её включить:
Откройте Диспетчер конфигурации SQL Server.
Выберите элемент Службы SQL Server на панели слева.
Щелкните правой кнопкой мыши службу SQL Server, а затем выберите Свойства.
Перейдите на вкладку Группы доступности Always On.
Выберите флажок "Включить Always On Availability Groups", затем выберите ОК.
- Если при использовании SQL Server 2016 (13.x) и отключен параметр "Включить группы доступности AlwaysOn " с сообщением
This computer is not a node in a failover cluster, выполните дополнительные действия, описанные в разделе "Подготовка предварительных требований SQL Server 2016 — ссылка на управляемый экземпляр SQL Azure". Завершив эти другие действия, вернитесь и повторите этот шаг снова.
- Если при использовании SQL Server 2016 (13.x) и отключен параметр "Включить группы доступности AlwaysOn " с сообщением
Нажмите кнопку "ОК " в диалоговом окне.
Перезапустите службу SQL Server.
Включите флаги трассировки запуска
Чтобы оптимизировать производительность ссылки, рекомендуется включить следующие флаги трассировки при запуске:
-
-T1800: этот флаг трассировки оптимизирует производительность, если файлы журнала для основных и вторичных реплик в группе доступности размещаются на дисках с разными размерами сектора, такими как 512 байтов и 4 КБ. Если основной и вторичный реплики имеют размер сектора диска размером 4 КБ, этот флаг трассировки не требуется. Дополнительные сведения см. здесь: KB3009974. -
-T9567. Этот флаг трассировки включает сжатие потока данных для групп доступности во время автоматического заполнения. Сжатие увеличивает нагрузку на процессор, но может значительно сократить время передачи во время посева.
Примечание.
Сведения о SQL Server на Linux см. в разделе "Включение флагов трассировки".
Чтобы включить эти флаги трассировки при запуске, сделайте следующее:
Откройте диспетчер конфигурации SQL Server.
Выберите элемент Службы SQL Server на панели слева.
Щелкните правой кнопкой мыши службу SQL Server, а затем выберите Свойства.
Перейдите на вкладку Параметры запуска. В поле Укажите параметр запуска введите
-T1800и выберите Добавить, чтобы добавить параметр запуска. Затем введите-T9567и выберите команду Добавить, чтобы добавить другой флаг трассировки. Щелкните Применить, чтобы сохранить изменения.
Щелкните OK, чтобы закрыть окно Свойства.
Для получения дополнительной информации см. синтаксис включения флагов трассировки.
Перезапуск SQL Server и проверка конфигурации
Убедившись, что вы используете поддерживаемую версию SQL Server, включили компонент групп доступности Always On и добавили флаги трассировки при запуске, перезапустите экземпляр SQL Server, чтобы применить все эти изменения:
Откройте Диспетчер конфигурации SQL Server.
Выберите элемент Службы 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:
Настройка сетевого подключения
Чтобы канал работал, у вас должно быть сетевое подключение между SQL Server и Управляемым экземпляром SQL. Выбранный параметр сети зависит от того, находится ли экземпляр SQL Server в сети Azure.
SQL Server на Виртуальных машинах Microsoft Azure
Развертывание SQL Server на виртуальных машинах Azure в той же виртуальной сети Azure, где размещен управляемый экземпляр SQL, является самым простым методом, так как сетевое подключение автоматически существует между двумя экземплярами. Для получения дополнительной информации см. Краткое руководство: настройка виртуальной машины Azure для подключения к Управляемому экземпляру Azure SQL.
Если экземпляр SQL Server на виртуальных машинах Azure находится в другой виртуальной сети из управляемого экземпляра SQL, необходимо подключить две виртуальные сети. Виртуальные сети не должны находиться в одной подписке, чтобы этот сценарий работал.
Существует два варианта подключения виртуальных сетей:
- Пиринговое соединение виртуальных сетей Azure
- VPN-шлюз между виртуальными сетями (портал Azure, PowerShell, Azure CLI).
Пиринг предпочтительнее, так как он использует магистральную сеть Майкрософт. Таким образом, с точки зрения подключения нет заметной разницы в задержке между виртуальными машинами в одноранговой виртуальной сети и в одной виртуальной сети. Поддерживается пиринг виртуальных сетей, находящихся в одном регионе. Пиринг глобальной виртуальной сети поддерживается для экземпляров, размещенных в подсетях, созданных после 22 сентября 2020 г. Дополнительные сведения см. в разделе часто задаваемые вопросы (часто задаваемые вопросы).
SQL Server вне Azure
Если ваш экземпляр SQ Server размещен вне Azure, установите VPN-подключение между SQL Server и Управляемым экземпляром SQL, воспользовавшись одной из этих возможностей:
- VPN-подключение "сеть —сеть";
- Подключение Azure ExpressRoute
Совет
Рекомендуем использовать ExpressRoute для оптимальной производительности сети при репликации данных. Подготовьте шлюз с достаточной пропускной способностью для своего варианта использования.
Сетевые порты между средами
Независимо от механизма подключения существуют требования, которые должны быть соблюдены для обеспечения передачи сетевого трафика между средами.
Правила группы безопасности сети (NSG) в подсети, в которую размещен управляемый экземпляр SQL, должны разрешать:
- Входящий порт 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 (в 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. |
Чтобы открыть порты в брандмауэре Windows, используйте следующий сценарий PowerShell в операционной системе узла Windows экземпляра SQL Server:
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 Managed Instance нельзя.
- Диапазоны IP-адресов подсетей, где размещаются управляемые инстансы, и SQL Server не должны перекрываться.
Добавление URL-адресов в список разрешений
В зависимости от параметров безопасности сети может потребоваться добавить URL-адреса в список разрешений для полного доменного имени управляемого экземпляра SQL и некоторые конечные точки управления ресурсами, используемые Azure.
Ниже перечислены ресурсы, которые следует добавить в список разрешений:
- Полное доменное имя Управляемый экземпляр SQL. Например:
managedinstance.a1b2c3d4e5f6.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, никаких дополнительных действий не требуется.
Рассмотрим следующее:
- Чтобы избежать ложных отрицательных значений, все брандмауэры по сетевому пути должны разрешать трафик протокола ICMP.
- Чтобы избежать ложных срабатываний, все брандмауэры по сетевому пути должны разрешать трафик по проприетарному протоколу SQL Server UCS. Блокировка протокола может привести к успешному тестированию подключения, но соединение создать не удается.
- Дополнительные настройки брандмауэра с защищением на уровне пакетов должны быть правильно настроены для правильного разрешения трафика между SQL Server и Управляемым экземпляром SQL.
Чтобы проверить сетевое подключение между SQL Server и SQL Управляемым экземпляром в SSMS, выполните следующие действия.
Подключитесь к экземпляру, который будет основной репликой в SSMS.
В обозреватель объектов разверните базы данных и щелкните правой кнопкой мыши базу данных, которую вы планируете связать со вторичной. Выберите Задачи>ссылка Управляемый экземпляр SQL Azure>Проверить подключение, чтобы открыть мастер Проверка сети:
Нажмите кнопку "Далее" на странице "Введение" мастера проверки сети.
Если все требования выполнены на странице "Предварительные требования" , нажмите кнопку "Далее". В противном случае устраните любые неудовлетворенные требования, а затем выберите Повторная проверка.
На странице входа выберите "Войти", чтобы подключиться к другому экземпляру, который будет вторичной репликой. Выберите Далее.
При необходимости проверьте сведения на странице "Указать параметры сети" и укажите IP-адрес. Выберите Далее.
На странице "Сводка" просмотрите действия мастера, а затем нажмите кнопку "Готово", чтобы проверить подключение между двумя репликами.
Просмотрите страницу результатов , чтобы проверить наличие подключения между двумя репликами, а затем нажмите кнопку "Закрыть ", чтобы завершить работу.
Внимание
Выполняйте следующие инструкции, только если сетевое подключение между исходной и целевой средами успешно прошло проверку. Если это не так, устраните неполадки с сетевым подключением, прежде чем продолжить.
Перенос сертификата защищенной TDE базы данных (необязательно)
Если вы связываете базу данных SQL Server, защищенную прозрачным шифрованием данных (TDE) с управляемым экземпляром SQL, необходимо перенести соответствующий сертификат шифрования из локального экземпляра или экземпляра SQL Server виртуальной машины Azure в управляемый экземпляр SQL перед использованием ссылки. Подробные инструкции см. в статье "Перенос сертификата защищенной TDE базы данных в Управляемый экземпляр SQL Azure".
Базы данных управляемого экземпляра SQL, зашифрованные с помощью ключей TDE, управляемых службой, не могут быть связаны с SQL Server. Можно связать только зашифрованную базу данных с SQL Server, если она была зашифрована с помощью управляемого клиентом ключа, а целевой сервер имеет доступ к тому же ключу, который используется для шифрования базы данных. Дополнительные сведения см. в статье "Настройка TDE SQL Server с помощью Azure Key Vault".
Примечание.
Azure Key Vault поддерживается SQL Server в Linux, начиная с накопительного обновления 14 для SQL Server 2022.
установка SSMS
SQL Server Management Studio (SSMS) — самый простой способ использовать ссылку Управляемый экземпляр. Установите последнюю версию SQL Server Management Studio (SSMS) на клиентском компьютере.
По завершении установки откройте SSMS и подключитесь к поддерживаемому экземпляру SQL Server. Кликните правой кнопкой мыши на пользовательской базе данных и убедитесь, что в меню появляется опция ссылки на Управляемый экземпляр Azure SQL.
Настройка SSMS для облачных служб для государственных организаций
Если вы хотите развернуть Управляемый экземпляр SQL в облаке для государственных организаций, необходимо изменить параметры SQL Server Management Studio (SSMS), чтобы использовать правильное облако. Если вы не развертываете Управляемый экземпляр SQL в облаке для государственных организаций, пропустите этот шаг.
Чтобы обновить параметры SSMS, выполните следующие действия.
- Откройте SSMS.
- В меню выберите "Сервис" и выберите пункт "Параметры".
- Разверните службы Azure и выберите облако Azure.
- В разделе "Выбор облака Azure" используйте раскрывающийся список для выбора AzureUSGovernment или другого облака для государственных организаций, например AzureChinaCloud:
Если вы хотите вернуться в общедоступное облако, выберите AzureCloud из раскрывающегося списка.
Связанный контент
Чтобы использовать ссылку, выполните следующие действия.
- Настройка связи между SQL Server и Управляемым экземпляром SQL с помощью SSMS
- Настройка связи между SQL Server и Управляемым экземпляром SQL с помощью скриптов
- Переключение на резервную ссылку
- Перейдите по ссылке
- Рекомендации по поддержанию ссылки
Дополнительные сведения о ссылке:
- Обзор ссылки Управляемый экземпляр
- Аварийное восстановление с использованием связи с Управляемым экземпляром
Для других сценариев репликации и миграции рекомендуется: