Diferenças de T-SQL de instância gerenciada, limitações e problemas conhecidosManaged instance T-SQL differences, limitations, and known issues

Este artigo resume e explica as diferenças na sintaxe e no comportamento entre a instância gerenciada do banco de dados SQL do Azure e o SQL Server local Mecanismo de Banco de Dados.This article summarizes and explains the differences in syntax and behavior between Azure SQL Database managed instance and on-premises SQL Server Database Engine. A opção de implantação de instância gerenciada fornece alta compatibilidade com o Mecanismo de Banco de Dados do SQL Server local.The managed instance deployment option provides high compatibility with on-premises SQL Server Database Engine. A maioria dos recursos do mecanismo de banco de dados do SQL Server é compatível com uma instância gerenciada.Most of the SQL Server database engine features are supported in a managed instance.

Migração

Há algumas limitações de PaaS que são introduzidas em Instância Gerenciada e algumas alterações de comportamento em comparação com SQL Server.There are some PaaS limitations that are introduced in Managed Instance and some behavior changes compared to SQL Server. As diferenças são divididas nas seguintes categorias:The differences are divided into the following categories:

A maioria desses recursos são restrições de arquitetura e representam recursos de serviço.Most of these features are architectural constraints and represent service features.

Esta página também explica os problemas temporários conhecidos que são descobertos na instância gerenciada, que serão resolvidos no futuro.This page also explains Temporary known issues that are discovered in managed instance, which will be resolved in the future.

DisponibilidadeAvailability

Always On grupos de disponibilidadeAlways On Availability Groups

A alta disponibilidade é incorporada à instância gerenciada e não pode ser controlada por usuários.High availability is built into managed instance and can't be controlled by users. As instruções a seguir não têm suporte:The following statements aren't supported:

BackupBackup

As instâncias gerenciadas têm backups automáticos, para que os usuários possam criar bancos de dados COPY_ONLY backups completos.Managed instances have automatic backups, so users can create full database COPY_ONLY backups. Não há suporte para backups diferenciais, de log e de instantâneo de arquivo.Differential, log, and file snapshot backups aren't supported.

  • Com uma instância gerenciada, você pode fazer backup de um banco de dados de instância somente para uma conta de armazenamento de BLOBs do Azure:With a managed instance, you can back up an instance database only to an Azure Blob storage account:
    • Apenas BACKUP TO URL tem suporte.Only BACKUP TO URL is supported.
    • Não há suporte para dispositivos FILE, TAPEe backup.FILE, TAPE, and backup devices aren't supported.
  • Há suporte para a maioria das opções de WITH geral.Most of the general WITH options are supported.
    • COPY_ONLY é obrigatório.COPY_ONLY is mandatory.
    • Não há suporte para FILE_SNAPSHOT.FILE_SNAPSHOT isn't supported.
    • Opções de fita: REWIND, NOREWIND, UNLOADe NOUNLOAD não têm suporte.Tape options: REWIND, NOREWIND, UNLOAD, and NOUNLOAD aren't supported.
    • Opções específicas de log: não há suporte para NORECOVERY, STANDBYe NO_TRUNCATE.Log-specific options: NORECOVERY, STANDBY, and NO_TRUNCATE aren't supported.

Limitações:Limitations:

  • Com uma instância gerenciada, você pode fazer backup de um banco de dados de instância em um backup com até 32 faixas, o que é suficiente para bancos de dados de até 4 TB se a compactação de backup for usada.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.

  • Não é possível executar BACKUP DATABASE ... WITH COPY_ONLY em um banco de dados que é criptografado com o TDE (Transparent Data Encryption gerenciado por serviço).You can't execute BACKUP DATABASE ... WITH COPY_ONLY on a database that's encrypted with service-managed Transparent Data Encryption (TDE). O TDE gerenciado por serviço força os backups a serem criptografados com uma chave TDE interna.Service-managed TDE forces backups to be encrypted with an internal TDE key. A chave não pode ser exportada, portanto, não é possível restaurar o backup.The key can't be exported, so you can't restore the backup. Use backups automáticos e restauração pontual ou use o TDE (BYOK) gerenciado pelo cliente em vez disso.Use automatic backups and point-in-time restore, or use customer-managed (BYOK) TDE instead. Você também pode desabilitar a criptografia no banco de dados.You also can disable encryption on the database.

  • O tamanho máximo de distribuição de backup usando o comando BACKUP em uma instância gerenciada é 195 GB, que é o tamanho máximo do blob.The maximum backup stripe size by using the BACKUP command in a managed instance is 195 GB, which is the maximum blob size. Aumente o número de faixas no comando de backup para reduzir o tamanho de faixas individuais e permanecer dentro desse limite.Increase the number of stripes in the backup command to reduce individual stripe size and stay within this limit.

    Dica

    Para solucionar essa limitação, ao fazer backup de um banco de dados de qualquer SQL Server em um ambiente local ou em uma máquina virtual, você pode: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:

    • Faça backup em DISK em vez de fazer backup em URL.Back up to DISK instead of backing up to URL.
    • Carregue os arquivos de backup no armazenamento de BLOBs.Upload the backup files to Blob storage.
    • Restaure na instância gerenciada.Restore into the managed instance.

    O comando Restore em uma instância gerenciada dá suporte a tamanhos de blob maiores nos arquivos de backup porque um tipo de blob diferente é usado para o armazenamento dos arquivos de backup carregados.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.

Para obter informações sobre backups usando o T-SQL, consulte BACKUP.For information about backups using T-SQL, see BACKUP.

SegurançaSecurity

AuditoriaAuditing

As principais diferenças entre a auditoria em bancos de dados no Banco de Dados SQL do Azure e em bancos de dados no SQL Server são:The key differences between auditing in databases in Azure SQL Database and databases in SQL Server are:

  • Com a opção de implantação de instância gerenciada no banco de dados SQL do Azure, a auditoria funciona no nível do servidor.With the managed instance deployment option in Azure SQL Database, auditing works at the server level. Os arquivos de log do .xel são armazenados no armazenamento de BLOBs do Azure.The .xel log files are stored in Azure Blob storage.
  • Com as opções de implantação de banco de dados individual e pool elástico no Banco de Dados SQL do Azure, a auditoria funciona no nível do banco de dados.With the single database and elastic pool deployment options in Azure SQL Database, auditing works at the database level.
  • Em SQL Server máquinas virtuais ou locais, a auditoria funciona no nível do servidor.In SQL Server on-premises or virtual machines, auditing works at the server level. Os eventos são armazenados no sistema de arquivos ou nos logs de eventos do Windows.Events are stored on file system or Windows event logs.

A auditoria XEvent na Instância Gerenciada oferece suporte a destinos de armazenamento de blobs do Azure.XEvent auditing in managed instance supports Azure Blob storage targets. Não há suporte para logs de arquivo e do Windows.File and Windows logs aren't supported.

As principais diferenças na sintaxe CREATE AUDIT para a auditoria do armazenamento de Blobs do Azure são:The key differences in the CREATE AUDIT syntax for auditing to Azure Blob storage are:

  • É fornecida uma nova sintaxe TO URL que você pode usar para especificar a URL do contêiner de armazenamento de BLOBs do Azure em que os arquivos de .xel são colocados.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.
  • Não há suporte para a sintaxe TO FILE porque uma instância gerenciada não pode acessar compartilhamentos de arquivos do Windows.The syntax TO FILE isn't supported because a managed instance can't access Windows file shares.

Para obter mais informações, veja:For more information, see:

CertificadosCertificates

Uma instância gerenciada não pode acessar compartilhamentos de arquivos e pastas do Windows, portanto, as seguintes restrições se aplicam:A managed instance can't access file shares and Windows folders, so the following constraints apply:

  • O arquivo de CREATE FROM/BACKUP TO não tem suporte para certificados.The CREATE FROM/BACKUP TO file isn't supported for certificates.
  • O CREATE/BACKUP certificado do FILE/ASSEMBLY não tem suporte.The CREATE/BACKUP certificate from FILE/ASSEMBLY isn't supported. Arquivos de chave privada não podem ser usados.Private key files can't be used.

Consulte CRIAR CERTIFICADO e CERTIFICADO DE BACKUP.See CREATE CERTIFICATE and BACKUP CERTIFICATE.

Solução alternativa: em vez de criar backup de certificado e restaurar o backup, obtenha o conteúdo binário do certificado e a chave privada, armazene-os como arquivo. SQL e crie a partir do binário: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>)

CredencialCredential

Somente o Azure Key Vault e identidades SHARED ACCESS SIGNATURE têm suporte.Only Azure Key Vault and SHARED ACCESS SIGNATURE identities are supported. Não há suporte para usuários do Windows.Windows users aren't supported.

Consulte CRIAR CREDENCIAL e ALTERAR CREDENCIAL.See CREATE CREDENTIAL and ALTER CREDENTIAL.

Provedores criptográficosCryptographic providers

Uma instância gerenciada não pode acessar arquivos, portanto, os provedores criptográficos não podem ser criados:A managed instance can't access files, so cryptographic providers can't be created:

Logons e usuáriosLogins and users

  • Há suporte para logons SQL criados usando FROM CERTIFICATE, FROM ASYMMETRIC KEYe FROM SID.SQL logins created by using FROM CERTIFICATE, FROM ASYMMETRIC KEY, and FROM SID are supported. Consulte CREATE LOGIN.See CREATE LOGIN.

  • As entidades de segurança (logons) do servidor do Azure Active Directory (Azure AD) criadas com a sintaxe Create login ou Create User from login [Azure ad login] têm suporte.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. Esses logons são criados no nível do servidor.These logins are created at the server level.

    A instância gerenciada dá suporte a entidades de banco de dados do Azure AD com a sintaxe 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. Esse recurso também é conhecido como usuários de banco de dados independente do Azure AD.This feature is also known as Azure AD contained database users.

  • Não há suporte para logons do Windows criados com a sintaxe CREATE LOGIN ... FROM WINDOWS.Windows logins created with the CREATE LOGIN ... FROM WINDOWS syntax aren't supported. Use logons e usuário do Microsoft Azure Active Directory.Use Azure Active Directory logins and users.

  • O usuário do Azure AD que criou a instância tem privilégios de administrador irrestrito.The Azure AD user who created the instance has unrestricted admin privileges.

  • Usuários de nível de banco de dados não administrador do Azure AD podem ser criados usando a sintaxe CREATE USER ... FROM EXTERNAL PROVIDER.Non-administrator Azure AD database-level users can be created by using the CREATE USER ... FROM EXTERNAL PROVIDER syntax. Consulte criar usuário... DO provedor externo.See CREATE USER ... FROM EXTERNAL PROVIDER.

  • As entidades de segurança do servidor do Azure AD (logons) dão suporte a recursos SQL somente em uma instância gerenciada.Azure AD server principals (logins) support SQL features within one managed instance only. Recursos que exigem interação entre instâncias, independentemente de estarem dentro do mesmo locatário do Azure AD ou locatários diferentes, não têm suporte para usuários do 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. Exemplos de recursos desse tipo são:Examples of such features are:

    • Replicação transacional do SQL.SQL transactional replication.
    • Servidor de link.Link server.
  • Não há suporte para logons do Azure AD mapeados para um grupo do Azure AD como proprietário do banco de dados.Setting an Azure AD login mapped to an Azure AD group as the database owner isn't supported.

  • Há suporte para a representação de entidades de segurança no nível de servidor do Azure AD usando outras entidades do Azure AD, como a cláusula Execute as .Impersonation of Azure AD server-level principals by using other Azure AD principals is supported, such as the EXECUTE AS clause. AS limitações de executar como são:EXECUTE AS limitations are:

    • Não há suporte para EXECUTE AS USER para usuários do Azure AD quando o nome difere do nome de logon.EXECUTE AS USER isn't supported for Azure AD users when the name differs from the login name. Um exemplo é quando o usuário é criado por meio da sintaxe CREATE USER [myAadUser] do logon [john@contoso.com] e a representação é tentada por meio de EXEC como USER = myAadUser.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. Quando você cria um usuário de uma entidade de segurança de servidor do Azure AD (logon), especifique o user_name como o mesmo Login_name do logon.When you create a USER from an Azure AD server principal (login), specify the user_name as the same login_name from LOGIN.

    • Somente as entidades de nível de SQL Server (logons) que fazem parte da função sysadmin podem executar as seguintes operações que visam entidades do 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 USEREXECUTE AS USER
      • EXECUTE AS LOGINEXECUTE AS LOGIN
  • A exportação/importação de banco de dados usando arquivos bacpac tem suporte para usuários do Azure AD na instância gerenciada usando o SSMS v 18.4 ou posteriorou 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.

    • As configurações a seguir têm suporte usando o arquivo bacpac do banco de dados:The following configurations are supported using database bacpac file:
      • Exportar/importar um banco de dados entre diferentes instâncias de gerenciamento dentro do mesmo domínio do Azure AD.Export/import a database between different manage instances within the same Azure AD domain.
      • Exporte um banco de dados da instância gerenciada e importe para o banco de dados SQL no mesmo domínio do Azure AD.Export a database from managed instance and import to SQL Database within the same Azure AD domain.
      • Exportar um banco de dados do banco de dados SQL e importar para a instância gerenciada dentro do mesmo domínio do Azure AD.Export a database from SQL Database and import to managed instance within the same Azure AD domain.
      • Exporte um banco de dados da instância gerenciada e importe para SQL Server (versão 2012 ou posterior).Export a database from managed instance and import to SQL Server (version 2012 or later).
        • Nessa configuração, todos os usuários do Azure AD são criados como entidades de segurança do banco de dados SQL (usuários) sem logons.In this configuration all Azure AD users are created as SQL database principals (users) without logins. O tipo de usuário é listado como SQL (visível como SQL_USER em sys. database_principals).The type of users are listed as SQL (visible as SQL_USER in sys.database_principals). Suas permissões e funções permanecem no SQL Server metadados do banco de dados e podem ser usadas para representação.Their permissions and roles remain in the SQL Server database metadata and can be used for impersonation. No entanto, eles não podem ser usados para acessar e fazer logon no SQL Server usando suas credenciais.However, they cannot be used to access and log in to the SQL Server using their credentials.
  • Somente o logon da entidade de segurança no nível do servidor, que é criado pelo processo de provisionamento de instância gerenciada, os membros das funções de servidor, como securityadmin ou sysadminou outros logons com a permissão ALTER ANY LOGIN no nível do servidor podem criar entidades de segurança do Azure AD Server (logons) no banco de dados mestre para a instância gerenciada.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.

  • Se o logon for uma entidade de segurança SQL, somente os logons que fizerem parte da função sysadmin poderão usar o comando Create para criar logons para uma conta do 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.

  • O logon do Azure AD deve ser um membro de um Azure AD no mesmo diretório usado para a instância gerenciada do banco de dados SQL do 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.

  • As entidades de segurança do servidor do Azure AD (logons) são visíveis no Pesquisador de objetos, começando com SQL Server Management Studio 18,0 Preview 5.Azure AD server principals (logins) are visible in Object Explorer starting with SQL Server Management Studio 18.0 preview 5.

  • É permitida a sobreposição de entidades de segurança do servidor (logons) do Azure AD com uma conta de administrador do Azure AD.Overlapping Azure AD server principals (logins) with an Azure AD admin account is allowed. As entidades de segurança do servidor do Azure AD (logons) têm precedência sobre o administrador do Azure AD quando você resolve a entidade de segurança e aplica permissões à instância gerenciada.Azure AD server principals (logins) take precedence over the Azure AD admin when you resolve the principal and apply permissions to the managed instance.

  • Durante a autenticação, a sequência a seguir é aplicada para resolver a entidade de autenticação:During authentication, the following sequence is applied to resolve the authenticating principal:

    1. Se a conta do Azure AD existir como mapeada diretamente para a entidade de segurança do servidor do Azure AD (logon), que está presente em sys. server_principals como tipo "E" conceder acesso e aplicar permissões da entidade de segurança do servidor do Azure AD (logon).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. Se a conta do Azure AD for um membro de um grupo do Azure AD que é mapeado para a entidade de segurança de servidor do Azure AD (logon), que está presente em sys. server_principals como tipo "X", conceder acesso e aplicar permissões do logon do grupo do 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. Se a conta do Azure AD for um administrador especial configurado pelo portal do Azure AD para a instância gerenciada, que não existe em exibições do sistema de instância gerenciada, aplique permissões fixas especiais do administrador do Azure AD para a instância gerenciada (modo herdado).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. Se a conta do Azure AD existir como mapeada diretamente para um usuário do Azure AD em um banco de dados, que está presente em sys. database_principals como tipo "E" conceder acesso e aplicar permissões do usuário de banco de dados do 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. Se a conta do Azure AD for um membro de um grupo do Azure AD que é mapeado para um usuário do Azure AD em um banco de dados, que está presente em sys. database_principals como tipo "X", conceder acesso e aplicar permissões do logon do grupo do 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. Se houver um logon do Azure AD mapeado para uma conta de usuário do Azure AD ou uma conta de grupo do Azure AD, que seja resolvida para o usuário que está Autenticando, todas as permissões desse logon do Azure AD serão aplicadas.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.

Chave de serviço e chave mestra de serviçoService key and service master key

ConfiguraçãoConfiguration

Extensão do pool de buffersBuffer pool extension

OrdenaçãoCollation

A ordenação de instância padrão é SQL_Latin1_General_CP1_CI_AS e pode ser especificada como um parâmetro de criação.The default instance collation is SQL_Latin1_General_CP1_CI_AS and can be specified as a creation parameter. Consulte Ordenações.See Collations.

Níveis de compatibilidadeCompatibility levels

  • Os níveis de compatibilidade com suporte são 100, 110, 120, 130, 140 e 150.Supported compatibility levels are 100, 110, 120, 130, 140 and 150.
  • Não há suporte para níveis de compatibilidade abaixo de 100.Compatibility levels below 100 aren't supported.
  • O nível de compatibilidade padrão para novos bancos de dados é 140.The default compatibility level for new databases is 140. Para bancos de dados restaurados, o nível de compatibilidade permanece inalterado se foi 100 e superior.For restored databases, the compatibility level remains unchanged if it was 100 and above.

Consulte ALTERAR Nível de Compatibilidade do BANCO DE DADOS.See ALTER DATABASE Compatibility Level.

Espelhamento de banco de dadosDatabase mirroring

Não há suporte para espelhamento de banco de dados.Database mirroring isn't supported.

  • As opções ALTER DATABASE SET PARTNER e SET WITNESS não são suportadas.ALTER DATABASE SET PARTNER and SET WITNESS options aren't supported.
  • Não há suporte para CREATE ENDPOINT … FOR DATABASE_MIRRORING.CREATE ENDPOINT … FOR DATABASE_MIRRORING isn't supported.

Para obter mais informações, consulte ALTER DATABASE SET PARTNER e SET WITNESS e CREATE ENDPOINT... FOR DATABASE_MIRRORING.For more information, see ALTER DATABASE SET PARTNER and SET WITNESS and CREATE ENDPOINT … FOR DATABASE_MIRRORING.

Opções de banco de dadosDatabase options

  • Não há suporte para vários arquivos de log.Multiple log files aren't supported.
  • Não há suporte para objetos na memória na camada de serviço de Uso Geral.In-memory objects aren't supported in the General Purpose service tier.
  • Há um limite de 280 arquivos por Uso Geral instância, o que implica um máximo de 280 arquivos por banco de dados.There's a limit of 280 files per General Purpose instance, which implies a maximum of 280 files per database. Os arquivos de dados e de log na camada de Uso Geral são contados em direção a esse limite.Both data and log files in the General Purpose tier are counted toward this limit. A camada de comercialmente crítico dá suporte a 32.767 arquivos por banco de dados.The Business Critical tier supports 32,767 files per database.
  • O banco de dados não pode conter grupos de fileque contenham dado FileStream.The database can't contain filegroups that contain filestream data. A restauração falhará se. bak contiver dados de FILESTREAM.Restore fails if .bak contains FILESTREAM data.
  • Cada arquivo é colocado no Armazenamento de Blobs do Azure.Every file is placed in Azure Blob storage. A E/S e a taxa de transferência por arquivo dependem do tamanho de cada arquivo individual.IO and throughput per file depend on the size of each individual file.

Instrução CRIAR BANCO DE DADOSCREATE DATABASE statement

As seguintes limitações se aplicam a CREATE DATABASE:The following limitations apply to CREATE DATABASE:

  • Arquivos e grupos de arquivos não podem ser definidos.Files and filegroups can't be defined.

  • Não há suporte para a opção CONTAINMENT.The CONTAINMENT option isn't supported.

  • Não há suporte para opções de WITH.WITH options aren't supported.

    Dica

    Como alternativa, use ALTER DATABASE depois de CREATE DATABASE para definir opções de banco de dados para adicionar arquivos ou para definir a contenção.As a workaround, use ALTER DATABASE after CREATE DATABASE to set database options to add files or to set containment.

  • Não há suporte para a opção FOR ATTACH.The FOR ATTACH option isn't supported.

  • Não há suporte para a opção AS SNAPSHOT OF.The AS SNAPSHOT OF option isn't supported.

Para saber mais, confira CRIAR BANCO DE DADOS.For more information, see CREATE DATABASE.

Instrução ALTERAR BANCO DE DADOSALTER DATABASE statement

Algumas propriedades de arquivo não podem ser definidas ou alteradas:Some file properties can't be set or changed:

  • Não é possível especificar um caminho de arquivo na instrução 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. Remova FILENAME do script porque uma instância gerenciada coloca os arquivos automaticamente.Remove FILENAME from the script because a managed instance automatically places the files.
  • Um nome de arquivo não pode ser alterado usando a instrução ALTER DATABASE.A file name can't be changed by using the ALTER DATABASE statement.

As opções a seguir são definidas por padrão e não podem ser alteradas:The following options are set by default and can't be changed:

  • MULTI_USER
  • ENABLE_BROKER ON
  • AUTO_CLOSE OFF

As seguintes opções não podem ser modificadas: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

Para saber mais, confira ALTERAR BANCO DE DADOS.For more information, see ALTER DATABASE.

SQL Server AgentSQL Server Agent

  • Não há suporte para habilitar e desabilitar SQL Server Agent atualmente na instância gerenciada.Enabling and disabling SQL Server Agent is currently not supported in managed instance. O SQL Agent sempre está em execução.SQL Agent is always running.
  • SQL Server Agent configurações são somente leitura.SQL Server Agent settings are read only. Não há suporte para o procedimento sp_set_agent_properties na instância gerenciada.The procedure sp_set_agent_properties isn't supported in managed instance.
  • TrabalhosJobs
    • As etapas de trabalho T-SQL têm suporte.T-SQL job steps are supported.
    • Os trabalhos de replicação a seguir têm suporte:The following replication jobs are supported:
      • Leitor do log de transaçõesTransaction-log reader
      • InstantâneoSnapshot
      • DistribuidorDistributor
    • Há suporte para as etapas de trabalho do SSIS.SSIS job steps are supported.
    • Atualmente, não há suporte para outros tipos de etapas de trabalho:Other types of job steps aren't currently supported:
      • Não há suporte para a etapa de trabalho de replicação de mesclagem.The merge replication job step isn't supported.
      • Não há suporte para leitor de fila.Queue Reader isn't supported.
      • Ainda não há suporte para o Shell de comando.Command shell isn't yet supported.
    • As instâncias gerenciadas não podem acessar recursos externos, por exemplo, compartilhamentos de rede via Robocopy.Managed instances can't access external resources, for example, network shares via robocopy.
    • Não há suporte para SQL Server Analysis Services.SQL Server Analysis Services aren't supported.
  • Há suporte parcial para notificações.Notifications are partially supported.
  • Há suporte para notificação por email, embora exija que você configure um perfil de Database Mail.Email notification is supported, although it requires that you configure a Database Mail profile. SQL Server Agent pode usar apenas um perfil de Database Mail e deve ser chamado AzureManagedInstance_dbmail_profile.SQL Server Agent can use only one Database Mail profile, and it must be called AzureManagedInstance_dbmail_profile.
    • Não há suporte para o Pager.Pager isn't supported.
    • Não há suporte para o NetSend.NetSend isn't supported.
    • Ainda não há suporte para alertas.Alerts aren't yet supported.
    • Não há suporte para proxies.Proxies aren't supported.
  • O log de eventos não tem suporte.EventLog isn't supported.

Os seguintes recursos do SQL Agent atualmente não têm suporte:The following SQL Agent features currently aren't supported:

  • ProxiesProxies
  • Agendando trabalhos em uma CPU ociosaScheduling jobs on an idle CPU
  • Habilitando ou desabilitando um agenteEnabling or disabling an Agent
  • AlertasAlerts

Para obter informações sobre o SQL Server Agent, consulte SQL Server Agent.For information about SQL Server Agent, see SQL Server Agent.

TabelasTables

Os seguintes tipos de tabela não têm suporte:The following table types aren't supported:

Para obter informações sobre como criar e alterar tabelas, consulte CREATE TABLE e ALTER TABLE.For information about how to create and alter tables, see CREATE TABLE and ALTER TABLE.

FuncionalidadesFunctionalities

Inserção em massa/OPENROWSETBulk insert / OPENROWSET

Uma instância gerenciada não pode acessar compartilhamentos de arquivos e pastas do Windows, portanto, os arquivos devem ser importados do armazenamento de BLOBs do Azure:A managed instance can't access file shares and Windows folders, so the files must be imported from Azure Blob storage:

  • DATASOURCE é necessário no comando BULK INSERT enquanto importa arquivos do armazenamento de BLOBs do Azure.DATASOURCE is required in the BULK INSERT command while you import files from Azure Blob storage. Consulte INSERÇÃO EM MASSA.See BULK INSERT.
  • DATASOURCE é necessário na função OPENROWSET quando você lê o conteúdo de um arquivo do armazenamento de BLOBs do Azure.DATASOURCE is required in the OPENROWSET function when you read the content of a file from Azure Blob storage. Consulte OPENROWSET.See OPENROWSET.
  • OPENROWSET pode ser usado para ler dados de outros bancos de dado SQL do Azure, instâncias gerenciadas ou instâncias de SQL Server.OPENROWSET can be used to read data from other Azure SQL single databases, managed instances or SQL Server instances. Não há suporte para outras fontes, como bancos de dados Oracle ou arquivos do Excel.Other sources such as Oracle databases or Excel files are not supported.

CLRCLR

Uma instância gerenciada não pode acessar compartilhamentos de arquivos e pastas do Windows, portanto, as seguintes restrições se aplicam: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 não pode enviar anexos usando @file_attachments parâmetro.sp_send_dbmail cannot send attachments using @file_attachments parameter. O sistema de arquivos local e os compartilhamentos externos ou o armazenamento de BLOBs do Azure não são acessíveis a partir desse procedimento.Local file system and external shares or Azure Blob Storage are not accessible from this procedure.
  • Consulte os problemas conhecidos relacionados ao parâmetro @query e à autenticação.See the known issues related to @query parameter and authentication.

DBCCDBCC

As instruções DBCC não documentadas que estão habilitadas no SQL Server não têm suporte em instâncias gerenciadas.Undocumented DBCC statements that are enabled in SQL Server aren't supported in managed instances.

  • Há suporte apenas para um número limitado de sinalizadores de rastreamento globais.Only a limited number of Global Trace flags are supported. Não há suporte para Trace flags em nível de sessão.Session-level Trace flags aren't supported. Consulte sinalizadores de rastreamento.See Trace flags.
  • DBCC TRACEOFF e DBCC tracen funcionam com o número limitado de sinalizadores de rastreamento globais.DBCC TRACEOFF and DBCC TRACEON work with the limited number of global trace-flags.
  • Não é possível usar o DBCC CHECKDB com opções REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST e REPAIR_REBUILD porque o banco de dados não pode ser definido no modo de SINGLE_USER-consulte diferenças de ALTER DATABASE.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. As possíveis corrupções de banco de dados são tratadas pela equipe de suporte do Azure.Potential database corruptions are handled by Azure support team. Contate o suporte do Azure se você estiver percebendo corrupção de banco de dados que deve ser corrigido.Contact Azure support if you are noticing database corruption that should be fixed.

Transações distribuídasDistributed transactions

Atualmente, não há suporte para transações de MSDTC e elástico em instâncias gerenciadas.MSDTC and elastic transactions currently aren't supported in managed instances.

Eventos EstendidosExtended Events

Não há suporte para alguns destinos específicos do Windows para eventos estendidos (XEvents):Some Windows-specific targets for Extended Events (XEvents) aren't supported:

  • Não há suporte para o destino de etw_classic_sync.The etw_classic_sync target isn't supported. Armazene .xel arquivos no armazenamento de BLOBs do Azure.Store .xel files in Azure Blob storage. Consulte etw_classic_sync target.See etw_classic_sync target.
  • Não há suporte para o destino de event_file.The event_file target isn't supported. Armazene .xel arquivos no armazenamento de BLOBs do Azure.Store .xel files in Azure Blob storage. Consulte event_file target.See event_file target.

Bibliotecas externasExternal libraries

R e Python no banco de dados, ainda não há suporte para bibliotecas externas.In-database R and Python, external libraries aren't yet supported. Consulte Serviços de Machine Learning do SQL Server.See SQL Server Machine Learning Services.

FileStream e FiletableFilestream and FileTable

  • Não há suporte para dados FILESTREAM.Filestream data isn't supported.
  • O banco de dados não pode conter grupos de FileFILESTREAMdos.The database can't contain filegroups with FILESTREAM data.
  • Não há suporte para FILETABLE.FILETABLE isn't supported.
  • As tabelas não podem ter tipos FILESTREAM.Tables can't have FILESTREAM types.
  • Não há suporte para as seguintes funções:The following functions aren't supported:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Para obter mais informações, consulte FILESTREAM e FileTables.For more information, see FILESTREAM and FileTables.

Não há suporte para Pesquisa semântica.Semantic Search isn't supported.

Servidores vinculadosLinked servers

Os servidores vinculados em instâncias gerenciadas dão suporte a um número limitado de destinos:Linked servers in managed instances support a limited number of targets:

  • Os destinos com suporte são instâncias gerenciadas, bancos de dados individuais e instâncias de SQL Server.Supported targets are Managed Instances, Single Databases, and SQL Server instances.
  • Os servidores vinculados não dão suporte a transações graváveis distribuídas (MS DTC).Linked servers don't support distributed writable transactions (MS DTC).
  • Os destinos que não têm suporte são arquivos, Analysis Services e outros RDBMS.Targets that aren't supported are files, Analysis Services, and other RDBMS. Tente usar a importação de CSV nativo do armazenamento de BLOBs do Azure usando BULK INSERT ou OPENROWSET como uma alternativa para a importação de arquivos.Try to use native CSV import from Azure Blob Storage using BULK INSERT or OPENROWSET as an alternative for file import.

OperationsOperations

  • Não há suporte para transações de gravação entre instâncias.Cross-instance write transactions aren't supported.
  • sp_dropserver é compatível com o descarte um servidor vinculado.sp_dropserver is supported for dropping a linked server. Consulte sp_dropserver.See sp_dropserver.
  • A função OPENROWSET pode ser usada para executar consultas somente em instâncias SQL Server.The OPENROWSET function can be used to execute queries only on SQL Server instances. Eles podem ser gerenciados, localmente ou em máquinas virtuais.They can be either managed, on-premises, or in virtual machines. Consulte OPENROWSET.See OPENROWSET.
  • A função OPENDATASOURCE pode ser usada para executar consultas somente em instâncias SQL Server.The OPENDATASOURCE function can be used to execute queries only on SQL Server instances. Eles podem ser gerenciados, localmente ou em máquinas virtuais.They can be either managed, on-premises, or in virtual machines. Somente os valores SQLNCLI, SQLNCLI11e SQLOLEDB têm suporte como um provedor.Only the SQLNCLI, SQLNCLI11, and SQLOLEDB values are supported as a provider. Um exemplo é SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee.An example is SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. Consulte OPENDATASOURCE.See OPENDATASOURCE.
  • Os servidores vinculados não podem ser usados para ler arquivos (Excel, CSV) dos compartilhamentos de rede.Linked servers cannot be used to read files (Excel, CSV) from the network shares. Tente usar BULK INSERT ou OPENROWSET que leia arquivos CSV do armazenamento de BLOBs do Azure.Try to use BULK INSERT or OPENROWSET that reads CSV files from Azure Blob Storage. Acompanhar essas solicitações no item de comentário da instância gerenciada|Track this requests on managed instance Feedback item|

PolyBasePolyBase

Não há suporte para tabelas externas que fazem referência aos arquivos no HDFS ou no armazenamento de BLOBs do Azure.External tables that reference the files in HDFS or Azure Blob storage aren't supported. Para obter informações sobre o polybase, consulte polybase.For information about PolyBase, see PolyBase.

ReplicaçãoReplication

  • Há suporte para os tipos de replicação de instantâneo e bidirecional.Snapshot and Bi-directional replication types are supported. Não há suporte para replicação de mesclagem, replicação ponto a ponto e assinaturas atualizáveis.Merge replication, Peer-to-peer replication, and updatable subscriptions are not supported.
  • A replicação transacional está disponível para visualização pública na instância gerenciada com algumas restrições:Transactional Replication is available for public preview on managed instance with some constraints:
    • Todos os tipos de participantes de replicação (editor, distribuidor, assinante de pull e assinante push) podem ser colocados em instâncias gerenciadas, mas o Publicador e o distribuidor devem estar tanto na nuvem quanto no local.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.
    • As instâncias gerenciadas podem se comunicar com as versões recentes do SQL Server.Managed instances can communicate with the recent versions of SQL Server. Consulte as versões com suporte aqui.See the supported versions here.
    • A replicação transacional tem alguns requisitos de rede adicionais.Transactional Replication has some additional networking requirements.

Para obter informações sobre como configurar a replicação, consulte o tutorial de replicação.For information about configuring replication, see the replication tutorial.

Se a replicação estiver habilitada em um banco de dados em um grupo de failover, o administrador da instância gerenciada deverá limpar todas as publicações na primária antiga e reconfigurá-las no novo primário após a ocorrência de um failover.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. As seguintes atividades são necessárias neste cenário:The following activities are needed in this scenario:

  1. Pare todos os trabalhos de replicação em execução no banco de dados, se houver algum.Stop all replication jobs running on the database, if there are any.

  2. Remova os metadados da assinatura do Publicador executando o seguinte script no banco de dados do Publicador: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. Remova os metadados da assinatura do Assinante.Drop subscription metadata from the subscriber. Execute o seguinte script no banco de dados de assinatura na instância do Assinante: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. Force a remoção de todos os objetos de replicação do Publicador executando o seguinte script no banco de dados publicado:Forcefully drop all replication objects from publisher by running the following script in the published database:

    EXEC sp_removedbreplication
    
  5. Force a remoção do distribuidor antigo da instância primária original (se estiver fazendo failover novamente para um antigo primário que costumava ter um distribuidor).Forcefully drop old distributor from original primary instance (if failing back over to an old primary that used to have a distributor). Execute o seguinte script no banco de dados mestre na instância gerenciada antiga do distribuidor:Run the following script on the master database in old distributor managed instance:

    EXEC sp_dropdistributor 1,1
    

Instrução RESTAURARRESTORE statement

  • Sintaxe com suporte:Supported syntax:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY ONLY
    • RESTORE HEADER ONLY
    • RESTORE LABELONLY ONLY
    • RESTORE VERIFYONLY ONLY
  • Sintaxe sem suporte:Unsupported syntax:
    • RESTORE LOG ONLY
    • RESTORE REWINDONLY ONLY
  • Fonte:Source:
    • FROM URL (armazenamento de BLOBs do Azure) é a única opção com suporte.FROM URL (Azure Blob storage) is the only supported option.
    • Não há suporte para FROM DISK/TAPE/dispositivo de backup.FROM DISK/TAPE/backup device isn't supported.
    • Conjuntos de backup não são compatíveis.Backup sets aren't supported.
  • Não há suporte para WITH opções, como nenhuma DIFFERENTIAL ou STATS.WITH options aren't supported, such as no DIFFERENTIAL or STATS.
  • ASYNC RESTORE: a restauração continua mesmo que a conexão do cliente seja interrompida.ASYNC RESTORE: Restore continues even if the client connection breaks. Se a conexão for descartada, você poderá verificar a sys.dm_operation_status exibição do status de uma operação de restauração e para criar e remover um banco de dados.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. Consulte sys.dm_operation_status.See sys.dm_operation_status.

As opções de banco de dados a seguir são definidas ou substituídas e não podem ser alteradas posteriormente:The following database options are set or overridden and can't be changed later:

  • NEW_BROKER se o agente não estiver habilitado no arquivo. bak.NEW_BROKER if the broker isn't enabled in the .bak file.
  • ENABLE_BROKER se o agente não estiver habilitado no arquivo. bak.ENABLE_BROKER if the broker isn't enabled in the .bak file.
  • AUTO_CLOSE=OFF se um banco de dados no arquivo. bak tiver AUTO_CLOSE=ON.AUTO_CLOSE=OFF if a database in the .bak file has AUTO_CLOSE=ON.
  • RECOVERY FULL se um banco de dados no arquivo. bak tiver SIMPLE ou BULK_LOGGED modo de recuperação.RECOVERY FULL if a database in the .bak file has SIMPLE or BULK_LOGGED recovery mode.
  • Um grupo de arquivos com otimização de memória é adicionado e chamado de XTP se ele não estava no arquivo Source. bak.A memory-optimized filegroup is added and called XTP if it wasn't in the source .bak file.
  • Qualquer grupo de arquivos com otimização de memória existente é renomeado para XTP.Any existing memory-optimized filegroup is renamed to XTP.
  • as opções SINGLE_USER e RESTRICTED_USER são convertidas em MULTI_USER.SINGLE_USER and RESTRICTED_USER options are converted to MULTI_USER.

Limitações:Limitations:

  • Os backups dos bancos de dados corrompidos podem ser restaurados dependendo do tipo de corrupção, mas os backups automatizados não serão feitos até que a corrupção seja corrigida.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. Certifique-se de executar DBCC CHECKDB na instância de origem e usar WITH CHECKSUM de backup para evitar esse problema.Make sure that you run DBCC CHECKDB on the source instance and use backup WITH CHECKSUM in order to prevent this issue.
  • A restauração do arquivo de .BAK de um banco de dados que contém qualquer limitação descrita neste documento (por exemplo, FILESTREAM ou FILETABLE objetos) não pode ser restaurada em Instância Gerenciada.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 arquivos que contêm vários conjuntos de backup não podem ser restaurados..BAK files that contain multiple backup sets can't be restored.
  • .BAK arquivos que contêm vários arquivos de log não podem ser restaurados..BAK files that contain multiple log files can't be restored.
  • Os backups que contêm bancos de dados maiores que 8 TB, objetos OLTP na memória ativas ou o número de arquivos que excedem 280 arquivos por instância não podem ser restaurados em uma instância de Uso Geral.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.
  • Os backups que contêm bancos de dados maiores que 4 TB ou objetos OLTP na memória com o tamanho total maior do que o tamanho descrito nos limites de recursos não podem ser restaurados na instância comercialmente crítico.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. Para obter informações sobre instruções RESTORE, consulte instruções RESTORE.For information about restore statements, see RESTORE statements.

Importante

As mesmas limitações se aplicam à operação de restauração pontual interna.The same limitations apply to built-in point-in-time restore operation. Por exemplo, Uso Geral banco de dados maior que 4 TB não pode ser restaurado na instância Comercialmente Crítico.As an example, General Purpose database greater than 4 TB cannot be restored on Business Critical instance. Comercialmente Crítico banco de dados com arquivos OLTP na memória ou mais de 280 arquivos não podem ser restaurados na instância Uso Geral.Business Critical database with In-memory OLTP files or more than 280 files cannot be restored on General Purpose instance.

Service brokerService broker

Não há suporte para agente de serviços entre instâncias:Cross-instance service broker isn't supported:

  • sys.routes: como um pré-requisito, você deve selecionar o endereço de sys. routes.sys.routes: As a prerequisite, you must select the address from sys.routes. O endereço deve ser LOCAL em cada rota.The address must be LOCAL on every route. Consulte sys.routes.See sys.routes.
  • CREATE ROUTE: não é possível usar CREATE ROUTE com ADDRESS diferente de LOCAL.CREATE ROUTE: You can't use CREATE ROUTE with ADDRESS other than LOCAL. Consulte CRIAR ROTA.See CREATE ROUTE.
  • ALTER ROUTE: não é possível usar ALTER ROUTE com ADDRESS diferente de LOCAL.ALTER ROUTE: You can't use ALTER ROUTE with ADDRESS other than LOCAL. Consulte ALTERAR ROTA.See ALTER ROUTE.

Procedimentos armazenados, funções e gatilhosStored procedures, functions, and triggers

Funções e variáveis do sistemaSystem functions and variables

As seguintes variáveis, funções e exibições retornam resultados diferentes:The following variables, functions, and views return different results:

  • SERVERPROPERTY('EngineEdition') retorna o valor 8.SERVERPROPERTY('EngineEdition') returns the value 8. Essa propriedade identifica exclusivamente uma instância gerenciada.This property uniquely identifies a managed instance. Consulte SERVERPROPERTY.See SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') retorna NULL porque o conceito de instância existente para SQL Server não se aplica a uma instância gerenciada.SERVERPROPERTY('InstanceName') returns NULL because the concept of instance as it exists for SQL Server doesn't apply to a managed instance. Consulte SERVERPROPERTY('InstanceName').See SERVERPROPERTY('InstanceName').
  • @@SERVERNAME retorna um nome de DNS "conectável" completo, por exemplo, my-managed-instance.wcus17662feb9ce98.database.windows.net.@@SERVERNAME returns a full DNS "connectable" name, for example, my-managed-instance.wcus17662feb9ce98.database.windows.net. Consulte @@SERVERNAME.See @@SERVERNAME.
  • SYS.SERVERS retorna um nome de DNS "conectável" completo, como myinstance.domain.database.windows.net para as propriedades "Name" e "data_source".SYS.SERVERS returns a full DNS "connectable" name, such as myinstance.domain.database.windows.net for the properties "name" and "data_source." Consulte SYS.SERVERS.See SYS.SERVERS.
  • @@SERVICENAME retorna NULL porque o conceito de serviço existente para SQL Server não se aplica a uma instância gerenciada.@@SERVICENAME returns NULL because the concept of service as it exists for SQL Server doesn't apply to a managed instance. Consulte @@SERVICENAME.See @@SERVICENAME.
  • Há suporte para SUSER_ID.SUSER_ID is supported. Retornará NULL se o logon do Azure AD não estiver em sys. syslogins.It returns NULL if the Azure AD login isn't in sys.syslogins. Consulte SUSER_ID.See SUSER_ID.
  • Não há suporte para SUSER_SID.SUSER_SID isn't supported. Os dados errados são retornados, o que é um problema temporário conhecido.The wrong data is returned, which is a temporary known issue. Consulte SUSER_SID.See SUSER_SID.

Restrições de ambienteEnvironment constraints

Sub-redeSubnet

VNETVNET

  • A VNet pode ser implantada usando modelo de recurso-modelo clássico para VNet sem suporte.VNet can be deployed using Resource Model - Classic Model for VNet is not supported.
  • Depois que uma instância gerenciada é criada, não há suporte para a movimentação da instância gerenciada ou da VNet para outro grupo de recursos ou assinatura.After a managed instance is created, moving the managed instance or VNet to another resource group or subscription is not supported.
  • Alguns serviços, como ambientes de serviço de aplicativo, aplicativos lógicos e instâncias gerenciadas (usados para replicação geográfica, replicação transacional ou por meio de servidores vinculados) não poderão acessar instâncias gerenciadas em regiões diferentes se seus VNets estiverem conectados usando o emparelhamento global.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. Você pode se conectar a esses recursos via ExpressRoute ou VNet a VNet por meio de gateways de VNet.You can connect to these resources via ExpressRoute or VNet-to-VNet through VNet Gateways.

TEMPDBTEMPDB

O tamanho máximo do arquivo de tempdb não pode ser maior que 24 GB por núcleo em uma camada de Uso Geral.The maximum file size of tempdb can't be greater than 24 GB per core on a General Purpose tier. O tamanho máximo de tempdb em uma camada de Comercialmente Crítico é limitado pelo tamanho do armazenamento da instância.The maximum tempdb size on a Business Critical tier is limited by the instance storage size. Tempdb tamanho do arquivo de log é limitado a 120 GB na camada Uso Geral.Tempdb log file size is limited to 120 GB on General Purpose tier. Algumas consultas podem retornar um erro se precisarem de mais de 24 GB por núcleo em tempdb ou se produzirem mais de 120 GB de dados de log.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.

Logs de errosError logs

Uma instância gerenciada coloca informações detalhadas nos logs de erros.A managed instance places verbose information in error logs. Há muitos eventos internos do sistema que são registrados no log de erros do.There are many internal system events that are logged in the error log. Use um procedimento personalizado para ler logs de erro que filtram algumas entradas irrelevantes.Use a custom procedure to read error logs that filters out some irrelevant entries. Para obter mais informações, consulte instância gerenciada – sp_readmierrorlog ou extensão de instância gerenciada (versão prévia) para Azure Data Studio.For more information, see managed instance – sp_readmierrorlog or managed instance extension(preview) for Azure Data Studio.

Problemas conhecidosKnown issues

Os limites de memória OLTP na memória não são aplicadosIn-memory OLTP memory limits are not applied

Data: Outubro de 2019Date: Oct 2019

Comercialmente Crítico camada de serviço não aplicará corretamente os limites máximos de memória para objetos com otimização de memória em alguns casos.Business Critical service-tier will not correctly apply max memory limits for memory-optimized objects in some cases. A instância gerenciada pode permitir que a carga de trabalho use mais memória para operações OLTP na memória, o que pode afetar a disponibilidade e a estabilidade da instância.Managed instance may enable workload to use more memory for In-memory OLTP operations, which may affect availability and stability of the instance. As consultas OLTP na memória que estão atingindo os limites podem não falhar imediatamente.In-memory OLTP queries that are reaching the limits might not fail immediately. Esse problema será corrigido em breve.This issue will be fixed soon. As consultas que usam mais memória OLTP na memória falharão mais cedo se atingirem os limites.The queries that use more In-memory OLTP memory will fail sooner if they reach the limits.

Solução alternativa: monitore o uso de armazenamento OLTP na memória usando SQL Server Management Studio para garantir que a carga de trabalho não esteja usando mais do que a memória disponível.Workaround: Monitor In-memory OLTP storage usage using SQL Server Management Studio to ensure that the workload is not using more than available memory. Aumente os limites de memória que dependem do número de vCores ou Otimize sua carga de trabalho para usar menos memória.Increase the memory limits that depend on the number of vCores, or optimize your workload to use less memory.

Erro incorreto retornado ao tentar remover um arquivo que não está vazioWrong error returned while trying to remove a file that is not empty

Data: Outubro de 2019Date: Oct 2019

SQL Server/Instância Gerenciada não permitir que o usuário descarte um arquivo que não esteja vazio.SQL Server/Managed Instance don't allow user to drop a file that is not empty. Se você tentar remover um arquivo de dados não vazio usando a instrução ALTER DATABASE REMOVE FILE, o erro Msg 5042 – The file '<file_name>' cannot be removed because it is not empty não será retornado imediatamente.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. Instância Gerenciada continuará tentando descartar o arquivo, e a operação falhará após 30 min com Internal server error.Managed Instance will keep trying to drop the file and the operation will fail after 30min with Internal server error.

Solução alternativa: Remova o conteúdo do arquivo usando DBCC SHRINKFILE (N'<file_name>', EMPTYFILE) comando.Workaround: Remove the content of the file using DBCC SHRINKFILE (N'<file_name>', EMPTYFILE) command. Se esse for o único arquivo no grupo de arquivos, você precisará excluir dados da tabela ou da partição associada a esse grupo de arquivos antes de reduzir o arquivo e, opcionalmente, carregar esses dados em outra tabela/partição.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.

Alterar a camada de serviço e criar operações de instância são bloqueadas pela restauração de banco de dados em andamentoChange service tier and create instance operations are blocked by ongoing database restore

Data: Setembro de 2019Date: Sep 2019

A instrução de RESTORE contínua, o processo de migração do serviço de migração de dados e a restauração pontual interna bloquearão a atualização da camada de serviço ou o redimensionamento da instância existente e a criação de novas instâncias até que o processo de restauração seja concluído.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. O processo de restauração bloqueará essas operações nas instâncias gerenciadas e nos pools de instância na mesma sub-rede em que o processo de restauração está em execução.Restore process will block these operations on the Managed instances and instance pools in the same subnet where restore process is running. As instâncias em pools de instâncias não são afetadas.The instances in instance pools are not affected. Criar ou alterar as operações da camada de serviço não falharão ou tempo limite-eles continuarão quando o processo de restauração for concluído ou cancelado.Create or change service tier operations will not fail or timeout - they will proceed once the restore process is completed or canceled.

Solução alternativa: Aguarde até que o processo de restauração seja concluído ou cancele o processo de restauração se a operação de criação ou atualização da camada de serviço tiver prioridade mais alta.Workaround: Wait until the restore process finishes, or cancel the restore process if creation or update service-tier operation has higher priority.

Resource Governor na camada de serviço Comercialmente Crítico talvez precise ser reconfigurada após o failoverResource Governor on Business Critical service tier might need to be reconfigured after failover

Data: Setembro de 2019Date: Sep 2019

Resource governor recurso que permite limitar os recursos atribuídos à carga de trabalho do usuário pode classificar incorretamente alguma carga de trabalho do usuário após o failover ou a alteração da camada de serviço iniciada pelo usuário (por exemplo, a alteração do tamanho máximo do armazenamento de instância vCore ou máximo).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).

Solução alternativa: execute ALTER RESOURCE GOVERNOR RECONFIGURE periodicamente ou como parte do trabalho do SQL Agent que executa a tarefa SQL quando a instância for iniciada se você estiver usando 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.

As caixas de diálogo de Service Broker entre bancos de dados devem ser reinicializadas após a atualização da camada de serviçoCross-database Service Broker dialogs must be re-initialized after service tier upgrade

Data: 2019 de agostoDate: Aug 2019

As caixas de diálogo de Service Broker de banco de dados cruzado deixarão de entregar as mensagens para os serviços em outros bancos de dados após a operação de alteração da camada de serviço.Cross-database Service Broker dialogs will stop delivering the messages to the services in other databases after change service tier operation. As mensagens não são perdidas e podem ser encontradas na fila do remetente.The messages are not lost and they can be found in the sender queue. Qualquer alteração de tamanho de armazenamento de instância ou vCores no Instância Gerenciada fará com que service_broke_guid valor na exibição Sys. databases seja alterado para todos os bancos de dados.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. Qualquer DIALOG criado usando a instrução BEGIN DIALOG que referencie os agentes de serviço em outro banco de dados interromperá a entrega de mensagens ao serviço de destino.Any DIALOG created using BEGIN DIALOG statement that references Service Brokers in other database will stop delivering messages to the target service.

Solução alternativa: Pare qualquer atividade que use conversas de caixa de diálogo Service Broker de banco de dados antes de atualizar a camada de serviço e reinicializá-la após.Workaround: Stop any activity that uses cross-database Service Broker dialog conversations before updating service tier and re-initialize them after. Se houver mensagens restantes que não são entregues após a alteração da camada de serviço, leia as mensagens da fila de origem e reenvie-as para a fila de destino.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.

Não há suporte para a impessoa de tipos de logon do Azure ADImpersonification of Azure AD login types is not supported

Data: Julho de 2019Date: July 2019

Não há suporte para a representação usando EXECUTE AS USER ou EXECUTE AS LOGIN das seguintes entidades do AAD:Impersonation using EXECUTE AS USER or EXECUTE AS LOGIN of following AAD principals is not supported:

  • Usuários com alias do AAD.Aliased AAD users. O erro a seguir é retornado neste caso 15517.The following error is returned in this case 15517.
  • Logons e usuários do AAD com base em aplicativos do AAD ou entidades de serviço.AAD logins and users based on AAD applications or service principals. Os erros a seguir são retornados nesse caso 15517 e 15406.The following errors are returned in this case 15517 and 15406.

@query parâmetro sem suporte no sp_send_db_mail@query parameter not supported in sp_send_db_mail

Data: Abril de 2019Date: April 2019

O parâmetro @query no procedimento sp_send_db_mail não funciona.The @query parameter in the sp_send_db_mail procedure doesn't work.

A replicação transacional deve ser reconfigurada após o failover geográficoTransactional Replication must be reconfigured after geo-failover

Data: Mar de 2019Date: Mar 2019

Se a replicação transacional estiver habilitada em um banco de dados em um grupo de failover automático, o administrador da instância gerenciada deverá limpar todas as publicações no antigo primário e reconfigurá-los no novo primário após a ocorrência de um failover para outra região.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. Consulte replicação para obter mais detalhes.See Replication for more details.

Não há suporte para logons e usuários do AAD no SSDTAAD logins and users are not supported in SSDT

Data: 2019 de novembroDate: Nov 2019

SQL Server Data Tools não dão suporte total a logons e usuários do Azure Active Directory.SQL Server Data Tools don't fully support Azure Active directory logins and users.

O banco de dados temporário é usado durante a operação de restauraçãoTemporary database is used during RESTORE operation

Quando um banco de dados estiver restaurando em Instância Gerenciada, o serviço de restauração criará primeiro um banco de dados vazio com o nome desejado para alocar o nome na instância.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. Após algum tempo, esse banco de dados será descartado e a restauração do banco de dados real será iniciada.After some time, this database will be dropped and restoring of the actual database will be started. O banco de dados que está no estado de restauração temporário terá um valor de GUID aleatório em vez de nome.The database that is in Restoring state will temporary have a random GUID value instead of name. O nome temporário será alterado para o nome desejado especificado na instrução RESTORE depois que o processo de restauração for concluído.The temporary name will be changed to the desired name specified in RESTORE statement once the restore process completes. Na fase inicial, o usuário pode acessar o banco de dados vazio e, até mesmo, criar tabelas ou carrega-los.In the initial phase, user can access the empty database and even create tables or load data in this database. Esse banco de dados temporário será Descartado quando o serviço de restauração iniciar a segunda fase.This temporary database will be dropped when the restore service starts the second phase.

Solução alternativa: não acesse o banco de dados que você está restaurando até ver que a restauração foi concluída.Workaround: Do not access the database that you are restoring until you see that restore is completed.

A estrutura TEMPDB e o conteúdo são recriadosTEMPDB structure and content is re-created

O banco de dados do tempdb sempre é dividido em 12 arquivos e a estrutura do arquivo não pode ser alterada.The tempdb database is always split into 12 data files and the file structure cannot be changed. O tamanho máximo por arquivo não pode ser alterado e novos arquivos não podem ser adicionados a tempdb.The maximum size per file can't be changed, and new files cannot be added to tempdb. Tempdb é sempre recriado como um banco de dados vazio quando a instância inicia ou faz failover, e quaisquer alterações feitas no tempdb não serão preservadas.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.

Excedendo o espaço de armazenamento com arquivos de banco de dados pequenosExceeding storage space with small database files

as instruções CREATE DATABASE, ALTER DATABASE ADD FILEe RESTORE DATABASE podem falhar porque a instância pode alcançar o limite de armazenamento do Azure.CREATE DATABASE, ALTER DATABASE ADD FILE, and RESTORE DATABASE statements might fail because the instance can reach the Azure Storage limit.

Cada instância gerenciada Uso Geral tem até 35 TB de armazenamento reservado para o espaço em disco Premium do Azure.Each General Purpose managed instance has up to 35 TB of storage reserved for Azure Premium Disk space. Cada arquivo de banco de dados é colocado em um disco físico separado.Each database file is placed on a separate physical disk. Tamanhos de disco podem ser 128 GB, 256 GB, 512 GB, 1 TB ou 4 TB.Disk sizes can be 128 GB, 256 GB, 512 GB, 1 TB, or 4 TB. O espaço não utilizado no disco não é cobrado, mas a soma total dos tamanhos de disco Premium do Azure não pode exceder 35 TB.Unused space on the disk isn't charged, but the total sum of Azure Premium Disk sizes can't exceed 35 TB. Em alguns casos, uma instância gerenciada que não precisa de 8 TB no total pode exceder o limite de 35 TB do Azure no tamanho do armazenamento devido à fragmentação interna.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.

Por exemplo, uma instância gerenciada Uso Geral pode ter um arquivo grande que seja de 1,2 TB de tamanho colocado em um disco de 4 TB.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. Ele também pode ter 248 arquivos com tamanho de 1 GB cada um colocado em discos separados de 128 GB.It also might have 248 files with 1 GB size each that are placed on separate 128-GB disks. Neste exemplo:In this example:

  • O tamanho do armazenamento em disco total alocado é de 1 x 4 TB + 248 x 128 GB = 35 TB.The total allocated disk storage size is 1 x 4 TB + 248 x 128 GB = 35 TB.
  • O total de espaço reservado para os bancos de dados na instância é de 1 x 1,2 TB + 248 x 1 GB = 1,4 TB.The total reserved space for databases on the instance is 1 x 1.2 TB + 248 x 1 GB = 1.4 TB.

Este exemplo ilustra que, em determinadas circunstâncias, devido a uma distribuição específica de arquivos, uma instância gerenciada pode alcançar o limite de 35 TB reservado para um disco Premium do Azure conectado quando você talvez não o espere.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.

Neste exemplo, os bancos de dados existentes continuam funcionando e podem crescer sem qualquer problema, desde que novos arquivos não sejam adicionados.In this example, existing databases continue to work and can grow without any problem as long as new files aren't added. Novos bancos de dados não podem ser criados ou restaurados porque não há espaço suficiente para novas unidades de disco, mesmo que o tamanho total de todos os bancos de dados não atinja o limite de tamanho da instância.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. O erro retornado nesse caso não é claro.The error that's returned in that case isn't clear.

Você pode identificar o número de arquivos restantes usando exibições do sistema.You can identify the number of remaining files by using system views. Se você atingir esse limite, tente esvaziar e excluir alguns dos arquivos menores usando a instrução DBCC SHRINKFILE ou alterne para a camada comercialmente crítico, que não tem esse limite.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.

Valores de GUID mostrados em vez de nomes de banco de dadosGUID values shown instead of database names

Várias entradas de exibições do sistema, contadores de desempenho, mensagens de erro, XEvents e logs de erros exibem identificadores do banco de dados GUID em vez dos nomes reais do banco de dados.Several system views, performance counters, error messages, XEvents, and error log entries display GUID database identifiers instead of the actual database names. Não confie nesses identificadores GUID porque eles são substituídos por nomes de banco de dados reais no futuro.Don't rely on these GUID identifiers because they're replaced with actual database names in the future.

Os logs de erros não são persistentesError logs aren't persisted

Os logs de erros que estão disponíveis na instância gerenciada não são mantidos e seu tamanho não é incluído no limite máximo de armazenamento.Error logs that are available in managed instance aren't persisted, and their size isn't included in the maximum storage limit. Os logs de erros poderão ser apagados automaticamente se ocorrer um failover.Error logs might be automatically erased if failover occurs. Pode haver lacunas no histórico do log de erros porque Instância Gerenciada foi movido várias vezes em várias máquinas virtuais.There might be gaps in the error log history because Managed Instance was moved several times on several virtual machines.

O escopo da transação em dois bancos de dados na mesma instância não tem suporteTransaction scope on two databases within the same instance isn't supported

A classe TransactionScope no .NET não funciona se duas consultas forem enviadas a dois bancos de dados dentro da mesma instância no mesmo escopo de transação: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();
}

Embora esse código funcione com dados dentro da mesma instância, ele exigia o MSDTC.Although this code works with data within the same instance, it required MSDTC.

Solução alternativa: Use SqlConnection. ChangeDatabase (String) para usar outro banco de dados em um contexto de conexão em vez de usar duas conexões.Workaround: Use SqlConnection.ChangeDatabase(String) to use another database in a connection context instead of using two connections.

Os módulos CLR e os servidores vinculados às vezes não podem fazer referência a um endereço IP localCLR modules and linked servers sometimes can't reference a local IP address

Os módulos CLR colocados em uma instância gerenciada e servidores vinculados ou consultas distribuídas que referenciam uma instância atual às vezes não podem resolver o IP de uma instância local.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. Esse é um problema temporário.This error is a transient issue.

Solução alternativa: Use conexões de contexto em um módulo CLR, se possível.Workaround: Use context connections in a CLR module if possible.

Próximos passosNext steps