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

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

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

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

Сводка правил

Заголовок правила Уровень Категория Сведения
AnalysisCommandJob Экземпляр Предупреждение Шаг задания AnalysisCommand не поддерживается в Управляемом экземпляре SQL Azure.
AnalysisQueryJob Экземпляр Предупреждение Шаг задания AnalysisQuery не поддерживается в Управляемом экземпляре SQL Azure.
AssemblyFromFile База данных Проблема "CREATE ASSEMBLY" и "ALTER ASSEMBLY" с параметром файла не поддерживаются в Управляемом экземпляре SQL Azure.
BulkInsert База данных Проблема BULK INSERT с источником данных, отличным от BLOB-объектов Azure, не поддерживается в Управляемом экземпляре SQL Azure.
ClrStrictSecurity База данных Предупреждение Сборки среды CLR, помеченные как SAFE или EXTERNAL_ACCESS, считаются небезопасными (UNSAFE).
ComputeClause База данных Предупреждение Предложение COMPUTE больше не поддерживается и было удалено.
CryptographicProvider База данных Проблема Обнаружено использование CREATE CRYPTOGRAPHIC PROVIDER или ALTER CRYPTOGRAPHIC PROVIDER. Это не поддерживается в Управляемом экземпляре SQL Azure.
DatabasePrincipalAlias База данных Проблема Параметр SYS.DATABASE_PRINCIPAL_ALIASES больше не поддерживается и был удален.
DbCompatLevelLowerThan100 База данных Предупреждение Уровень совместимости базы данных ниже 100 не поддерживается.
DisableDefCNSTCHK База данных Проблема Параметр SET DISABLE_DEF_CNST_CHK больше не поддерживается и был удален.
FastFirstRowHint База данных Предупреждение Подсказка запроса FASTFIRSTROW больше не поддерживается и была удалена.
FileStream База данных Проблема FILESTREAM и FileTable не поддерживаются в управляемом экземпляре SQL Azure.
LinkedServerWithNonSQLProvider База данных Проблема Связанный сервер с поставщиком, отличным от SQL Server, не поддерживается в Управляемом экземпляре SQL Azure.
MergeJob Экземпляр Предупреждение Шаг задания Merge не поддерживается в Управляемом экземпляре SQL Azure.
MIDatabaseSize База данных Проблема Управляемый экземпляр SQL Azure не поддерживает размер базы данных размером более 16 ТБ.
MIHeterogeneousMSDTCTransactSQL База данных Проблема Инструкция BEGIN DISTRIBUTED TRANSACTION с удаленным сервером, отличным от SQL Server, не поддерживается в Управляемом экземпляре SQL Azure.
MIHomogeneousMSDTCTransactSQL База данных Проблема Инструкция BEGIN DISTRIBUTED TRANSACTION поддерживается на нескольких серверах для Управляемого экземпляра SQL Azure.
MIInstanceSize Экземпляр Предупреждение Максимальный размер хранилища экземпляров в Управляемом экземпляре SQL Azure не может превышать 32 ТБ.
MultipleLogFiles База данных Проблема Управляемый экземпляр SQL Azure не поддерживает базы данных с несколькими файлами журналов.
NextColumn База данных Проблема Таблицы и столбцы с именем NEXT приводят к ошибке в SQL Azure Управляемом экземпляре.
NonANSILeftOuterJoinSyntax База данных Предупреждение Левое внешнее соединение в формате, отличном от ANSI, больше не поддерживается и было удалено.
NonANSIRightOuterJoinSyntax База данных Предупреждение Правое внешнее соединение, выполненное не по стандарту ANSI, больше не поддерживается и было удалено.
NumDbExceeds500 Экземпляр Предупреждение Управляемый экземпляр SQL Azure поддерживает не более 500 баз данных на экземпляр.
OpenRowsetWithNonBlobDataSourceBulk База данных Проблема Функция OpenRowSet, используемая в массовой операции с источником данных, который не относится к хранилищу BLOB-объектов Azure, не поддерживается в управляемом экземпляре Azure SQL.
OpenRowsetWithNonSQLProvider База данных Проблема OpenRowSet с поставщиком, отличным от SQL, не поддерживается в Управляемом экземпляре SQL Azure.
PowerShellJob Экземпляр Предупреждение Шаг задания PowerShell не поддерживается в Управляемом экземпляре SQL Azure.
QueueReaderJob Экземпляр Предупреждение Шаг задания Queue Reader не поддерживается в Управляемом экземпляре Azure SQL.
RAISERROR База данных Предупреждение Устаревшие вызовы RAISERROR следует заменить современными эквивалентами.
SqlMail База данных Предупреждение Служба SQL Mail больше не поддерживается.
SystemProcedures110 База данных Предупреждение Обнаружены инструкции, ссылающиеся на удаленные системные хранимые процедуры, недоступные в Управляемый экземпляр SQL Azure.
TraceFlags Экземпляр Предупреждение Обнаружены флаги трассировки, не поддерживаемые в Управляемом экземпляре SQL Azure.
TransactSqlJob Экземпляр Предупреждение Шаг задания TSQL включает неподдерживаемые команды в Управляемом экземпляре SQL Azure.
WindowsAuthentication Экземпляр Предупреждение Пользователи базы данных, сопоставленные с аутентификацией Windows (интегрированная безопасность), не поддерживаются в Управляемом экземпляре Azure SQL.
XpCmdshell База данных Проблема xp_cmdshell не поддерживается в управляемом экземпляре Azure SQL.

Задание AnalysisCommand

Заголовок: Шаг задания AnalysisCommand не поддерживается в Управляемом экземпляре SQL Azure.
Категория: предупреждение

Описание
Это шаг задания, который запускает команду Analysis Services. Шаг задания AnalysisCommand не поддерживается в Управляемом экземпляре SQL Azure.

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

Дополнительные сведения: различия агента SQL Server в управляемом экземпляре SQL Azure

Задание AnalysisQuery

Заголовок: Шаг задания AnalysisQuery не поддерживается в Управляемом экземпляре SQL Azure.
Категория: предупреждение

Описание
Это этап задания, который выполняет запрос для службы Analysis Services. Шаг задания AnalysisQuery не поддерживается в Управляемом экземпляре SQL Azure.

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

Дополнительные сведения: различия Агента SQL Server в управляемом экземпляре Azure SQL

Сборка из файла

Заголовок: CREATE ASSEMBLY и ALTER ASSEMBLY с параметром файла не поддерживаются в Управляемом экземпляре SQL Azure.
Категория: Проблема

Описание
Управляемый экземпляр SQL Azure не поддерживает CREATE ASSEMBLY или ALTER ASSEMBLY с параметром файла. Поддерживается двоичный параметр. См. раздел "Затронутые объекты" для конкретного объекта, в котором используется параметр файла.

Рекомендация
Просмотрите объекты с помощью CREATE ASSEMBLY или ALTER ASSEMBLY с параметром файла. Если какие-либо из этих объектов являются обязательными, преобразуйте параметр файла в двоичный параметр. В качестве альтернативы, осуществите миграцию на SQL Server на виртуальных машинах Azure.

Дополнительные сведения: особенности CLR в управляемом экземпляре SQL Azure

BULK INSERT (массовая вставка данных)

Заголовок: Использование BULK INSERT с источником данных BLOB, не относящимся к Azure, не поддерживается в управляющем экземпляре SQL Azure.
Категория: Проблема

Описание
Управляемый экземпляр Azure SQL не может получить доступ к общим ресурсам или папкам Windows. См. раздел "Затронутые объекты" за подробной информацией об использовании инструкций BULK INSERT, которые не ссылаются на Azure blob. Объекты с использованием BULK INSERT, где источником данных не является Хранилище BLOB-объектов Azure, не работают после миграции на Управляемый экземпляр SQL Azure.

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

Дополнительные сведения: различия между Bulk Insert и OPENROWSET в управляемом экземпляре Azure SQL

Безопасность CLR

Заголовок: Сборки среды CLR, помеченные как SAFE или EXTERNAL_ACCESS, считаются небезопасными (UNSAFE)
Категория: предупреждение

Описание
В Управляемом экземпляре SQL Azure применяется строгий режим безопасности CLR. Этот режим включен по умолчанию и вносит изменения, нарушающие совместимость, для баз данных, содержащих пользовательские сборки CLR, отмеченные как БЕЗОПАСНЫЕ (SAFE) или С ВНЕШНИМ ДОСТУПОМ (EXTERNAL_ACCESS).

Рекомендация

Среда CLR использует Code Access Security (CAS) в .NET Framework, которое больше не поддерживается в качестве границы безопасности. Сборка CLR, созданная с PERMISSION_SET = SAFE, может получить доступ к ресурсам внешней системы, вызывать неуправляемый код и получать привилегии sysadmin. ** В SQL Server 2017 (14.x) и более поздних версиях параметр clr strict security повышает безопасность сборок среды CLR. clr strict security включен по умолчанию и рассматривает сборки SAFE и EXTERNAL_ACCESS, как если бы они были помечены UNSAFE. Параметр clr strict security можно отключить для обратной совместимости, но не рекомендуется.

Рекомендуется подписать все сборки сертификатом или асимметричным ключом с соответствующим логином, которому предоставлено разрешение UNSAFE ASSEMBLY в базе данных master. Администраторы SQL Server также могут добавлять сборки в список сборок, которым должен доверять ядро СУБД. Дополнительные сведения см. в разделе sys.sp_add_trusted_assembly.

Предложение COMPUTE

Заголовок: Клаузула COMPUTE больше не поддерживается и удалена.
Категория: предупреждение

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

Рекомендация
Модуль T-SQL необходимо переписать с использованием вместо этого оператора ROLLUP. В следующем коде показано, как COMPUTE можно заменить на ROLLUP:

USE AdventureWorks2022;
GO

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID COMPUTE SUM(UnitPrice),
    SUM(UnitPriceDiscount) BY SalesOrderID;
GO

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount,
    SUM(UnitPrice) AS UnitPrice,
    SUM(UnitPriceDiscount) AS UnitPriceDiscount
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
WITH ROLLUP;

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

Поставщик шифрования

Заголовок: Обнаружено использование CREATE CRYPTOGRAPHIC PROVIDER или ALTER CRYPTOGRAPHIC PROVIDER, которые не поддерживаются в Управляемый экземпляр SQL Azure.
Категория: Проблема

Описание
Управляемый экземпляр SQL Azure не поддерживает инструкции CRYPTOGRAPHIC PROVIDER, так как он не может получить доступ к файлам. Подробности о конкретных применениях инструкций CRYPTOGRAPHIC PROVIDER см. в разделе "Затронутые объекты". Объекты с параметром CREATE CRYPTOGRAPHIC PROVIDER или ALTER CRYPTOGRAPHIC PROVIDER не работают правильно после миграции в Управляемый экземпляр SQL Azure.

Рекомендация
Проверьте объекты с инструкциями CREATE CRYPTOGRAPHIC PROVIDER или ALTER CRYPTOGRAPHIC PROVIDER. В любых таких необходимых объектах исключите использование этих функций. В качестве альтернативы можно выполнить миграцию на SQL Server на виртуальных машинах Azure.

Дополнительные сведения: различия криптографических поставщиков в Управляемом экземпляре SQL Azure

Уровень совместимости базы данных

Заголовок: Уровень совместимости базы данных ниже 100 не поддерживается
Категория: предупреждение

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

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

Дополнительные сведения: Поддерживаемые уровни совместимости в управляемом экземпляре SQL Azure

Псевдоним пользователя базы данных

Заголовок: Параметр SYS.DATABASE_PRINCIPAL_ALIASES больше не поддерживается и был удален.
Категория: Проблема

Описание
sys.database_principal_aliases больше не поддерживается и был удалён из Управляемого экземпляра Azure SQL.

Рекомендация
Использование ролей вместо псевдонимов.

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

опция DISABLE_DEF_CNST_CHK

Заголовок: Параметр SET DISABLE_DEF_CNST_CHK больше не поддерживается и был удален.
Категория: Проблема

Описание
Параметр SET DISABLE_DEF_CNST_CHK больше не поддерживается и был удален из Управляемого экземпляра SQL Azure.

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

Подсказка FASTFIRSTROW

Тема: Указание FASTFIRSTROW в запросе больше не поддерживается и удалено.
Категория: предупреждение

Описание
Указание запроса FASTFIRSTROW больше не поддерживается и было удалено из Управляемого экземпляра SQL Azure.

Рекомендация
Вместо указания запроса FASTFIRSTROW используйте OPTION (FAST n).

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

FILESTREAM

Название: FILESTREAM и FileTable не поддерживаются в управляемом экземпляре SQL Azure.
Категория: Проблема

Описание
Функция FILESTREAM, которая позволяет хранить неструктурированные данные, такие как текстовые документы, изображения и видео в файловой системе NTFS, не поддерживается в Управляемый экземпляр SQL Azure. Эту базу данных нельзя перенести, так как резервная копия, содержащая файловые группы FILESTREAM, не может быть восстановлена в Управляемый экземпляр SQL Azure.

Рекомендация
Отправьте неструктурированные файлы в хранилище BLOB-объектов Azure и сохраните метаданные, связанные с этими файлами (имя, тип, расположение URL-адреса, ключ хранилища и т. д.) в Управляемом экземпляре SQL Azure. Возможно, потребуется повторно спроектировать приложение, чтобы включить потоковую передачу больших двоичных объектов в и из управляемого экземпляра SQL Azure. В качестве альтернативы можно выполнить миграцию на SQL Server на виртуальных машинах Azure.

Дополнительные сведения: Блог о потоковой передаче BLOB-данных в и из SQL Azure

Разнородный MS DTC

Заголовок: Инструкция BEGIN DISTRIBUTED TRANSACTION с удаленным сервером, отличным от SQL Server, не поддерживается в Управляемом экземпляре SQL Azure.
Категория: Проблема

Описание
Распределенная транзакция, начатая с помощью Transact-SQL BEGIN DISTRIBUTED TRANSACTION и управляемая координатор распределенных транзакций (Майкрософт) (MS DTC), не поддерживается в Управляемый экземпляр SQL Azure, если удаленный сервер не является SQL Server.

Рекомендация
Ознакомьтесь с разделом затронутых объектов в службе "Миграция Azure", чтобы увидеть все объекты, использующие BEGIN DISTRIBUTED TRANSACTION. Рассмотрите возможность переноса баз данных-участников в Управляемый экземпляр SQL Azure где поддерживаются распределенные транзакции между несколькими экземплярами. Дополнительные сведения см. в разделе "Транзакции на нескольких серверах" для Управляемый экземпляр SQL Azure.

В качестве альтернативы можно выполнить миграцию на SQL Server на виртуальных машинах Azure.

Однородный MS DTC

Заголовок: Инструкция BEGIN DISTRIBUTED TRANSACTION поддерживается на нескольких серверах для Управляемого экземпляра SQL Azure.
Категория: Проблема

Описание
Распределенная транзакция, запущенная с помощью Transact-SQL команды BEGIN DISTRIBUTED TRANSACTION и управляемая координатор распределенных транзакций (Майкрософт) (MS DTC), поддерживается между несколькими серверами для Управляемый экземпляр SQL Azure.

Рекомендация
Ознакомьтесь с разделом затронутых объектов в службе "Миграция Azure", чтобы увидеть все объекты, использующие BEGIN DISTRIBUTED TRANSACTION. Рассмотрите возможность переноса баз данных-участников в Управляемый экземпляр SQL Azure где поддерживаются распределенные транзакции между несколькими экземплярами. Дополнительные сведения см. в разделе "Транзакции на нескольких серверах" для Управляемый экземпляр SQL Azure.

В качестве альтернативы можно выполнить миграцию на SQL Server на виртуальных машинах Azure.

Связанный сервер (не-SQL поставщик)

Заголовок: Связанный сервер с поставщиком, отличным от SQL Server, не поддерживается в Управляемом экземпляре SQL Azure.
Категория: Проблема

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

Рекомендация
Управляемый экземпляр SQL Azure не поддерживает функциональные возможности связанного сервера, если удаленный поставщик сервера не является SQL Server, например Oracle, Sybase и т. д.

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

  • Определите зависимые базы данных из удаленных серверов, отличных от SQL, и рассмотрите возможность их перемещения в базу данных, перенесенную.
  • Перенос зависимых баз данных в поддерживаемые целевые объекты, такие как Управляемый экземпляр SQL, База данных SQL, Azure Synapse и экземпляры SQL Server.
  • Рассмотрите возможность создания связанного сервера между Управляемый экземпляр SQL Azure и SQL Server на виртуальных машинах Azure (SQL VM). Затем на виртуальной машине SQL создайте связанный сервер с Oracle, Sybase и т. д. Этот подход включает два прыжка, но может использоваться в качестве временного обходного решения.
  • В качестве альтернативы можно выполнить миграцию на SQL Server на виртуальных машинах Azure.

Дополнительные сведения: Различия связанных серверов в Управляемой базе данных SQL Azure

Задача слияния

Заголовок: Шаг выполнения команды слияния не поддерживается в Управляемом экземпляре Azure SQL.
Категория: предупреждение

Описание
Это шаг задания, который активирует агент слияния репликации. Агент слияния репликации — это исполняемый файл программы, который применяет к подписчикам исходный моментальный снимок, находящийся в таблицах базы данных. Он также объединяет инкрементные изменения данных, произошедшие на Издателе после создания начального моментального снимка, и согласовывает конфликты в соответствии с настроенными правилами или с помощью созданного пользовательского разрешателя. Шаг задания Merge не поддерживается в Управляемом экземпляре SQL Azure.

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

Дополнительные сведения: отличия агента SQL Server в управляемом экземпляре SQL Azure

размер базы данных в управляемом экземпляре SQL

Заголовок: Управляемый экземпляр SQL Azure не поддерживает размер базы данных размером более 32 ТБ.
Категория: Проблема

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

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

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

размер экземпляра Управляемый экземпляр SQL

Заголовок. Максимальный размер хранилища экземпляров в Управляемом экземпляре SQL Azure не может превышать 32 ТБ.
Категория: предупреждение

Описание
Размер всех баз данных превышает максимальное зарезервированное хранилище экземпляров.

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

Дополнительные сведения: характеристики оборудования управляемого экземпляра SQL Azure

Несколько файлов журнала

Заголовок: Управляемый экземпляр SQL Azure не поддерживает несколько файлов журналов.
Категория: Проблема

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

Рекомендация
Управляемый экземпляр SQL Azure поддерживает только один журнал для каждой базы данных. Перед переносом этой базы данных в Azure необходимо удалить все файлы журналов, кроме одного.

ALTER DATABASE [database_name] REMOVE FILE [log_file_name]

Дополнительные сведения: неподдерживаемые параметры базы данных в Управляемом экземпляре SQL Azure

Следующий столбец

Заголовок: Таблицы и столбцы с именем NEXT приведут к ошибке в Управляемом экземпляре SQL Azure.
Категория: Проблема

Описание
Обнаружены таблицы или столбцы с именем NEXT. Последовательности, представленные в Microsoft SQL Server, используют функцию NEXT VALUE FOR, соответствующую стандарту ANSI. Таблицы или столбцы с именем NEXT и столбец, которому присвоен псевдоним VALUE без использования ключевого слова AS по стандарту ANSI, могут вызвать ошибку.

Рекомендация
Переписать инструкции, включив ключевое слово AS по стандарту ANSI при создании псевдонимов для таблиц или столбцов. Например, если столбец называется NEXT и этот столбец псевдонимируется как ЗНАЧЕНИЕ, запрос SELECT NEXT VALUE FROM TABLE приводит к ошибке и должен быть перезаписан как SELECT NEXT AS VALUE FROM TABLE. Аналогичным образом, для таблицы с именем NEXT и псевдонимом ЗНАЧЕНИЕ запрос SELECT Col1 FROM NEXT VALUE вызывает ошибку и должен быть переписан как SELECT Col1 FROM NEXT AS VALUE.

Использование левого внешнего соединения в стиле, отличном от ANSI

Заголовок: Левое внешнее соединение в формате, отличном от ANSI, больше не поддерживается и было удалено.
Категория: предупреждение

Описание
Левое внешнее соединение в формате, отличном от ANSI, больше не поддерживается и было удалено из Управляемого экземпляра SQL Azure.

Рекомендация
Используйте синтаксис соединения ANSI.

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

Использование правого внешнего соединения в стиле, отличном от ANSI

Заголовок: Правое внешнее соединение в формате, отличном от ANSI, больше не поддерживается и было удалено.
Категория: предупреждение

Описание
Внешние правые соединения, не соответствующие стандарту ANSI, больше не поддерживаются и удалены из Управляемого экземпляра SQL Azure.

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

Рекомендация
Используйте синтаксис соединения ANSI.

Базы данных превышают 500

Title: Управляемый экземпляр SQL Azure поддерживает не более 500 баз данных на экземпляр.
Категория: предупреждение

Описание
Максимальное количество баз данных, поддерживаемых в Управляемом экземпляре SQL Azure, равно 500, если не достигнуто ограничение размера хранилища экземпляра.

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

Дополнительные сведения: Ограничения ресурсов для управляемого экземпляра Azure SQL

OPENROWSET (источник данных, не BLOB)

Заголовок: Функция OpenRowSet, используемая в массовой операции с источником данных хранилища BLOB-объектов, отличным от Azure, не поддерживается в Управляемом экземпляре SQL Azure.
Категория: Проблема

Описание
OPENROWSET поддерживает массовые операции с помощью встроенного поставщика BULK, позволяющего считывать данные из файла и возвращать их в виде набора строк. OPENROWSET с источником данных не Azure blob storage не поддерживается на Управляемом экземпляре Azure SQL.

Рекомендация
Управляемый экземпляр Azure SQL не может получить доступ к общим ресурсам файлов и папкам Windows, поэтому файлы необходимо импортировать из хранилища BLOB-объектов Azure. Поэтому в функции OPENROWSET поддерживается только источник данных (DATASOURCE) типа больших двоичных объектов. В качестве альтернативы можно выполнить миграцию на SQL Server на виртуальных машинах Azure.

Дополнительные сведения: различия между Bulk Insert и OPENROWSET в управляемом экземпляре Azure SQL

OPENROWSET (не-SQL провайдер)

Заголовок: OpenRowSet с поставщиком, отличным от SQL, не поддерживается в Управляемом экземпляре SQL Azure.
Категория: Проблема

Описание
Это альтернативный метод для доступа к таблицам на связанном сервере и является однократным нерегламентированным методом соединения и удаленного доступа к данным с помощью OLE DB. OpenRowSet, использующий не-SQL поставщика, не поддерживается в управляемом экземпляре Azure SQL.

Рекомендация
Функцию OPENROWSET можно использовать для выполнения запросов только в экземплярах SQL Server (управляемом, локальном или на виртуальных машинах). Поддерживаются поставщики SQLNCLI, SQLNCLI11SQLOLEDBи MSOLEDBSQL (рекомендуется). Драйвер Microsoft OLE DB для SQL Server рекомендуется для новой разработки.

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

Дополнительные сведения: различия между Bulk Insert и OPENROWSET в управляемом экземпляре Azure SQL

Задание PowerShell

Заголовок: Шаг задания PowerShell не поддерживается в Управляемом экземпляре SQL Azure.
Категория: предупреждение

Описание
Это шаг задания, на котором выполняется скрипт PowerShell. Шаг задания PowerShell не поддерживается в Управляемом экземпляре SQL Azure.

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

Дополнительные сведения: отличия агента SQL Server в управляемом экземпляре SQL Azure

Задача чтения очереди

Заголовок: Шаг задания "Чтение очереди" не поддерживается в Управляемом экземпляре SQL Azure.
Категория: предупреждение

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

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

Дополнительные сведения: отличия агента SQL Server в управляемом экземпляре SQL Azure

RAISERROR

Заголовок: Вызовы RAISERROR устаревшего стиля следует заменить современными эквивалентами.
Категория: предупреждение

Описание
Вызовы RAISERROR, такие как этот пример, называются стилем устаревшего типа, потому что они не включают запятые и скобки. RAISERROR 50001 'this is a test'. Этот способ вызова RAISERROR больше не поддерживается и был удален из Управляемого экземпляра SQL Azure.

Рекомендация
Перепишите инструкцию, используя текущий синтаксис RAISERROR, или оцените, является ли современный подход BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH выполнимым.

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

SQL Mail

Title: SQL Mail больше не поддерживается.
Категория: предупреждение

Описание
Служба SQL Mail больше не поддерживается и удаляется в Управляемом экземпляре SQL Azure.

Рекомендация
Использование компонента Database Mail.

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

SystemProcedures110

Заголовок: Обнаружены инструкции, которые ссылаются на удаленные системные хранимые процедуры, недоступные в Управляемом экземпляре SQL Azure.
Категория: предупреждение

Описание
Следующие неподдерживаемые системные и расширенные хранимые процедуры нельзя использовать в Управляемый экземпляр SQL Azure — sp_dboption, , sp_addserversp_dropalias,sp_activedirectory_objsp_activedirectory_scp и sp_activedirectory_start.

Рекомендация
Удалите ссылки на неподдерживаемые системные процедуры, которые были удалены из Управляемого экземпляра SQL Azure.

Дополнительные сведения: Нерекомендуемые функции ядра СУБД в SQL Server

Задание Transact-SQL

Заголовок: Шаг задания TSQL включает неподдерживаемые команды в Управляемом экземпляре SQL Azure.
Категория: предупреждение

Описание
Это этап задания, который запускает скрипты Transact-SQL в заданное время. Шаг задания TSQL включает неподдерживаемые команды, которые не поддерживаются в Управляемый экземпляр SQL Azure.

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

Дополнительные сведения: отличия агента SQL Server в управляемом экземпляре SQL Azure

Флаги трассировки

Заголовок: Обнаружены флаги трассировки, не поддерживаемые в Управляемом экземпляре SQL Azure.
Категория: предупреждение

Описание
Управляемый экземпляр SQL Azure поддерживает только ограниченное число глобальных флагов трассировки. Флаги трассировки сеанса не поддерживаются.

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

Дополнительные сведения см. в разделе "Настройка флагов трассировки с помощью DBCC TRACEON".

Проверка подлинности Windows

Заголовок: Пользователи баз данных, использующие проверку подлинности Windows (интегрированную систему безопасности), не поддерживаются в SQL Managed Instance в Azure.
Категория: предупреждение

Описание
Управляемый экземпляр SQL Azure поддерживает два типа проверки подлинности.

  • Проверка подлинности SQL с использованием имени пользователя и пароля.
  • Проверка подлинности Microsoft Entra, которая использует удостоверения, управляемые идентификатором Microsoft Entra, и поддерживается для управляемых и интегрированных доменов.

Пользователи базы данных, сопоставленные с Windows-аутентификацией (интегрированная безопасность), не поддерживаются в управляемом экземпляре SQL Azure.

Рекомендация
Интегрируйте локальный Active Directory с идентификатором Microsoft Entra. Затем удостоверение Windows можно заменить эквивалентными удостоверениями Microsoft Entra. В качестве альтернативы можно выполнить миграцию на SQL Server на виртуальных машинах Azure.

Дополнительные сведения: Возможности безопасности Управляемого экземпляра SQL

xp_cmdshell

Заголовок: Процедура xp_cmdshell не поддерживается в Управляемом экземпляре SQL Azure.
Категория: Проблема

Описание
xp_cmdshell, который порождает командную оболочку Windows и передает строку для выполнения, не поддерживается в управляемом экземпляре SQL Azure.

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

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