Расширить группу доступности Always On на Управляемый экземпляр SQL Azure (предварительная версия)

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

В этой статье вы узнаете, как расширить группу доступности Always On с несколькими базами данных между SQL Server и Управляемым экземпляром Azure SQL с помощью Управляемый экземпляр link, используя SQL Server Management Studio (SSMS), PowerShell или Azure CLI.

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

Note

Поддержка связывания нескольких баз данных в группе доступности Always On между SQL Server и Управляемый экземпляр SQL Azure в настоящее время доступна в предварительной версии.

Обзор

Когда вы расширяете группу доступности Always On между SQL Server и Управляемый экземпляр SQL Azure, вы создаёте связь, которая реплицирует несколько баз данных в одной группе доступности к целевой реплике. Ссылка использует распределённую группу доступности для воспроизведения изменений почти в реальном времени от текущей первичной копии к копиям базы данных только для чтения на вторичной копии. Это гарантирует, что копии только для чтения на вторичном сервере остаются актуальными по отношению к основному серверу.

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

Как SQL Server, так и Управляемый экземпляр SQL Azure могут быть первыми основными. Создание ссылки из Управляемый экземпляр SQL требует SQL Server 2022 или SQL Server 2025 с необходимым кумулятивным обновлением и соответствующей политикой обновления Управляемый экземпляр SQL. Примеры создания в этой статье начинаются с SQL Server. Они не проходят процесс создания из Управляемый экземпляр SQL. Поддерживается аварийное переключение со сменой ролей между SQL Server и Управляемый экземпляр SQL Azure для экземпляров, настроенных с одинаковыми политиками обновления.

Поддерживаемость

Следующие требования действуют для расширения группы доступности через связь с несколькими базами данных в версии предварительного просмотра. SQL Server поддерживается как на Windows, так и на Linux. Необходимо установить необходимое кумулятивное обновление (CU). Ранние сборки не поддерживали эту функцию.

версия SQL Server Требуемое обновление Поддерживаемые выпуски
SQL Server 2022 (16.x) CU27 или позже Корпоративный и для разработчиков
SQL Server 2025 (17.x) CU9 или позже Корпоративные клиенты и разработчики

Рассмотрим следующее:

  • Стандартное издание не поддерживается, потому что базовые группы доступности поддерживают только одну базу данных.
  • SQL Server 2019 и более ранние версии не поддерживаются для режима связей с несколькими базами данных, поскольку им не хватает необходимой технологии, введённой в SQL Server 2022.
  • Чтобы создать связь из Управляемый экземпляр SQL или выполнить обратную смену ролей на SQL Server, ваш экземпляр Управляемый экземпляр SQL должен использовать политику обновления, соответствующую версии SQL Server. Для односторонней репликации и переключения с SQL Server политика обновления целевой среды должна соответствовать версии SQL Server или быть выше неё.
    • SQL Server 2022 поддерживает репликацию на экземпляры, настроенные с использованием политик SQL Server 2022, SQL Server 2025 и Always-up-to-date.
    • SQL Server 2025 поддерживает репликацию для экземпляров, настроенных с применением политик SQL Server 2025 и Always-up-to-date, но не SQL Server 2022. Вы не сможете воспроизвести данные или вернуться на SQL Server после переключения, если политики не совпадают.

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

Caution

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

Необходимые условия

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

  • Активная подписка Azure. Если у вас ее нет, создайте бесплатную учетную запись.
  • Поддерживаемая версия и издание SQL Server с установленным необходимым обновлением сервиса. Вы можете использовать существующую группу доступности Always On или отдельные базы данных, которые SSMS помещает в новую группу доступности с одним узлом. Группы с ограниченной доступностью не поддерживаются.
  • Управляемый экземпляр SQL Azure с политикой обновления, подходящей для вашего сценария. Политика соответствия требуется, когда Управляемый экземпляр SQL является исходным основным экземпляром или при смене ролей. Начните работу, если у вас нет управляемого экземпляра SQL.
  • SQL Server Management Studio (SSMS) 22.10.2 или более поздней версии.
  • Для скриптовой конфигурации используйте Azure PowerShell с Az module версии 16.3.0 или выше и Az.SQL версии 7.1.0 или новее, или Azure CLI версии 2.90.0 и новее. Вы также можете использовать Azure Cloud Shell. Убедитесь, что установленные модули или CLI соответствуют этим требованиям версии.
  • Правильно подготовленная среда.
  • Для группы доступности с несколькими узлами используется настроенный слушатель группы доступности. При настройке ссылки используйте IP-адрес слушателя, а не IP-адрес отдельной реплики SQL Server. Использование слушателя позволяет каналу продолжать работу после отказа локальной группы доступности.
  • Нет существующих ссылок ни на одной реплике SQL Server, если вы включите режим нескольких баз данных. Перед началом удалите все ссылки, использующие старый режим одной базы данных.
  • Достаточная доступная ёмкость для баз данных и дисковое пространство на целевом управляемом экземпляре для всех баз данных в вашей группе доступности. Проверьте лимиты ресурсов.

Permissions

Для SQL Server требуются разрешения sysadmin .

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

Microsoft.Sql/ ресурс Необходимые разрешения
Microsoft.Sql/managedInstances /чтение, /запись
Microsoft.Sql/managedInstances/hybridCertificate /действие
Microsoft.Sql/managedInstances/databases /просмотр, /удалить, /записать, /полноеВосстановление/действие, /просмотрРезервныхКопий/действие, /подробностиВосстановления/просмотр
Microsoft.Sql/управляемыеЭкземпляры/распределенныеГруппыДоступности /читать, /писать, /удалить, /установитьРоль/действие
Microsoft.Sql/managedInstances/endpointCertificates /читать
Microsoft.Sql/managedInstances/hybridLink /читать, /писать, /удалить
Microsoft.Sql/managedInstances/serverTrustCertificates /записать, /удалить, /прочитать

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

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

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

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

EXEC sys.sp_multidb_milink 1;

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

Чтобы проверить этот параметр, выполните хранимую процедуру без указания параметра на каждой реплике. Он возвращается 1 при включении и 0 при отключении:

EXEC sys.sp_multidb_milink;

Если сохранённая процедура недоступна, убедитесь, что у реплики поддерживается версия SQL Server и установлено совокупное обновление.

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

EXEC sys.sp_multidb_milink 0;

Подготовьте базы данных групп доступности

Настройте каждую базу данных SQL Server, которую хотите реплицировать, в полную модель восстановления, а затем создайте полную резервную копию. Как существующие базы данных групп доступности, так и автономные базы данных требуют такой подготовки. Используйте процедуру резервного копирования SSMS в руководстве по настройке соединения.

Caution

Если ваши базы данных используют прозрачное шифрование данных (TDE), подготовьте сертификаты или ключи шифрования на адрес назначения перед созданием ссылки. Без них связь не сможет воспроизвести зашифрованные базы данных.

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

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

Ссылка поддерживает только репликацию пользовательских баз данных. Репликация системных баз данных не поддерживается. Чтобы реплицировать объекты уровня экземпляра, хранящиеся в master или msdb, создайте их сценарии и запустите скрипты T-SQL на целевом экземпляре.

Настройте слушатель и сертификаты

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

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

Используйте SSMS для рекомендуемой настройки. Мастер автоматизирует множество этапов настройки. Если вам не нужна скриптовая автоматизация, пропустите этот раздел и перейдите к вкладке SSMS в группе «Расширение доступности».

Настройка скриптов — это продвинутый вариант, требующий опыта настройки групп доступности, конечных точек и доверия сертификатов. Выполняйте эти шаги только если используете PowerShell или Azure CLI с SQL Server в качестве основного инструмента.

Чек-лист охватывает как существующие группы доступности, так и автономные базы данных. После того как вы подготовите базы данных, траст и конечную точку, используйте свою существующую группу доступности или создайте её на шаге 4. Затем создайте группу распределённой доступности. Команды создания ссылки PowerShell и Azure CLI не создают для вас группу доступности.

Для скрипта, адаптированного под вашу среду, используйте мастер ссылок SSMS и выберите Script на странице Summary . Просмотрите сгенерированный скрипт и выполните его отдельно.

  1. Включите режим связи с несколькими базами данных на каждой реплике SQL Server или на отдельном экземпляре SQL Server и подготовьте базы данных.
  2. Установить доверие между экземплярами. Следуйте этапам создания сертификатов, обмена открытыми ключами, импорта корневых сертификатов и проверки цепочки сертификатов. Для группы из нескольких узлов применяйте требования к сертификату к каждой реплике SQL Server, а не только к текущей основной.
  3. Обеспечьте безопасность конечной точки зеркалирования базы данных. Если в вашей группе доступности уже есть конечная точка, используйте Изменить существующую конечную точку вместо создания другой. Сохраняйте настроенный порт конечной точки для команды создания соединения.
  4. Подготовьте группу доступности. Если у вас уже есть группа доступности, содержащая все базы данных, которые вы хотите воспроизвести, используйте её повторно и не создавайте новую группу. Если вы начинаете с автономных баз данных, сначала создайте группу доступности на SQL Server. В начальной основной вкладке SQL Server используйте пример с одним узлом CREATE AVAILABILITY GROUP с CLUSTER_TYPE = NONE, но замените FOR DATABASE [<DatabaseName>] полным списком базы данных, например FOR DATABASE [DB01], [DB03], [DB05], [DB07]. Задайте <AGNameOnSQLServer> название новой группе. Запустите этот скрипт перед переходом к созданию группы распределённой доступности. Не запускайте её с существующей группой и не меняйте конфигурацию кластера существующей группы.
  5. Создайте группу распределённой доступности на SQL Server. Используйте начальную основную вкладку SQL Server и начните с инструкции создания группы распределенной доступности. Установите <AGNameOnSQLServer> группу доступности, которую вы повторно использовали или создали на предыдущем шаге. Для группы из нескольких узлов используйте IP-адрес слушателя для <SQLServerIP>. Для группы из одного узла используйте конечную точку экземпляра SQL Server. Сохраните <DAGName> в качестве имени ссылки, а <AGNameOnSQLMI> — в качестве имени группы доступности управляемого экземпляра в приведенной ниже команде создания.
  6. Проверьте группы доступности на SQL Server. Убедитесь, что присутствуют как группа доступности Always On, так и группа распределённой доступности. Затем вернитесь к Расширению группы доступности, выберите PowerShell или Azure CLI и запустите команду создания нескольких баз данных в этой статье вместо команды с одной базой данных из другого руководства.

Расширение группы доступности

Для сохранения записей журнала, необходимых для инициализации, рекомендуется включить флаг трассировки 12381 в поддерживаемых сборках SQL Server перед созданием связей, особенно для крупных баз данных или множества баз данных в режиме связей с несколькими базами данных. Однако этот флаг не является обязательным, и существуют альтернативные способы устранения, перечисленные в руководстве по устранению ошибки 1412. При включённом флаге резервные копии журналов могут продолжаться, но сохраненные записи не становятся повторно использоваемыми. Следите за ростом журнала транзакций SQL Server и свободным местом на диске, а также отключите этот флаг, как только завершится начальное заполнение для всех создаваемых связей.

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

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

Для режима связей с несколькими базами данных явно указывайте MultiDatabase в скриптах и указывайте все имена баз данных в группе доступности. PowerShell по умолчанию использует SingleDatabase, если -LinkMode не указан. Используйте -LinkMode MultiDatabase в PowerShell или --link-mode MultiDatabase в Azure CLI.

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

Не создавайте ссылку в MultiDatabase режиме связи, если только у каждой реплики SQL Server не включён необходимый кумулятивный обновление и режим связи с несколькими базами данных через сохранённую sys.sp_multidb_milink процедуру. Использование этого режима с сборками SQL Server, которые его не поддерживают, может привести к непредсказуемому ведению SQL Server. Сначала проверьте поддержку и включите режим связей с несколькими базами данных .

Используйте мастер ссылок New Управляемый экземпляр SQL в SSMS, чтобы создать ссылку из существующей группы доступности или автономных баз данных на Управляемый экземпляр SQL Azure.

  1. Откройте SSMS и подключитесь к SQL Server. Для группы доступности с несколькими узлами подключайтесь через IP-адрес слушателя. Для автономных баз данных или одноузловой группы подключайтесь к экземпляру SQL Server.

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

    Снимок экрана контекстного меню базы данных в SSMS с выбранной командой New Управляемый экземпляр.

  3. На странице Введение мастера выберите Далее.

  4. На странице «Указать опции ссылок » убедитесь, что режим ссылок с несколькими базами данных включён, и укажите имя вашей ссылки. Флажок режима доступен только для чтения: он отображает параметр sys.sp_multidb_milink, заданный в SQL Server. Режим нельзя включить, выбрав галочку. Если режим не включён, проверьте версию SQL Server и кумулятивное обновление, а также включите эту функцию на всех репликах перед продолжением. Используйте строчные буквы для названия ссылки. Дефисы разрешены, кроме как в начале или в конце. Нажмите кнопку Далее.

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

  5. На странице "Требования" мастер проверяет требования для установления подключения к вашей вторичной системе. Нажмите кнопку "Далее" после проверки всех требований или устраните все требования, которые не выполнены, а затем нажмите кнопку "Повторная проверка".

  6. На странице Select Databases выберите либо существующую группу доступности, либо отдельные базы данных:

    • Выберите AG01 , чтобы воспроизвести все его базы данных, такие как DB01, DB03, DB05 и DB07.
    • Или выберите отдельные DB10 и DB11. При включённом режиме связи с несколькими базами данных SSMS создаёт группу доступности одного узла на текущем экземпляре SQL Server, размещает обе базы данных в ней и реплицирует их через одну связь.

    Просмотрите выбор и выберите «Далее».

    Снимок экрана выбора баз данных, предлагающего существующую группу AG01 или автономные базы данных DB10 и DB11.

  7. На странице «Указать вторичную реплику » выберите « Добавить вторичную реплику». Если управляемый экземпляр SQL — ваш вторичный, войдите в Azure и выберите подписку, группу ресурсов и вторичный управляемый экземпляр SQL, чтобы подключиться к вашему экземпляру.

    Скриншот Specify Secondary Replica, показывающий, что SQL Server является основным, а Управляемый экземпляр SQL — вторичным.

  8. Проверьте настройки конечной точки и выполните оставшиеся шаги проверки, как описано в разделе Настройка связи с SSMS.

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

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

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

Проверьте репликацию

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

В любой из реплик используйте обозреватель объектов в SSMS, чтобы просмотреть синхронизированное состояние каждой реплицированной базы данных. Разверните Always On High Availability и Группы доступности, чтобы просмотреть распределённую группу доступности, созданную для этой связи.

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

Преждевременное усечение журнала во время заполнения может привести к ошибкам 1408 и 1412 в журнале ошибок управляемого экземпляра SQL. В сборках, в которых это поддерживается, флаг трассировки 12381 предотвращает это усечение. Отключите это после завершения инициализации для всех создаваемых подключений и отслеживайте использование журнала транзакций, скорость его роста и объём свободного места на диске, пока этот параметр включён. Резервное копирование журналов может выполняться, пока необходимые записи остаются сохранёнными. Это сохранение не заменяет обычные резервные копии логов после посева. См. Предотвращение преждевременного усечения логарифма.

Добавление баз данных

Используйте мастер SSMS, чтобы добавить базы данных с текущего первичного экземпляра, будь то SQL Server или Управляемый экземпляр SQL. Мастер автоматизирует необходимые изменения. Для расширенной автоматизации используйте PowerShell или Azure CLI. Добавление базы данных — это одна операция на первичной стороне.

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

Добавить базы данных с помощью SSMS

Используйте мастер Add Database to Управляемый экземпляр SQL Azure Link, чтобы добавить базы данных в существующую ссылку с несколькими базами данных:

  1. Подключитесь к текущей основной сети в SSMS. В обозреватель объектов разверните Высокая доступность Always On и Группы доступности.

  2. Кликните правой кнопкой мыши по группе распределённой доступности для вашей ссылки, наведите курсор на ссылку Azure SQL SQL Managed Instance и выберите Добавить базу данных....

    Скриншот контекстного меню группы распределённой доступности в SSMS, показывающий команды «Добавить базу данных» и «Удалить базу данных».

  3. Пройдите Введение и Вход в Azure, затем выберите ссылку на несколько баз данных на странице Выберите ссылку.

  4. На странице Select Databases выберите базы данных, которые хотите добавить. Вы можете добавлять базы данных только с состоянием Ready . Базы данных, уже присутствующие по ссылке, отображаются как Уже часть выбранной ссылки. Устраните все проблемы, связанные с соответствием требованиям, прежде чем продолжить.

    Скриншот мастера Add Database с выбранными DB10 и DB11 и сохраненными существующими участниками связи.

  5. Завершите проверку и просмотрите сводку. Выберите Finish , чтобы выполнить изменение, или выберите Script , чтобы сгенерировать скрипт без выполнения изменений, чтобы можно было просматривать, настраивать и запускать его отдельно. Если вы внесёте изменение в мастере, просмотрите Результаты перед его закрытием.

Добавляйте базы данных с помощью скриптов

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

Когда SQL Server является основным

Используйте T-SQL для добавления каждой базы данных в группу доступности. Ссылка распространяет добавление в Управляемый экземпляр SQL. Дальнейших действий по Управляемый экземпляр SQL не требуется. Не запускайте обновление PowerShell или Azure CLI для этого дополнения.

Когда Управляемый экземпляр SQL является первичным

Используйте PowerShell или Azure CLI для обновления ссылки в Управляемый экземпляр SQL. Ссылка автоматически распространяет добавленные базы данных в группу доступности. Отдельный шаг на SQL Server не требуется. Предоставьте полное запланированное членство, включая все существующие базы данных, которые хотите сохранить, и новые. Предоставленный список заменяет текущее членство. Отсутствие базы данных удаляет её из членства ссылки.

Например, чтобы добавить DB09, когда ссылка уже содержит DB01, DB03, DB05 и DB07, сохраните эти четыре имени в списке, а также добавьте в список DB09. Замените имена ресурсов и баз данных на ваши значения.

Переменная PowerShell переменная Azure CLI Description
$ResourceGroup ResourceGroupName Группа ресурсов, содержащая управляемый экземпляр SQL.
$ManagedInstanceName ManagedInstanceName Название управляемого экземпляра SQL, который размещает ссылку.
$DAGName DAGName Существующее имя ссылки, соответствующее названию распределённой группы доступности, использованному при создании.
$DatabaseNames DatabaseNames Полный список существующих баз данных для сохранения и новых баз данных для добавления. В примере сохраняются DB07, DB09, DB05 и DB03, и добавляется DB01.

Use Update-AzSqlInstanceLink in PowerShell. Повторно используйте $ResourceGroup, $ManagedInstanceName и $DAGName из шага создания или укажите в них группу ресурсов, экземпляр и ссылку, которые хотите обновить:

# Include every existing database to retain and each new database to add.
$DatabaseNames = @("DB01", "DB03", "DB05", "DB07", "DB09")

Update-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $DAGName -Database $DatabaseNames

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

Удаление баз данных

Используйте мастер SSMS на текущем основном устройстве для автоматизации удаления с обеих сторон. Удаление базы данных требует её удаления с ссылки в Управляемый экземпляр SQL и из группы доступности. Удаление только с одной стороны не завершает операцию.

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

Если удалить базу данных по ссылке в Управляемый экземпляр SQL, но оставить её в группе доступности, эта группа становится нездоровой. Полное удаление с обеих сторон. Для удаления с помощью скрипта см. раздел, относящийся к вашему текущему основному узлу.

Удаление баз данных с помощью SSMS

Следующие шаги применимы, независимо от того, является ли SQL Server или Управляемый экземпляр SQL первичным:

  1. Подключитесь к текущей основной сети в SSMS. В обозреватель объектов разверните Высокая доступность Always On и Группы доступности.

  2. Щёлкните правой кнопкой мыши по распределённой группе доступности для ссылки, наведите указатель на Управляемый экземпляр SQL Azure link и выберите Удалить базу данных....

    Скриншот меню распределённой группы доступности с выбранной командой «Удалить базу данных».

  3. В мастере «Удаление базы данных из Управляемый экземпляр SQL Azure Link» выполните шаги «Введение» и «Azure Login», а затем выберите ссылку на шаге «Выбор ссылки».

  4. В разделе «Выберите базы данных» выберите базы данных для удаления. Например, выберите DB05 , чтобы удалить его из ссылки, а затем выберите «Далее».

    Скриншот мастера «Удалить базу данных» с выбранным DB05 для удаления по ссылке.

  5. Завершите Validation, просмотрите Summary и выберите Finish, чтобы выполнить удаление, или Script, чтобы сначала просмотреть сгенерированные команды. Проверьте Результаты и убедитесь в успешном завершении перед закрытием мастера.

Удалять базы данных с помощью скриптов

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

Примеры PowerShell и Azure CLI используют следующие переменные:

Переменная PowerShell переменная Azure CLI Description
$ResourceGroup ResourceGroupName Группа ресурсов, содержащая управляемый экземпляр SQL.
$ManagedInstanceName ManagedInstanceName Название управляемого экземпляра SQL, который размещает ссылку.
$DAGName DAGName Существующее имя ссылки, соответствующее названию распределённой группы доступности, использованному при создании.
$DatabaseNames DatabaseNames Полный список баз данных для сохранения, за исключением тех, что нужно удалить. Примеры исключают DB05 и сохраняют DB01, DB03, DB07, и DB09.

Когда SQL Server является основным

  1. Используйте T-SQL для удаления баз данных из группы доступности.
  2. Используйте PowerShell или Azure CLI, чтобы удалить базы данных с ссылки в Управляемый экземпляр SQL, как показано в этом разделе.

Для шага Управляемый экземпляр SQL предоставьте полный список баз данных для сохранения, опустив только те, которые хотите удалить. Например, если ссылка содержит DB07, DB09, DB05, DB05 и DB03, следующая команда удаляет DB01 и оставляет остальные четыре. Замените имена ресурсов и баз данных на ваши значения.

Используйте Update-AzSqlInstanceLink. Повторно используйте значения $ResourceGroup, $ManagedInstanceName и $DAGName, заданные при создании, или задайте для них значения группы ресурсов, экземпляра и связи, которые вы хотите обновить:

# Include only the databases to retain, excluding DB05.
$DatabaseNames = @("DB01", "DB03", "DB07", "DB09")

Update-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $DAGName -Database $DatabaseNames

Когда Управляемый экземпляр SQL является первичным

  1. Используйте PowerShell или Azure CLI, чтобы удалить базы данных с ссылки в Управляемый экземпляр SQL, как показано в этом разделе.
  2. Используйте T-SQL на SQL Server, чтобы удалить базы данных из группы доступности. Удаление не завершено, пока вы не завершите этот этап.

Для шага Управляемый экземпляр SQL предоставьте полный список баз данных для сохранения, опустив только те, которые хотите удалить. Например, если ссылка содержит DB07, DB09, DB05, DB05 и DB03, следующая команда удаляет DB01 и сохраняет остальные четыре. Замените имена ресурсов и баз данных на ваши значения.

Используйте Update-AzSqlInstanceLink. Повторно используйте $ResourceGroup, $ManagedInstanceName и $DAGName из шага создания либо укажите в них группу ресурсов, экземпляр и ссылку, которые требуется обновить:

# Include only the databases to retain, excluding DB05.
$DatabaseNames = @("DB01", "DB03", "DB07", "DB09")

Update-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $DAGName -Database $DatabaseNames

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

Fail over или переключение на Azure

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

Мониторинг и устранение неполадок репликации

Используйте следующие динамические представления управления (DMV) и вид каталога на SQL Server для проверки основной группы доступности, подключения реплик и состояния репликации каждой базы данных:

View Информация
sys.availability_groups Группы доступности, исключая внутренние группы репликации для каждой базы данных.
sys.dm_hadr_availability_replica_states Состояние роли, связности и синхронизации для основных групп и внутренних групп репликации для каждой базы данных.
sys.dm_hadr_database_replica_states Состояние репликации на уровне базы данных и состояние синхронизации.
sys.dm_hadr_internal_availability_groups Внутренние репликационные группы, созданные для отдельных баз данных в режиме связей с несколькими базами данных.
sys.dm_hadr_internal_availability_replicas Реплики, относящиеся к внутренним группам репликации для каждой базы данных в режиме связей с несколькими базами данных.
SELECT * FROM sys.availability_groups;
SELECT * FROM sys.dm_hadr_availability_replica_states;
SELECT * FROM sys.dm_hadr_database_replica_states;
SELECT * FROM sys.dm_hadr_internal_availability_groups;
SELECT * FROM sys.dm_hadr_internal_availability_replicas;

Если внутренние DMV репликации недоступны или при выполнении хранимой процедуры sys.sp_multidb_milink сообщается, что она недоступна, проверьте установленную на этой реплике версию SQL Server и накопительное обновление. Для общего устранения проблем с подключением и репликацией см. ссылку «Устранение неполадок Управляемый экземпляр».

Limitations

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

  • Имена ссылок должны быть написаны строчными буквами. Дефисы разрешены, но имя не может начинаться или заканчиваться на дефис.
  • Не понижайте ни одну реплику SQL Server ниже SQL Server 2022 CU27 или SQL Server 2025 CU9, если это применимо, пока активна ссылка в режиме нескольких баз данных. Понижение уровня ниже требуемого CU может вызвать непредсказуемые проблемы даже без отказа.
  • Группы с ограниченной доступностью не поддерживаются.
  • Ссылки на одну базу данных и на несколько баз данных не могут сосуществовать на одном экземпляре SQL Server.
  • Нельзя изменить режим ссылки непосредственно. Чтобы переключиться между режимами связей с одной базой данных и с несколькими базами данных, удалите все существующие ссылки, измените режим на каждой реплике SQL Server, а затем воссоздайте ссылки в новом режиме.
  • Когда вы создаёте ссылку для существующей группы доступности, все базы данных этой группы должны быть воспроизведены. Нельзя выбрать только подмножество баз данных в этой группе.
  • Оставшаяся ёмкость базы данных на целевом SQL-управляемом экземпляре ограничивает количество баз данных, которые можно воспроизводить. General Purpose и Business Critical поддерживают до 100 баз данных на экземпляр, а Next-gen General Purpose — до 500. Существующие базы данных засчитываются в эти ограничения. Например, экземпляр с лимитом в 100 баз данных и 10 существующими базами данных может вместить ещё 90 баз данных. Для получения дополнительной информации см. раздел «Лимиты ресурсов».
  • Добавление баз данных в группу доступности сверх доступной емкости целевого экземпляра Управляемый экземпляр SQL по числу баз данных может успешно выполняться на SQL Server, но репликация на Управляемый экземпляр SQL завершается сбоем. Это состояние может привести к несогласованному состоянию связи, что требует ручного удаления нереплицированных баз данных из группы доступности.
  • Добавление баз данных распространяется через ссылку, но удаление базы данных с одной стороны не автоматически удаляет её с другой. Если вы удаляете базу данных из группы доступности, её копия останется в Управляемый экземпляр SQL. Если вы удалите базу данных с ссылки в Управляемый экземпляр SQL, база данных остаётся в группе доступности без репликации через ссылку и требует ручной очистки.
  • При добавлении баз данных к существующей ссылке через SSMS можно добавить только базы данных с состоянием Ready . Нельзя добавлять базы данных, которые принадлежат другой группе доступности или имя которых уже существует в целевом расположении.