Различия в T-SQL управляемого экземпляра, ограничения и известные проблемыManaged instance T-SQL differences, limitations, and known issues

В этой статье кратко описаны различия в синтаксисе и поведении между управляемым экземпляром базы данных SQL Azure и локальными ядро СУБД SQL Server.This article summarizes and explains the differences in syntax and behavior between Azure SQL Database managed instance and on-premises SQL Server Database Engine. Вариант развертывания в виде управляемого экземпляра обеспечивает высокий уровень совместимости с локальным ядром СУБД SQL Server.The managed instance deployment option provides high compatibility with on-premises SQL Server Database Engine. В управляемом экземпляре поддерживается большинство функций ядра СУБД SQL Server.Most of the SQL Server database engine features are supported in a managed instance.

Миграция

Существуют некоторые ограничения PaaS, появившиеся в Управляемый экземпляр и некоторые изменения в поведении по сравнению с SQL Server.There are some PaaS limitations that are introduced in Managed Instance and some behavior changes compared to SQL Server. Различия делятся на следующие категории:The differences are divided into the following categories:

Большинство этих функций являются ограничениями архитектуры и представляют функции служб.Most of these features are architectural constraints and represent service features.

На этой странице также объясняются временные известные проблемы , обнаруженные в управляемом экземпляре, которые будут разрешены в будущем.This page also explains Temporary known issues that are discovered in managed instance, which will be resolved in the future.

ДоступностьAvailability

Always On группы доступностиAlways On Availability Groups

Высокий уровень доступности встроен в управляемый экземпляр и не может управляться пользователями.High availability is built into managed instance and can't be controlled by users. Следующие инструкции не поддерживаются:The following statements aren't supported:

BackupBackup

Управляемые экземпляры имеют автоматическое резервное копирование, поэтому пользователи могут создавать полные резервные копии базы данных COPY_ONLY.Managed instances have automatic backups, so users can create full database COPY_ONLY backups. Разностные резервные копии, журналы и моментальные снимки файлов не поддерживаются.Differential, log, and file snapshot backups aren't supported.

  • С помощью управляемого экземпляра можно создать резервную копию базы данных экземпляра только в учетной записи хранилища BLOB-объектов Azure.With a managed instance, you can back up an instance database only to an Azure Blob storage account:
    • Поддерживается только BACKUP TO URL.Only BACKUP TO URL is supported.
    • FILE, TAPEи устройства резервного копирования не поддерживаются.FILE, TAPE, and backup devices aren't supported.
  • Большинство общих вариантов WITH поддерживаются.Most of the general WITH options are supported.
    • COPY_ONLY является обязательным.COPY_ONLY is mandatory.
    • FILE_SNAPSHOT не поддерживается.FILE_SNAPSHOT isn't supported.
    • Параметры ленты: REWIND, NOREWIND, UNLOADи NOUNLOAD не поддерживаются.Tape options: REWIND, NOREWIND, UNLOAD, and NOUNLOAD aren't supported.
    • Параметры конкретного журнала: NORECOVERY, STANDBYи NO_TRUNCATE не поддерживаются.Log-specific options: NORECOVERY, STANDBY, and NO_TRUNCATE aren't supported.

Ограничения:Limitations:

  • С помощью управляемого экземпляра можно создать резервную копию базы данных экземпляра в резервной копии с количеством полос до 32, что достаточно для баз данных размером до 4 ТБ, если используется сжатие резервных копий.With a managed instance, you can back up an instance database to a backup with up to 32 stripes, which is enough for databases up to 4 TB if backup compression is used.

  • Невозможно выполнить BACKUP DATABASE ... WITH COPY_ONLY в базе данных, зашифрованной с помощью прозрачное шифрование данных, управляемого службами (TDE).You can't execute BACKUP DATABASE ... WITH COPY_ONLY on a database that's encrypted with service-managed Transparent Data Encryption (TDE). Управляемые службой TDE принудительное шифрование резервных копий с помощью внутреннего ключа TDE.Service-managed TDE forces backups to be encrypted with an internal TDE key. Ключ не может быть экспортирован, поэтому восстановить резервную копию невозможно.The key can't be exported, so you can't restore the backup. Используйте автоматическое резервное копирование и восстановление на момент времени или используйте управляемую клиентом (BYOK) TDE .Use automatic backups and point-in-time restore, or use customer-managed (BYOK) TDE instead. Также можно отключить шифрование базы данных.You also can disable encryption on the database.

  • Максимальный размер полосы резервного копирования с помощью команды BACKUP в управляемом экземпляре составляет 195 ГБ, что является максимальным размером большого двоичного объекта.The maximum backup stripe size by using the BACKUP command in a managed instance is 195 GB, which is the maximum blob size. Увеличьте количество полосковых линий в команде резервного копирования, чтобы уменьшить размер отдельных полосковых линий и не превышать это ограничение.Increase the number of stripes in the backup command to reduce individual stripe size and stay within this limit.

    Совет

    Чтобы обойти это ограничение, при резервном копировании базы данных из SQL Server в локальной среде или на виртуальной машине можно выполнить следующие действия.To work around this limitation, when you back up a database from either SQL Server in an on-premises environment or in a virtual machine, you can:

    • Создайте резервную копию на DISK вместо резервного копирования на URL.Back up to DISK instead of backing up to URL.
    • Отправьте файлы резервных копий в хранилище BLOB-объектов.Upload the backup files to Blob storage.
    • Восстановление в управляемый экземпляр.Restore into the managed instance.

    Команда Restore в управляемом экземпляре поддерживает большие размеры больших двоичных объектов в файлах резервных копий, так как для хранения загруженных файлов резервных копий используется другой тип больших двоичных объектов.The Restore command in a managed instance supports bigger blob sizes in the backup files because a different blob type is used for storage of the uploaded backup files.

Сведения о резервном копировании с помощью T-SQL см. в статье BACKUP (Transact-SQL).For information about backups using T-SQL, see BACKUP.

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

АудитAuditing

Ниже перечислены основные различия между аудитом в базах данных в Базе данных SQL Azure и базах данных в SQL Server.The key differences between auditing in databases in Azure SQL Database and databases in SQL Server are:

  • С помощью параметра развертывания управляемого экземпляра в базе данных SQL Azure аудит работает на уровне сервера.With the managed instance deployment option in Azure SQL Database, auditing works at the server level. Файлы журнала .xel хранятся в хранилище BLOB-объектов Azure.The .xel log files are stored in Azure Blob storage.
  • При использовании варианта развертывания в виде отдельной базы данных и эластичного пула в Базе данных SQL Azure аудит работает на уровне базы данных.With the single database and elastic pool deployment options in Azure SQL Database, auditing works at the database level.
  • В SQL Server локальных или виртуальных машинах аудит работает на уровне сервера.In SQL Server on-premises or virtual machines, auditing works at the server level. События хранятся в файловой системе или в журналах событий Windows.Events are stored on file system or Windows event logs.

Аудит XEvent в управляемом экземпляре поддерживает целевые объекты хранилища BLOB-объектов Azure.XEvent auditing in managed instance supports Azure Blob storage targets. Журналы файлов и Windows не поддерживаются.File and Windows logs aren't supported.

Основные различия в синтаксисе CREATE AUDIT для аудита в хранилище BLOB-объектов Azure:The key differences in the CREATE AUDIT syntax for auditing to Azure Blob storage are:

  • Предоставляется новый синтаксис TO URL, который можно использовать для указания URL-адреса контейнера хранилища больших двоичных объектов Azure, в который помещаются файлы .xel.A new syntax TO URL is provided that you can use to specify the URL of the Azure Blob storage container where the .xel files are placed.
  • Синтаксис TO FILE не поддерживается, так как управляемый экземпляр не может получить доступ к общим файловым ресурсам Windows.The syntax TO FILE isn't supported because a managed instance can't access Windows file shares.

Дополнительные сведения см. здесь:For more information, see:

СертификатыCertificates

Управляемый экземпляр не может получить доступ к файловым ресурсам и папкам Windows, поэтому применяются следующие ограничения.A managed instance can't access file shares and Windows folders, so the following constraints apply:

  • Файл CREATE FROM/BACKUP TO не поддерживается для сертификатов.The CREATE FROM/BACKUP TO file isn't supported for certificates.
  • CREATE/BACKUP сертификат FILE/ASSEMBLY не поддерживается.The CREATE/BACKUP certificate from FILE/ASSEMBLY isn't supported. Невозможно использовать файлы закрытых ключей.Private key files can't be used.

См. статьи Инструкция CREATE CERTIFICATE (Transact-SQL) и BACKUP CERTIFICATE (Transact-SQL).See CREATE CERTIFICATE and BACKUP CERTIFICATE.

Обходное решение. вместо создания резервной копии сертификата и восстановления резервной копии получите двоичное содержимое сертификата и закрытый ключ, сохраните его в виде SQL Server и создайте из двоичного файла:Workaround: Instead of creating backup of certificate and restoring the backup, get the certificate binary content and private key, store it as .sql file, and create from binary:

CREATE CERTIFICATE  
   FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>)

Учетные данныеCredential

Поддерживаются удостоверения только Azure Key Vault и SHARED ACCESS SIGNATURE.Only Azure Key Vault and SHARED ACCESS SIGNATURE identities are supported. Пользователи Windows не поддерживаются.Windows users aren't supported.

См. статьи CREATE CREDENTIAL (Transact-SQL) и ALTER CREDENTIAL (Transact-SQL).See CREATE CREDENTIAL and ALTER CREDENTIAL.

Поставщики служб шифрованияCryptographic providers

Управляемый экземпляр не может получить доступ к файлам, поэтому создание поставщиков служб шифрования невозможно:A managed instance can't access files, so cryptographic providers can't be created:

Имена входа и пользователиLogins and users

  • Поддерживаются имена входа SQL, созданные с помощью FROM CERTIFICATE, FROM ASYMMETRIC KEYи FROM SID.SQL logins created by using FROM CERTIFICATE, FROM ASYMMETRIC KEY, and FROM SID are supported. См. статью CREATE LOGIN (Transact-SQL).See CREATE LOGIN.

  • Поддерживаются субъекты (имена входа) на сервере Azure Active Directory (Azure AD), созданные с помощью синтаксиса создания имени входа или создания пользователя из имени входа [Azure AD login] .Azure Active Directory (Azure AD) server principals (logins) created with the CREATE LOGIN syntax or the CREATE USER FROM LOGIN [Azure AD Login] syntax are supported. Эти имена входа создаются на уровне сервера.These logins are created at the server level.

    Управляемый экземпляр поддерживает субъекты базы данных Azure AD с синтаксисом CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER.Managed instance supports Azure AD database principals with the syntax CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Эта функция также называется пользователями автономной базы данных Azure AD.This feature is also known as Azure AD contained database users.

  • Имена входа Windows, созданные с помощью синтаксиса CREATE LOGIN ... FROM WINDOWS, не поддерживаются.Windows logins created with the CREATE LOGIN ... FROM WINDOWS syntax aren't supported. Используйте пользователей и имена для входа Azure Active Directory.Use Azure Active Directory logins and users.

  • Пользователь Azure AD, создавший экземпляр, имеет неограниченные права администратора.The Azure AD user who created the instance has unrestricted admin privileges.

  • Пользователи уровня базы данных Azure AD без прав администратора могут создаваться с помощью синтаксиса CREATE USER ... FROM EXTERNAL PROVIDER.Non-administrator Azure AD database-level users can be created by using the CREATE USER ... FROM EXTERNAL PROVIDER syntax. См . раздел Создание пользователя... ОТ внешнего поставщика.See CREATE USER ... FROM EXTERNAL PROVIDER.

  • Участники сервера Azure AD (имена входа) поддерживают функции SQL только в пределах одного управляемого экземпляра.Azure AD server principals (logins) support SQL features within one managed instance only. Функции, требующие взаимодействия между экземплярами, независимо от того, находятся ли они в одном клиенте Azure AD или разных клиентах, не поддерживаются для пользователей Azure AD.Features that require cross-instance interaction, no matter whether they're within the same Azure AD tenant or different tenants, aren't supported for Azure AD users. Ниже приведены примеры таких функций:Examples of such features are:

    • Репликация транзакций SQL.SQL transactional replication.
    • Сервер канала.Link server.
  • Установка имени для входа Azure AD, сопоставленного с группой Azure AD, в качестве владельца базы данных, не поддерживается.Setting an Azure AD login mapped to an Azure AD group as the database owner isn't supported.

  • Поддерживается олицетворение участников уровня сервера Azure AD с помощью других участников Azure AD, например предложения EXECUTE AS .Impersonation of Azure AD server-level principals by using other Azure AD principals is supported, such as the EXECUTE AS clause. Ограничения EXECUTE AS:EXECUTE AS limitations are:

    • ВЫПОЛНЕНИЕ от имени пользователя не поддерживается для пользователей Azure AD, если оно отличается от имени для входа.EXECUTE AS USER isn't supported for Azure AD users when the name differs from the login name. Например, когда пользователь создается с помощью синтаксиса CREATE [Мяадусер] из имени входа [john@contoso.com] и выполняется попытка олицетворения через EXEC от имени USER = мяадусер.An example is when the user is created through the syntax CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] and impersonation is attempted through EXEC AS USER = myAadUser. При создании пользователя на сервере-участнике Azure AD (имя входа) укажите user_name как тот же login_name, что и для входа.When you create a USER from an Azure AD server principal (login), specify the user_name as the same login_name from LOGIN.

    • Только участники уровня SQL Server (имена входа), являющиеся частью роли sysadmin, могут выполнять следующие операции, предназначенные для участников Azure AD:Only the SQL Server-level principals (logins) that are part of the sysadmin role can execute the following operations that target Azure AD principals:

      • EXECUTE AS USER;EXECUTE AS USER
      • EXECUTE AS LOGIN.EXECUTE AS LOGIN
  • Экспорт и импорт базы данных с использованием BACPAC-файлов поддерживается для пользователей Azure AD в управляемом экземпляре с помощью SSMS v 18.4 или более поздней версииили SqlPackage. exe.Database export/import using bacpac files are supported for Azure AD users in managed instance using either SSMS V18.4 or later, or SQLPackage.exe.

    • С помощью BACPAC-файла базы данных поддерживаются следующие конфигурации:The following configurations are supported using database bacpac file:
      • Экспорт и импорт базы данных между разными экземплярами управления в пределах одного домена Azure AD.Export/import a database between different manage instances within the same Azure AD domain.
      • Экспортируйте базу данных из управляемого экземпляра и импортируйте ее в базу данных SQL в том же домене Azure AD.Export a database from managed instance and import to SQL Database within the same Azure AD domain.
      • Экспортируйте базу данных из базы данных SQL и импортируйте ее в управляемый экземпляр в том же домене Azure AD.Export a database from SQL Database and import to managed instance within the same Azure AD domain.
      • Экспорт базы данных из управляемого экземпляра и импорт в SQL Server (версии 2012 или более поздней).Export a database from managed instance and import to SQL Server (version 2012 or later).
        • В этой конфигурации все пользователи Azure AD создаются как субъекты базы данных SQL (пользователи) без имен входа.In this configuration all Azure AD users are created as SQL database principals (users) without logins. Тип пользователей указывается как SQL (отображается как SQL_USER в sys. database_principals).The type of users are listed as SQL (visible as SQL_USER in sys.database_principals). Их разрешения и роли остаются в метаданных базы данных SQL Server и могут использоваться для олицетворения.Their permissions and roles remain in the SQL Server database metadata and can be used for impersonation. Однако они не могут использоваться для доступа к SQL Server и входа в него с помощью учетных данных.However, they cannot be used to access and log in to the SQL Server using their credentials.
  • Только имя входа субъекта уровня сервера, созданное в процессе подготовки управляемого экземпляра, члены ролей сервера, такие как securityadmin или sysadminили другие имена входа с разрешением ALTER ANY LOGIN на уровне сервера, могут создавать субъекты-серверы Azure AD (имена входа) в базе данных master для управляемого экземпляра.Only the server-level principal login, which is created by the managed instance provisioning process, members of the server roles, such as securityadmin or sysadmin, or other logins with ALTER ANY LOGIN permission at the server level can create Azure AD server principals (logins) in the master database for managed instance.

  • Если имя входа является субъектом SQL, только имена входа, являющиеся частью роли sysadmin, могут использовать команду CREATE для создания имен входа для учетной записи Azure AD.If the login is a SQL principal, only logins that are part of the sysadmin role can use the create command to create logins for an Azure AD account.

  • Имя входа Azure AD должно быть членом Azure AD в том же каталоге, который используется для управляемого экземпляра базы данных SQL Azure.The Azure AD login must be a member of an Azure AD within the same directory that's used for Azure SQL Database managed instance.

  • Участники сервера Azure AD (имена входа) отображаются в обозревателе объектов, начиная с версии SQL Server Management Studio 18,0 Предварительная версия 5.Azure AD server principals (logins) are visible in Object Explorer starting with SQL Server Management Studio 18.0 preview 5.

  • Допускается перекрытие субъектов сервера (имен для входа) Azure AD с учетной записью администратора Azure AD.Overlapping Azure AD server principals (logins) with an Azure AD admin account is allowed. Участники сервера Azure AD (имена входа) имеют приоритет над администратором Azure AD при разрешении субъекта и применении разрешений к управляемому экземпляру.Azure AD server principals (logins) take precedence over the Azure AD admin when you resolve the principal and apply permissions to the managed instance.

  • Во время проверки подлинности применяется следующая последовательность действий для разрешения субъекта проверки подлинности:During authentication, the following sequence is applied to resolve the authenticating principal:

    1. Если учетная запись Azure AD существует как непосредственно сопоставленная с субъектом-сервером Azure AD (именем входа), которая присутствует в sys. server_principals как тип "E", предоставьте доступ и примените разрешения участника на сервере Azure AD (имя входа).If the Azure AD account exists as directly mapped to the Azure AD server principal (login), which is present in sys.server_principals as type "E," grant access and apply permissions of the Azure AD server principal (login).
    2. Если учетная запись Azure AD является членом группы Azure AD, сопоставленной с участником сервера Azure AD (именем входа), который имеется в sys. server_principals как тип "X", предоставьте доступ и примените разрешения для имени входа группы Azure AD.If the Azure AD account is a member of an Azure AD group that's mapped to the Azure AD server principal (login), which is present in sys.server_principals as type "X," grant access and apply permissions of the Azure AD group login.
    3. Если учетная запись Azure AD является специальным настроенным на портале администратором Azure AD для управляемого экземпляра, который не существует в системных представлениях управляемых экземпляров, примените специальные разрешения для администратора Azure AD для управляемого экземпляра (устаревший режим).If the Azure AD account is a special portal-configured Azure AD admin for managed instance, which doesn't exist in managed instance system views, apply special fixed permissions of the Azure AD admin for managed instance (legacy mode).
    4. Если учетная запись Azure AD существует как непосредственно сопоставленная с пользователем Azure AD в базе данных, которая присутствует в sys. database_principals как тип "E", предоставьте доступ и примените разрешения для пользователя базы данных Azure AD.If the Azure AD account exists as directly mapped to an Azure AD user in a database, which is present in sys.database_principals as type "E," grant access and apply permissions of the Azure AD database user.
    5. Если учетная запись Azure AD является членом группы Azure AD, сопоставленной с пользователем Azure AD в базе данных, которая содержится в представлении sys. database_principals как тип "X", предоставьте доступ и примените разрешения для имени входа группы Azure AD.If the Azure AD account is a member of an Azure AD group that's mapped to an Azure AD user in a database, which is present in sys.database_principals as type "X," grant access and apply permissions of the Azure AD group login.
    6. Если есть имя входа Azure AD, сопоставленное с учетной записью пользователя Azure AD или учетной записью группы Azure AD, которая разрешается пользователю, который выполняет проверку подлинности, применяются все разрешения из этого имени входа Azure AD.If there's an Azure AD login mapped to either an Azure AD user account or an Azure AD group account, which resolves to the user who's authenticating, all permissions from this Azure AD login are applied.

Ключ службы и главный ключ службыService key and service master key

НастройкаConfiguration

Расширение буферного пулаBuffer pool extension

CollationCollation

Параметр сортировки экземпляра по умолчанию — SQL_Latin1_General_CP1_CI_AS. Этот параметр можно указать как параметр создания.The default instance collation is SQL_Latin1_General_CP1_CI_AS and can be specified as a creation parameter. См. статью Параметры сортировки.See Collations.

Уровни совместимостиCompatibility levels

  • Поддерживаемые уровни совместимости: 100, 110, 120, 130, 140 и 150.Supported compatibility levels are 100, 110, 120, 130, 140 and 150.
  • Уровни совместимости ниже 100 не поддерживаются.Compatibility levels below 100 aren't supported.
  • Уровень совместимости по умолчанию для новых баз данных — 140.The default compatibility level for new databases is 140. Для восстановленных баз данных уровень совместимости остается неизменным, если он был 100 и выше.For restored databases, the compatibility level remains unchanged if it was 100 and above.

См. статью Уровень совместимости инструкции ALTER DATABASE (Transact-SQL)See ALTER DATABASE Compatibility Level.

Зеркальное отображение базы данныхDatabase mirroring

Зеркальное отображение базы данных не поддерживается.Database mirroring isn't supported.

  • Параметры ALTER DATABASE SET PARTNER и SET WITNESS не поддерживаются.ALTER DATABASE SET PARTNER and SET WITNESS options aren't supported.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING не поддерживается.CREATE ENDPOINT … FOR DATABASE_MIRRORING isn't supported.

Дополнительные сведения см. в статьях Зеркальное отображение базы данных ALTER DATABASE (Transact-SQL) и CREATE ENDPOINT (Transact-SQL).For more information, see ALTER DATABASE SET PARTNER and SET WITNESS and CREATE ENDPOINT … FOR DATABASE_MIRRORING.

Параметры базы данныхDatabase options

  • Несколько файлов журнала не поддерживаются.Multiple log files aren't supported.
  • Объекты в памяти не поддерживаются на уровне служб "Общего назначения".In-memory objects aren't supported in the General Purpose service tier.
  • Существует ограничение в 280 файлов на экземпляр общего назначения, что подразумевает максимум 280 файлов на одну базу данных.There's a limit of 280 files per General Purpose instance, which implies a maximum of 280 files per database. К этому ограничению подсчитываются файлы данных и журналов на общего назначения уровне.Both data and log files in the General Purpose tier are counted toward this limit. Критически важный для бизнеса уровень поддерживает 32 767 файлов на одну базу данных.The Business Critical tier supports 32,767 files per database.
  • База данных не может содержать файловые группы, содержащие данные FILESTREAM.The database can't contain filegroups that contain filestream data. Восстановление завершается сбоем, если bak содержит FILESTREAM данные.Restore fails if .bak contains FILESTREAM data.
  • Каждый файл помещается в хранилище BLOB-объектов Azure.Every file is placed in Azure Blob storage. Операции ввода-вывода и пропускная способность каждого файла зависят от размера каждого файла.IO and throughput per file depend on the size of each individual file.

Инструкция CREATE DATABASECREATE DATABASE statement

На CREATE DATABASEприменяются следующие ограничения.The following limitations apply to CREATE DATABASE:

  • Невозможно определить файлы и файловые группы.Files and filegroups can't be defined.

  • Параметр CONTAINMENT не поддерживается.The CONTAINMENT option isn't supported.

  • Параметры WITH не поддерживаются.WITH options aren't supported.

    Совет

    В качестве обходного решения используйте ALTER DATABASE после CREATE DATABASE, чтобы задать параметры базы данных для добавления файлов или установки вложений.As a workaround, use ALTER DATABASE after CREATE DATABASE to set database options to add files or to set containment.

  • Параметр FOR ATTACH не поддерживается.The FOR ATTACH option isn't supported.

  • Параметр AS SNAPSHOT OF не поддерживается.The AS SNAPSHOT OF option isn't supported.

Дополнительные сведения см. в статье CREATE DATABASE (SQL Server Transact-SQL).For more information, see CREATE DATABASE.

Инструкция ALTER DATABASEALTER DATABASE statement

Невозможно задать или изменить некоторые свойства файла:Some file properties can't be set or changed:

  • Путь к файлу не может быть указан в ALTER DATABASE ADD FILE (FILENAME='path') инструкции T-SQL.A file path can't be specified in the ALTER DATABASE ADD FILE (FILENAME='path') T-SQL statement. Удалите FILENAME из сценария, так как управляемый экземпляр автоматически помещает файлы.Remove FILENAME from the script because a managed instance automatically places the files.
  • Имя файла нельзя изменить с помощью инструкции ALTER DATABASE.A file name can't be changed by using the ALTER DATABASE statement.

Следующие параметры задаются по умолчанию и не могут быть изменены.The following options are set by default and can't be changed:

  • MULTI_USER
  • ENABLE_BROKER ON
  • AUTO_CLOSE OFF

Невозможно изменить следующие параметры:The following options can't be modified:

  • AUTO_CLOSE
  • AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
  • AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
  • DISABLE_BROKER
  • EMERGENCY
  • ENABLE_BROKER
  • FILESTREAM
  • HADR
  • NEW_BROKER
  • OFFLINE
  • PAGE_VERIFY
  • PARTNER
  • READ_ONLY
  • RECOVERY BULK_LOGGED
  • RECOVERY_SIMPLE
  • REMOTE_DATA_ARCHIVE
  • RESTRICTED_USER
  • SINGLE_USER
  • WITNESS

Дополнительные сведения см. в статье Параметры инструкции ALTER DATABASE для файлов и файловых групп (Transact-SQL).For more information, see ALTER DATABASE.

Агент SQL ServerSQL Server Agent

  • Включение и отключение агент SQL Server в настоящее время не поддерживается в управляемом экземпляре.Enabling and disabling SQL Server Agent is currently not supported in managed instance. Агент SQL работает постоянно.SQL Agent is always running.
  • Параметры агент SQL Server доступны только для чтения.SQL Server Agent settings are read only. Процедура sp_set_agent_properties не поддерживается в управляемом экземпляре.The procedure sp_set_agent_properties isn't supported in managed instance.
  • ЗаданияJobs
    • Шаги задания T-SQL поддерживаются.T-SQL job steps are supported.
    • Поддерживаются следующие задания репликации:The following replication jobs are supported:
      • Читатель журнала транзакций.Transaction-log reader
      • Моментальный снимокSnapshot
      • Распространитель.Distributor
    • Поддерживаются шаги задания служб SSIS.SSIS job steps are supported.
    • Другие типы шагов заданий в настоящее время не поддерживаются:Other types of job steps aren't currently supported:
      • Шаг задания репликации слиянием не поддерживается.The merge replication job step isn't supported.
      • Читатель очереди пока не поддерживается.Queue Reader isn't supported.
      • Командная оболочка пока не поддерживается.Command shell isn't yet supported.
    • Управляемые экземпляры не могут получить доступ к внешним ресурсам, например к сетевым общим папкам через Robocopy.Managed instances can't access external resources, for example, network shares via robocopy.
    • SQL Server Analysis Services не поддерживаются.SQL Server Analysis Services aren't supported.
  • Уведомления поддерживаются частично.Notifications are partially supported.
  • Уведомление по электронной почте поддерживается, хотя для этого необходимо настроить профиль Database Mail.Email notification is supported, although it requires that you configure a Database Mail profile. Агент SQL Server может использовать только один профиль Database Mail и должен вызываться AzureManagedInstance_dbmail_profile.SQL Server Agent can use only one Database Mail profile, and it must be called AzureManagedInstance_dbmail_profile.
    • Пейджер не поддерживается.Pager isn't supported.
    • NetSend не поддерживается.NetSend isn't supported.
    • Предупреждения пока не поддерживаются.Alerts aren't yet supported.
    • Прокси-серверы не поддерживаются.Proxies aren't supported.
  • Журнал событий не поддерживается.EventLog isn't supported.

В настоящее время следующие функции агента SQL Server не поддерживаются:The following SQL Agent features currently aren't supported:

  • прокси-серверы;Proxies
  • Планирование заданий на неактивном ЦПScheduling jobs on an idle CPU
  • Включение или отключение агентаEnabling or disabling an Agent
  • ОповещенияAlerts

Сведения об агенте SQL Server см. в статье Агент SQL Server.For information about SQL Server Agent, see SQL Server Agent.

ТаблицыTables

Следующие типы таблиц не поддерживаются:The following table types aren't supported:

Сведения о создании и изменении таблиц см. в разделе CREATE TABLE и ALTER TABLE.For information about how to create and alter tables, see CREATE TABLE and ALTER TABLE.

Функциональные возможностиFunctionalities

BULK INSERT/OPENROWSETBulk insert / OPENROWSET

Управляемый экземпляр не может получить доступ к файловым ресурсам и папкам Windows, поэтому файлы необходимо импортировать из хранилища BLOB-объектов Azure:A managed instance can't access file shares and Windows folders, so the files must be imported from Azure Blob storage:

  • DATASOURCE требуется в команде BULK INSERT при импорте файлов из хранилища BLOB-объектов Azure.DATASOURCE is required in the BULK INSERT command while you import files from Azure Blob storage. См. статью BULK INSERT (Transact-SQL).See BULK INSERT.
  • DATASOURCE требуется в функции OPENROWSET при чтении содержимого файла из хранилища BLOB-объектов Azure.DATASOURCE is required in the OPENROWSET function when you read the content of a file from Azure Blob storage. См. статью OPENROWSET (Transact-SQL).See OPENROWSET.
  • OPENROWSET можно использовать для чтения данных из других отдельных баз данных SQL Azure, управляемых экземпляров или экземпляров SQL Server.OPENROWSET can be used to read data from other Azure SQL single databases, managed instances or SQL Server instances. Другие источники, такие как базы данных Oracle или файлы Excel, не поддерживаются.Other sources such as Oracle databases or Excel files are not supported.

Среда CLRCLR

Управляемый экземпляр не может получить доступ к файловым ресурсам и папкам Windows, поэтому применяются следующие ограничения.A managed instance can't access file shares and Windows folders, so the following constraints apply:

Database Mail (db_mail)Database Mail (db_mail)

  • sp_send_dbmail не может отправить вложения с помощью параметра @file_attachments.sp_send_dbmail cannot send attachments using @file_attachments parameter. Локальная файловая система и внешние общие папки или хранилище BLOB-объектов Azure недоступны из этой процедуры.Local file system and external shares or Azure Blob Storage are not accessible from this procedure.
  • Ознакомьтесь с известными проблемами, связанными с параметрами @query и проверкой подлинности.See the known issues related to @query parameter and authentication.

DBCCDBCC

Недокументированные инструкции DBCC, включенные в SQL Server, не поддерживаются в управляемых экземплярах.Undocumented DBCC statements that are enabled in SQL Server aren't supported in managed instances.

  • Поддерживается только ограниченное число глобальных флагов трассировки.Only a limited number of Global Trace flags are supported. Trace flags уровня сеанса не поддерживаются.Session-level Trace flags aren't supported. См. раздел Флаги трассировки.See Trace flags.
  • DBCC TRACEOFF и DBCC TRACEON работают с ограниченным числом глобальных флагов трассировки.DBCC TRACEOFF and DBCC TRACEON work with the limited number of global trace-flags.
  • Инструкция DBCC CHECKDB с параметрами REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST и REPAIR_REBUILD не может быть использована, так как невозможно задать базу данных в режиме SINGLE_USER — см. раздел изменение различий базы данных.DBCC CHECKDB with options REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST, and REPAIR_REBUILD cannot be used because database cannot be set in SINGLE_USER mode - see ALTER DATABASE differences. Потенциальные повреждения базы данных обрабатываются группой поддержки Azure.Potential database corruptions are handled by Azure support team. Если вы увидите повреждение базы данных, которое следует исправить, обратитесь в службу поддержки Azure.Contact Azure support if you are noticing database corruption that should be fixed.

Распределенные транзакцииDistributed transactions

В настоящее время службы MSDTC и эластичные транзакции не поддерживаются в управляемых экземплярах.MSDTC and elastic transactions currently aren't supported in managed instances.

Расширенные событияExtended Events

Некоторые целевые объекты Windows для расширенных событий (XEvents) не поддерживаются:Some Windows-specific targets for Extended Events (XEvents) aren't supported:

  • Целевой объект etw_classic_sync не поддерживается.The etw_classic_sync target isn't supported. Храните файлы .xel в хранилище BLOB-объектов Azure.Store .xel files in Azure Blob storage. См. раздел Целевой объект etw_classic_sync_target.See etw_classic_sync target.
  • Целевой объект event_file не поддерживается.The event_file target isn't supported. Храните файлы .xel в хранилище BLOB-объектов Azure.Store .xel files in Azure Blob storage. См. раздел Целевой объект event_file.See event_file target.

Внешние библиотекиExternal libraries

В базах данных R и Python внешние библиотеки пока не поддерживаются.In-database R and Python, external libraries aren't yet supported. См. статью Изучение служб машины SQL Server.See SQL Server Machine Learning Services.

FILESTREAM и FileTableFilestream and FileTable

  • Данные FILESTREAM не поддерживаются.Filestream data isn't supported.
  • База данных не может содержать файловые группы с FILESTREAM данными.The database can't contain filegroups with FILESTREAM data.
  • FILETABLE не поддерживается.FILETABLE isn't supported.
  • Таблицы не могут содержать типы FILESTREAM.Tables can't have FILESTREAM types.
  • Следующие функции не поддерживаются:The following functions aren't supported:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Дополнительные сведения см. в статьях FILESTREAM (SQL Server) и Таблицы FileTable (SQL Server).For more information, see FILESTREAM and FileTables.

Семантический поиск не поддерживается.Semantic Search isn't supported.

Связанные службыLinked servers

Связанные службы в управляемых экземплярах поддерживают ограниченное число целевых объектов.Linked servers in managed instances support a limited number of targets:

  • Поддерживаемые целевые объекты — это управляемые экземпляры, отдельные базы данных и экземпляры SQL Server.Supported targets are Managed Instances, Single Databases, and SQL Server instances.
  • Связанные серверы не поддерживают распределенные транзакции с возможностью записи (MS DTC).Linked servers don't support distributed writable transactions (MS DTC).
  • Неподдерживаемые целевые объекты — это файлы, Analysis Services и другие РСУБД.Targets that aren't supported are files, Analysis Services, and other RDBMS. Попробуйте использовать собственный импорт CSV из хранилища BLOB-объектов Azure с помощью BULK INSERT или OPENROWSET в качестве альтернативы для импорта файлов.Try to use native CSV import from Azure Blob Storage using BULK INSERT or OPENROWSET as an alternative for file import.

OperationsOperations

  • Транзакции записи между несколькими экземплярами не поддерживаются.Cross-instance write transactions aren't supported.
  • sp_dropserver поддерживается для удаления связанного сервера.sp_dropserver is supported for dropping a linked server. См. статью sp_dropserver (Transact-SQL).See sp_dropserver.
  • Функцию OPENROWSET можно использовать для выполнения запросов только в экземплярах SQL Server.The OPENROWSET function can be used to execute queries only on SQL Server instances. Они могут быть как управляемыми, так и локальными, так и виртуальными машинами.They can be either managed, on-premises, or in virtual machines. См. статью OPENROWSET (Transact-SQL).See OPENROWSET.
  • Функцию OPENDATASOURCE можно использовать для выполнения запросов только в экземплярах SQL Server.The OPENDATASOURCE function can be used to execute queries only on SQL Server instances. Они могут быть как управляемыми, так и локальными, так и виртуальными машинами.They can be either managed, on-premises, or in virtual machines. В качестве поставщика поддерживаются только значения SQLNCLI, SQLNCLI11и SQLOLEDB.Only the SQLNCLI, SQLNCLI11, and SQLOLEDB values are supported as a provider. Например, SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee.An example is SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. См. статью OPENDATASOURCE (Transact-SQL).See OPENDATASOURCE.
  • Связанные серверы нельзя использовать для чтения файлов (Excel, CSV) из общих сетевых папок.Linked servers cannot be used to read files (Excel, CSV) from the network shares. Попробуйте использовать BULK INSERT или OPENROWSET , считывающие CSV-файлы из хранилища BLOB-объектов Azure.Try to use BULK INSERT or OPENROWSET that reads CSV files from Azure Blob Storage. Отслеживание запросов к элементу обратной связи управляемого экземпляра|Track this requests on managed instance Feedback item|

PolyBasePolyBase

Внешние таблицы, которые ссылаются на файлы в HDFS или хранилище BLOB-объектов Azure, не поддерживаются.External tables that reference the files in HDFS or Azure Blob storage aren't supported. Дополнительные сведения о Polybase см. в разделе polybase.For information about PolyBase, see PolyBase.

РепликацияReplication

  • Поддерживаются типы моментальных снимков и двунаправленной репликации.Snapshot and Bi-directional replication types are supported. Репликация слиянием, одноранговая репликация и обновляемые подписки не поддерживаются.Merge replication, Peer-to-peer replication, and updatable subscriptions are not supported.
  • Репликация транзакций доступна для общедоступной предварительной версии управляемого экземпляра с некоторыми ограничениями:Transactional Replication is available for public preview on managed instance with some constraints:
    • Все типы участников репликации (издатель, распространитель, подписчик по запросу и подписчик push-уведомлений) можно разместить на управляемых экземплярах, но издатель и распространитель должны быть либо в облаке, либо в локальной среде.All types of replication participants (Publisher, Distributor, Pull Subscriber, and Push Subscriber) can be placed on managed instances, but the publisher and the distributor must be either both in the cloud or both on-premises.
    • Управляемые экземпляры могут взаимодействовать с последними версиями SQL Server.Managed instances can communicate with the recent versions of SQL Server. Поддерживаемые версии см. здесь.See the supported versions here.
    • Репликация транзакций имеет некоторые Дополнительные требования к сети.Transactional Replication has some additional networking requirements.

Сведения о настройке репликации см. в руководстве по репликации.For information about configuring replication, see the replication tutorial.

Если репликация включена для базы данных в группе отработки отказа, администратор управляемого экземпляра должен очистить все публикации на старом первичном ресурсе и перенастроить их на новом первичном экземпляре после отработки отказа.If replication is enabled on a database in a failover group, the managed instance administrator must clean up all publications on the old primary and reconfigure them on the new primary after a failover occurs. В этом сценарии необходимы следующие действия.The following activities are needed in this scenario:

  1. Останавливает все задания репликации, выполняющиеся в базе данных, если они есть.Stop all replication jobs running on the database, if there are any.

  2. Удалите метаданные подписки из издателя, выполнив следующий скрипт в базе данных издателя:Drop subscription metadata from publisher by running the following script on publisher database:

    EXEC sp_dropsubscription @publication='<name of publication>', @article='all',@subscriber='<name of subscriber>'
    
  3. Удаление метаданных подписки с подписчика.Drop subscription metadata from the subscriber. Выполните следующий скрипт в базе данных подписки на экземпляре подписчика:Run the following script in the subscription database on subscriber instance:

    EXEC sp_subscription_cleanup
       @publisher = N'<full DNS of publisher, e.g. example.ac2d23028af5.database.windows.net>', 
       @publisher_db = N'<publisher database>', 
       @publication = N'<name of publication>'; 
    
  4. Принудительно удалите все объекты репликации из издателя, выполнив следующий скрипт в опубликованной базе данных:Forcefully drop all replication objects from publisher by running the following script in the published database:

    EXEC sp_removedbreplication
    
  5. Принудительно удалить старый распространитель из исходного основного экземпляра (при восстановлении размещения на старом первичном экземпляре, который использовался для создания распространителя).Forcefully drop old distributor from original primary instance (if failing back over to an old primary that used to have a distributor). Выполните следующий скрипт в базе данных master в старом управляемом экземпляре распространителя:Run the following script on the master database in old distributor managed instance:

    EXEC sp_dropdistributor 1,1
    

Инструкция RESTORERESTORE statement

  • Поддерживаемый синтаксис:Supported syntax:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY ONLY
    • RESTORE HEADER ONLY
    • RESTORE LABELONLY ONLY
    • RESTORE VERIFYONLY ONLY
  • Неподдерживаемый синтаксис:Unsupported syntax:
    • RESTORE LOG ONLY
    • RESTORE REWINDONLY ONLY
  • Источник:Source:
    • единственным поддерживаемым вариантом является FROM URL (хранилище BLOB-объектов Azure).FROM URL (Azure Blob storage) is the only supported option.
    • FROM DISK/TAPE или устройство резервного копирования не поддерживаются.FROM DISK/TAPE/backup device isn't supported.
    • Резервные наборы данных не поддерживаются.Backup sets aren't supported.
  • Параметры WITH не поддерживаются, например не DIFFERENTIAL или STATS.WITH options aren't supported, such as no DIFFERENTIAL or STATS.
  • ASYNC RESTORE: восстановление продолжится, даже если соединение с клиентом будет прервано.ASYNC RESTORE: Restore continues even if the client connection breaks. Если подключение разорвано, можно проверить sys.dm_operation_status представление о состоянии операции восстановления, а также для создания и удаления базы данных.If your connection is dropped, you can check the sys.dm_operation_status view for the status of a restore operation, and for a CREATE and DROP database. См. статью sys.dm_operation_status (база данных SQL Azure).See sys.dm_operation_status.

Следующие параметры базы данных задаются или переопределяются, и их нельзя изменить позже:The following database options are set or overridden and can't be changed later:

  • NEW_BROKER, если брокер не включен в BAK File.NEW_BROKER if the broker isn't enabled in the .bak file.
  • ENABLE_BROKER, если брокер не включен в BAK File.ENABLE_BROKER if the broker isn't enabled in the .bak file.
  • AUTO_CLOSE=OFF, AUTO_CLOSE=ONли база данных в BAK-файле.AUTO_CLOSE=OFF if a database in the .bak file has AUTO_CLOSE=ON.
  • RECOVERY FULL, если база данных в BAK-файле имеет SIMPLE или BULK_LOGGED режим восстановления.RECOVERY FULL if a database in the .bak file has SIMPLE or BULK_LOGGED recovery mode.
  • Файловая группа, оптимизированная для памяти, добавляется и называется XTP, если она не находилась в файле source. bak.A memory-optimized filegroup is added and called XTP if it wasn't in the source .bak file.
  • Любая существующая файловая группа, оптимизированная для памяти, переименовывается в XTP.Any existing memory-optimized filegroup is renamed to XTP.
  • Параметры SINGLE_USER и RESTRICTED_USER преобразуются в MULTI_USER.SINGLE_USER and RESTRICTED_USER options are converted to MULTI_USER.

Ограничения:Limitations:

  • Резервные копии поврежденных баз данных могут быть восстановлены в зависимости от типа повреждения, но автоматические резервные копии не будут выполняться до устранения повреждений.Backups of the corrupted databases might be restored depending on the type of the corruption, but automated backups will not be taken until the corruption is fixed. Чтобы предотвратить эту ошибку, убедитесь, что вы запускаете DBCC CHECKDB на исходном экземпляре и используете WITH CHECKSUM резервного копирования.Make sure that you run DBCC CHECKDB on the source instance and use backup WITH CHECKSUM in order to prevent this issue.
  • Восстановление .BAK файла базы данных, содержащего все ограничения, описанные в этом документе (например, FILESTREAM или FILETABLE объекты), невозможно восстановить на Управляемый экземпляр.Restore of .BAK file of a database that contains any limitation described in this document (for example, FILESTREAM or FILETABLE objects) cannot be restored on Managed Instance.
  • не удается восстановить .BAK файлы, содержащие несколько резервных наборов данных..BAK files that contain multiple backup sets can't be restored.
  • не удается восстановить .BAK файлы, содержащие несколько файлов журнала..BAK files that contain multiple log files can't be restored.
  • Резервные копии, содержащие базы данных размером более 8 ТБ, активные объекты OLTP в памяти или количество файлов, размер которых превышает 280 файлов на экземпляр, не могут быть восстановлены на экземпляре общего назначения.Backups that contain databases bigger than 8 TB, active in-memory OLTP objects, or number of files that would exceed 280 files per instance can't be restored on a General Purpose instance.
  • Резервные копии, содержащие базы данных размером более 4 ТБ или объекты OLTP в памяти с общим размером, превышающим размер, описанный в разделе ограничения ресурсов , не могут быть восстановлены в критически важный для бизнеса экземпляре.Backups that contain databases bigger than 4 TB or in-memory OLTP objects with the total size larger than the size described in resource limits cannot be restored on Business Critical instance. Дополнительные сведения о инструкциях RESTORE см. в разделе инструкции RESTORE.For information about restore statements, see RESTORE statements.

Важно!

Те же ограничения применяются ко встроенной операции восстановления на момент времени.The same limitations apply to built-in point-in-time restore operation. Например, база данных общего назначения более 4 ТБ не может быть восстановлена в экземпляре критически важный для бизнеса.As an example, General Purpose database greater than 4 TB cannot be restored on Business Critical instance. Критически важный для бизнеса базу данных с файлами в памяти OLTP или более 280 файлов нельзя восстановить в экземпляре общего назначения.Business Critical database with In-memory OLTP files or more than 280 files cannot be restored on General Purpose instance.

Компонент Service brokerService broker

Компонент Service Broker между экземплярами не поддерживается:Cross-instance service broker isn't supported:

  • sys.routes: в качестве необходимого компонента необходимо выбрать адрес из каталога sys. routes.sys.routes: As a prerequisite, you must select the address from sys.routes. Адрес должен быть ЛОКАЛЬным по отношению к каждому маршруту.The address must be LOCAL on every route. См. статью sys.routes (Transact-SQL).See sys.routes.
  • CREATE ROUTE: нельзя использовать CREATE ROUTE с ADDRESS, кроме LOCAL.CREATE ROUTE: You can't use CREATE ROUTE with ADDRESS other than LOCAL. См. статью CREATE ROUTE (Transact-SQL).See CREATE ROUTE.
  • ALTER ROUTE: нельзя использовать ALTER ROUTE с ADDRESS, кроме LOCAL.ALTER ROUTE: You can't use ALTER ROUTE with ADDRESS other than LOCAL. См. статью ALTER ROUTE (Transact-SQL).See ALTER ROUTE.

Хранимые процедуры, функции и триггерыStored procedures, functions, and triggers

Системные функции и переменныеSystem functions and variables

Следующие переменные, функции и представления возвращают различные результаты:The following variables, functions, and views return different results:

  • SERVERPROPERTY('EngineEdition') возвращает значение 8.SERVERPROPERTY('EngineEdition') returns the value 8. Это свойство уникально идентифицирует управляемый экземпляр.This property uniquely identifies a managed instance. См. статью SERVERPROPERTY (Transact-SQL).See SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') возвращает значение NULL, так как понятие экземпляра в том виде, в котором оно существует для SQL Server, не применяется к управляемому экземпляру.SERVERPROPERTY('InstanceName') returns NULL because the concept of instance as it exists for SQL Server doesn't apply to a managed instance. См. статью SERVERPROPERTY (Transact-SQL).See SERVERPROPERTY('InstanceName').
  • @@SERVERNAME возвращает полное имя (Connected) DNS, например my-managed-instance.wcus17662feb9ce98.database.windows.net.@@SERVERNAME returns a full DNS "connectable" name, for example, my-managed-instance.wcus17662feb9ce98.database.windows.net. См. статью @SERVERNAME.See @@SERVERNAME.
  • SYS.SERVERS возвращает полное имя "Connected" DNS, например myinstance.domain.database.windows.net для свойств "Name" и "data_source".SYS.SERVERS returns a full DNS "connectable" name, such as myinstance.domain.database.windows.net for the properties "name" and "data_source." См. статью sys.servers (Transact-SQL).See SYS.SERVERS.
  • @@SERVICENAME возвращает значение NULL, так как концепция службы в том виде, в котором она существует для SQL Server, не применяется к управляемому экземпляру.@@SERVICENAME returns NULL because the concept of service as it exists for SQL Server doesn't apply to a managed instance. См. статью @SERVICENAME.See @@SERVICENAME.
  • SUSER_ID поддерживается.SUSER_ID is supported. Он возвращает значение NULL, если имя входа Azure AD отсутствует в sys. syslogins.It returns NULL if the Azure AD login isn't in sys.syslogins. См. статью Идентификатор SUSER_ID (Transact-SQL).See SUSER_ID.
  • SUSER_SID не поддерживается.SUSER_SID isn't supported. Возвращаются неверные данные, что является временной известной проблемой.The wrong data is returned, which is a temporary known issue. См. статью SUSER_SID (Transact-SQL).See SUSER_SID.

Ограничения средыEnvironment constraints

ПодсетьSubnet

Виртуальная сетьVNET

  • Виртуальную сеть можно развернуть с помощью модели ресурсов — классическая модель для виртуальной сети не поддерживается.VNet can be deployed using Resource Model - Classic Model for VNet is not supported.
  • После создания управляемого экземпляра перемещение управляемого экземпляра или виртуальной сети в другую группу ресурсов или подписку не поддерживается.After a managed instance is created, moving the managed instance or VNet to another resource group or subscription is not supported.
  • Некоторые службы, такие как среды службы приложений, приложения логики и управляемые экземпляры (используемые для георепликации, репликации транзакций или через связанные серверы), не могут получить доступ к управляемым экземплярам в разных регионах, если их виртуальных сетей подключены с помощью глобального пиринга.Some services such as App Service Environments, Logic apps, and managed instances (used for Geo-replication, Transactional replication, or via linked servers) cannot access managed instances in different regions if their VNets are connected using global peering. Вы можете подключаться к этим ресурсам через ExpressRoute или VNet-VNet через шлюзы виртуальной сети.You can connect to these resources via ExpressRoute or VNet-to-VNet through VNet Gateways.

БАЗЕTEMPDB

Максимальный размер файла tempdb не может превышать 24 ГБ на ядро на уровне общего назначения.The maximum file size of tempdb can't be greater than 24 GB per core on a General Purpose tier. Максимальный размер tempdb на уровне критически важный для бизнеса ограничивается размером хранилища экземпляра.The maximum tempdb size on a Business Critical tier is limited by the instance storage size. Tempdb размер файла журнала ограничен 120 ГБ на уровне общего назначения.Tempdb log file size is limited to 120 GB on General Purpose tier. Некоторые запросы могут возвращать ошибку, если им требуется более 24 ГБ на ядро в tempdb или если они создают более 120 ГБ данных журнала.Some queries might return an error if they need more than 24 GB per core in tempdb or if they produce more than 120 GB of log data.

Журналы ошибокError logs

Управляемый экземпляр помещает подробные сведения в журналы ошибок.A managed instance places verbose information in error logs. Существует множество внутренних системных событий, которые регистрируются в журнале ошибок.There are many internal system events that are logged in the error log. Используйте пользовательскую процедуру для чтения журналов ошибок, которые отфильтровывают некоторые ненужные записи.Use a custom procedure to read error logs that filters out some irrelevant entries. Дополнительные сведения см. в разделе управляемый экземпляр — sp_readmierrorlog или расширение управляемого экземпляра (Предварительная версия) для Azure Data Studio.For more information, see managed instance – sp_readmierrorlog or managed instance extension(preview) for Azure Data Studio.

Известные проблемыKnown issues

Ограничения памяти выполняющейся в памяти OLTP не применяютсяIn-memory OLTP memory limits are not applied

Дата: Октябрь 2019Date: Oct 2019

Критически важный для бизнеса уровня служб не будет правильно применять максимальные ограничения памяти для оптимизированных для памяти объектов в некоторых случаях.Business Critical service-tier will not correctly apply max memory limits for memory-optimized objects in some cases. Управляемый экземпляр может позволить рабочей нагрузке использовать больше памяти для операций OLTP в памяти, что может повлиять на доступность и стабильность экземпляра.Managed instance may enable workload to use more memory for In-memory OLTP operations, which may affect availability and stability of the instance. Запросы выполняющейся в памяти OLTP, которые достигли ограничений, могут не завершаться сбоем немедленно.In-memory OLTP queries that are reaching the limits might not fail immediately. Эта проблема будет исправлена в ближайшее время.This issue will be fixed soon. Запросы, в которых используется больше памяти OLTP в памяти, будут завершаться сбоем быстрее, если достигнут предел.The queries that use more In-memory OLTP memory will fail sooner if they reach the limits.

Обходное решение. отслеживайте использование хранилища выполняющейся в памяти OLTP с помощью SQL Server Management Studio , чтобы убедиться, что Рабочая нагрузка не использует больше доступной памяти.Workaround: Monitor In-memory OLTP storage usage using SQL Server Management Studio to ensure that the workload is not using more than available memory. Увеличьте ограничения памяти, зависящие от числа виртуальных ядер, или оптимизируйте рабочую нагрузку для использования меньшего объема памяти.Increase the memory limits that depend on the number of vCores, or optimize your workload to use less memory.

При попытке удаления непустого файла возвращена неверная ошибкаWrong error returned while trying to remove a file that is not empty

Дата: Октябрь 2019Date: Oct 2019

SQL Server и Управляемый экземпляр не позволяют пользователю удалять непустые файлы.SQL Server/Managed Instance don't allow user to drop a file that is not empty. При попытке удаления непустого файла данных с помощью оператора ALTER DATABASE REMOVE FILE Msg 5042 – The file '<file_name>' cannot be removed because it is not empty ошибка не будет возвращена немедленно.If you try to remove a non-empty data file using ALTER DATABASE REMOVE FILE statement, the error Msg 5042 – The file '<file_name>' cannot be removed because it is not empty will not be immediately returned. Управляемый экземпляр будет пытаться удалить файл, и операция завершится ошибкой после 30 мин с Internal server error.Managed Instance will keep trying to drop the file and the operation will fail after 30min with Internal server error.

Инструкции по решению: удалите содержимое файла с помощью команды DBCC SHRINKFILE (N'<file_name>', EMPTYFILE).Workaround: Remove the content of the file using DBCC SHRINKFILE (N'<file_name>', EMPTYFILE) command. Если это единственный файл в файловой группе, необходимо удалить данные из таблицы или секции, связанной с этой файловой группой, перед сжатием файла и при необходимости загрузить эти данные в другую таблицу или секцию.If this is the only file in the filegroup you would need to delete data from the table or partition associated to this filegroup before you shrink the file, and optionally load this data into another table/partition.

Изменение уровня служб и операций создания экземпляра заблокировано текущим восстановлением базы данныхChange service tier and create instance operations are blocked by ongoing database restore

Дата: Sep 2019Date: Sep 2019

Текущая инструкция RESTORE, процесс миграции данных миграции служб и встроенное восстановление до точки во времени приведет к блокировке обновления уровня служб или изменения размера существующего экземпляра и создания новых экземпляров до завершения процесса восстановления.Ongoing RESTORE statement, Data Migration Service migration process, and built-in point-in time restore will block updating service tier or resize of the existing instance and creating new instances until restore process finishes. Процесс восстановления блокирует эти операции с управляемыми экземплярами и пулами экземпляров в той же подсети, где выполняется процесс восстановления.Restore process will block these operations on the Managed instances and instance pools in the same subnet where restore process is running. Экземпляры в пулах экземпляров не затрагиваются.The instances in instance pools are not affected. Операции создания или изменения уровня служб не будут завершаться сбоем или превышено время ожидания — они будут продолжены после завершения или отмены процесса восстановления.Create or change service tier operations will not fail or timeout - they will proceed once the restore process is completed or canceled.

Решение. Дождитесь завершения процесса восстановления или отмените процесс восстановления, если операция создания или обновления уровня службы имеет более высокий приоритет.Workaround: Wait until the restore process finishes, or cancel the restore process if creation or update service-tier operation has higher priority.

Resource Governor на уровне служб критически важный для бизнеса может потребоваться перенастроить после отработки отказаResource Governor on Business Critical service tier might need to be reconfigured after failover

Дата: Sep 2019Date: Sep 2019

Функция Resource Governor , которая позволяет ограничить ресурсы, назначенные пользовательской рабочей нагрузке, может неправильно классифицировать определенную рабочую нагрузку пользователя после отработки отказа или изменения уровня обслуживания, инициированного пользователем (например, изменение максимального Виртуальное ядро или максимального размера хранилища экземпляра).Resource Governor feature that enables you to limit the resources assigned to the user workload might incorrectly classify some user workload after failover or user-initiated change of service tier (for example, the change of max vCore or max instance storage size).

Инструкции по решению: запустите ALTER RESOURCE GOVERNOR RECONFIGURE периодически или в рамках задания агента SQL Server, которое ВЫПОЛНЯЕТ задачу SQL при запуске экземпляра, если используется Resource Governor.Workaround: Run ALTER RESOURCE GOVERNOR RECONFIGURE periodically or as part of SQL Agent Job that executes the SQL task when the instance starts if you are using Resource Governor.

После обновления уровня службы необходимо повторно инициализировать диалоговые окна межбазовых Service BrokerCross-database Service Broker dialogs must be re-initialized after service tier upgrade

Дата: Авг 2019Date: Aug 2019

Межбазовые Service Broker диалоговые окна перестают предоставлять сообщения службам в других базах данных после изменения уровня служб.Cross-database Service Broker dialogs will stop delivering the messages to the services in other databases after change service tier operation. Сообщения не теряются , и их можно найти в очереди отправителя.The messages are not lost and they can be found in the sender queue. Любое изменение размера хранилища виртуальных ядер или экземпляра в Управляемый экземпляр приведет к изменению значения service_broke_guid в представлении sys. databases для всех баз данных.Any change of vCores or instance storage size in Managed Instance, will cause service_broke_guid value in sys.databases view to be changed for all databases. Все DIALOG, созданные с помощью инструкции BEGIN DIALOG , которая ссылается на брокеры служб в другой базе данных, прекратят доставку сообщений целевой службе.Any DIALOG created using BEGIN DIALOG statement that references Service Brokers in other database will stop delivering messages to the target service.

Обходной путь: Перед обновлением уровня службы и повторной их инициализацией после этого отключите все действия, использующие диалоговые окна межбазовых Service Broker.Workaround: Stop any activity that uses cross-database Service Broker dialog conversations before updating service tier and re-initialize them after. Если остались сообщения, которые не доставляются после изменения уровня службы, прочтите сообщения из очереди источника и повторно отправьте их в целевую очередь.If there are remaining messages that are undelivered after service tier change, read the messages from the source queue and resend them to the target queue.

Имперсонификатион типов входа Azure AD не поддерживаетсяImpersonification of Azure AD login types is not supported

Дата: 2019 июляDate: July 2019

Олицетворение с использованием EXECUTE AS USER или EXECUTE AS LOGIN следующих субъектов AAD не поддерживается:Impersonation using EXECUTE AS USER or EXECUTE AS LOGIN of following AAD principals is not supported:

  • Пользователи AAD с псевдонимами.Aliased AAD users. В этом случае возвращается следующая ошибка 15517.The following error is returned in this case 15517.
  • Имена входа и пользователей AAD, основанные на приложениях AAD или субъектах-службах.AAD logins and users based on AAD applications or service principals. В этом случае возвращаются следующие ошибки 15517 и 15406.The following errors are returned in this case 15517 and 15406.

параметр @query не поддерживается в sp_send_db_mail@query parameter not supported in sp_send_db_mail

Дата: Апрель 2019Date: April 2019

Параметр @query в процедуре sp_send_db_mail не работает.The @query parameter in the sp_send_db_mail procedure doesn't work.

После географической отработки отказа необходимо перенастроить репликацию транзакцийTransactional Replication must be reconfigured after geo-failover

Дата: Мар 2019Date: Mar 2019

Если репликация транзакций включена для базы данных в группе автоматической отработки отказа, администратор управляемого экземпляра должен очистить все публикации на старом первичном ресурсе и перенастроить их на новом первичном ресурсе после отработки отказа в другой регион.If Transactional Replication is enabled on a database in an auto-failover group, the managed instance administrator must clean up all publications on the old primary and reconfigure them on the new primary after a failover to another region occurs. Дополнительные сведения см. в разделе репликация .See Replication for more details.

Имена входа и пользователи AAD не поддерживаются в SSDTAAD logins and users are not supported in SSDT

Дата: 2019 ноябряDate: Nov 2019

SQL Server Data Tools не полностью поддерживают имена входа и пользователей Azure Active Directory.SQL Server Data Tools don't fully support Azure Active directory logins and users.

Во время операции восстановления используется временная база данныхTemporary database is used during RESTORE operation

При восстановлении базы данных в Управляемый экземпляр Служба восстановления сначала создаст пустую базу данных с нужным именем, чтобы выделить имя экземпляра.When a database is restoring on Managed Instance, the restore service will first create an empty database with the desired name to allocate the name on the instance. Через некоторое время эта база данных будет удалена и восстановлена фактическая база данных.After some time, this database will be dropped and restoring of the actual database will be started. База данных, которая находится в состоянии восстановления , будет иметь случайное значение идентификатора GUID вместо имени.The database that is in Restoring state will temporary have a random GUID value instead of name. После завершения процесса восстановления временное имя будет изменено на нужное имя, указанное в RESTORE инструкции.The temporary name will be changed to the desired name specified in RESTORE statement once the restore process completes. На начальном этапе пользователь может получить доступ к пустой базе данных и даже создать таблицы или загрузить данные в эту базу данных.In the initial phase, user can access the empty database and even create tables or load data in this database. Эта временная база данных будет удалена, когда служба восстановления запустит второй этап.This temporary database will be dropped when the restore service starts the second phase.

Инструкции по решению: не пытайтесьполучить доступ к восстанавливаемой базе данных до тех пор, пока не будет показано, что восстановление завершено.Workaround: Do not access the database that you are restoring until you see that restore is completed.

Структура и содержимое базы данных TEMPDB создано повторноTEMPDB structure and content is re-created

tempdb база данных всегда разделяется на 12 файлов данных, и структура файла не может быть изменена.The tempdb database is always split into 12 data files and the file structure cannot be changed. Невозможно изменить максимальный размер на файл, и новые файлы нельзя добавить в tempdb.The maximum size per file can't be changed, and new files cannot be added to tempdb. Tempdb всегда создается повторно как пустая база данных при запуске или отработки отказа экземпляра, а любые изменения, внесенные в tempdb, не сохраняются.Tempdb is always re-created as an empty database when the instance starts or fails over, and any changes made in tempdb will not be preserved.

Превышение дискового пространства с небольшими файлами баз данныхExceeding storage space with small database files

инструкции CREATE DATABASE, ALTER DATABASE ADD FILEи RESTORE DATABASE могут завершиться ошибкой, так как экземпляр может достигнуть ограничения хранилища Azure.CREATE DATABASE, ALTER DATABASE ADD FILE, and RESTORE DATABASE statements might fail because the instance can reach the Azure Storage limit.

Каждый управляемый экземпляр общего назначения имеет до 35 ТБ хранилища, зарезервированного для дискового пространства Azure уровня "Премиум".Each General Purpose managed instance has up to 35 TB of storage reserved for Azure Premium Disk space. Каждый файл базы данных размещается на отдельном физическом диске.Each database file is placed on a separate physical disk. Поддерживаются диски размером 128 ГБ, 256 ГБ, 512 ГБ, 1 ТБ или 4 ТБ.Disk sizes can be 128 GB, 256 GB, 512 GB, 1 TB, or 4 TB. Неиспользуемое пространство на диске не заряжено, но общая сумма размеров дисков Azure уровня "Премиум" не может превышать 35 ТБ.Unused space on the disk isn't charged, but the total sum of Azure Premium Disk sizes can't exceed 35 TB. В некоторых случаях управляемый экземпляр, для которого не требуется 8 ТБ, может превысить ограничение в 35 ТБ на размер хранилища из-за внутренней фрагментации.In some cases, a managed instance that doesn't need 8 TB in total might exceed the 35 TB Azure limit on storage size due to internal fragmentation.

Например, управляемый экземпляр общего назначения может иметь один большой файл размером 1,2 ТБ, размещенный на диске объемом 4 ТБ.For example, a General Purpose managed instance might have one large file that's 1.2 TB in size placed on a 4-TB disk. У него также может быть 248 файлов с размером 1 ГБ, каждый из которых размещается на отдельных дисках емкостью 128 ГБ.It also might have 248 files with 1 GB size each that are placed on separate 128-GB disks. В данном примере:In this example:

  • общий размер выделенного дискового хранилища составляет 1 x 4 ТБ + 248 x 128 ГБ = 35 ТБ;The total allocated disk storage size is 1 x 4 TB + 248 x 128 GB = 35 TB.
  • общий объем зарезервированного пространства для баз данных в экземпляре составляет 1 x 1,2 ТБ + 248 x 1 ГБ = 1,4 ТБ.The total reserved space for databases on the instance is 1 x 1.2 TB + 248 x 1 GB = 1.4 TB.

В этом примере показано, что в некоторых обстоятельствах при определенных распределениях файлов управляемый экземпляр может достичь предельного размера в 35 ТБ, зарезервированного для подключенного диска Azure уровня "Премиум", если вы не ожидаете его.This example illustrates that under certain circumstances, due to a specific distribution of files, a managed instance might reach the 35-TB limit that's reserved for an attached Azure Premium Disk when you might not expect it to.

В этом примере существующие базы данных продолжают работать и могут увеличиваться без каких бы то ни было проблем, пока новые файлы не добавляются.In this example, existing databases continue to work and can grow without any problem as long as new files aren't added. Новые базы данных не могут быть созданы или восстановлены, так как не хватает места для новых дисков, даже если общий размер всех баз данных не достигает предельного размера экземпляра.New databases can't be created or restored because there isn't enough space for new disk drives, even if the total size of all databases doesn't reach the instance size limit. Ошибка, возвращаемая в этом случае, не ясно.The error that's returned in that case isn't clear.

Количество оставшихся файлов можно узнать с помощью системных представлений.You can identify the number of remaining files by using system views. Если вы достигли этого ограничения, попытайтесь удалить некоторые файлы меньшего размера с помощью инструкции DBCC SHRINKFILE или переключитесь на уровень критически важный для бизнеса, который не имеет этого ограничения.If you reach this limit, try to empty and delete some of the smaller files by using the DBCC SHRINKFILE statement or switch to the Business Critical tier, which doesn't have this limit.

Значения GUID, отображаемые вместо имен баз данныхGUID values shown instead of database names

Несколько системных представлений, счетчиков производительности, сообщений об ошибках, XEvents и записей в журнале ошибок отображают идентификаторы базы данных GUID вместо фактических имен базы данных.Several system views, performance counters, error messages, XEvents, and error log entries display GUID database identifiers instead of the actual database names. Не полагайтесь на эти идентификаторы GUID, так как они заменяются фактическими именами баз данных в будущем.Don't rely on these GUID identifiers because they're replaced with actual database names in the future.

Журналы ошибок не сохраняютсяError logs aren't persisted

Журналы ошибок, доступные в управляемом экземпляре, не сохраняются, и их размер не включается в максимальный предел хранилища.Error logs that are available in managed instance aren't persisted, and their size isn't included in the maximum storage limit. Если происходит отработка отказа, журналы ошибок могут автоматически удаляться.Error logs might be automatically erased if failover occurs. В журнале ошибок могут содержаться пробелы, так как Управляемый экземпляр были перемещены несколько раз на несколько виртуальных машин.There might be gaps in the error log history because Managed Instance was moved several times on several virtual machines.

Область транзакций в двух базах данных в одном и том же экземпляре не поддерживаетсяTransaction scope on two databases within the same instance isn't supported

Класс TransactionScope в .NET не работает, если два запроса отправляются в две базы данных в одном экземпляре в одной и той же области транзакций:The TransactionScope class in .NET doesn't work if two queries are sent to two databases within the same instance under the same transaction scope:

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(1)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into b.dbo.T2 values(2)");        cmd2.ExecuteNonQuery();
    }

    scope.Complete();
}

Несмотря на то, что этот код работает с данными в одном и том же экземпляре, требуется MSDTC.Although this code works with data within the same instance, it required MSDTC.

Обходной путь: Используйте SqlConnection. чанжедатабасе (String) для использования другой базы данных в контексте соединения вместо двух соединений.Workaround: Use SqlConnection.ChangeDatabase(String) to use another database in a connection context instead of using two connections.

Модули CLR и связанные серверы иногда не могут ссылаться на локальный IP-адрес.CLR modules and linked servers sometimes can't reference a local IP address

Модули CLR, размещенные в управляемом экземпляре, а также на связанных серверах или распределенных запросах, которые ссылаются на текущий экземпляр, иногда не могут разрешить IP-адрес локального экземпляра.CLR modules placed in a managed instance and linked servers or distributed queries that reference a current instance sometimes can't resolve the IP of a local instance. Это временная ошибка.This error is a transient issue.

Обходной путь: По возможности используйте контекстные соединения в модуле CLR.Workaround: Use context connections in a CLR module if possible.

Дальнейшие действияNext steps