Diferenças do T-SQL entre o SQL Server e o Azure SQL Managed Instance

Aplica-se a:Instância Gerenciada SQL do Azure

Este artigo resume e explica as diferenças de sintaxe e comportamento entre a Instância Gerenciada SQL do Azure e o SQL Server.

A Instância Gerenciada SQL fornece alta compatibilidade com o mecanismo de banco de dados do SQL Server, e a maioria dos recursos tem suporte em uma Instância Gerenciada do SQL.

Diagram showing the easy migration from SQL Server.

Existem algumas limitações de PaaS que são introduzidas no SQL Managed Instance e algumas alterações de comportamento em comparação com SQL Server. As diferenças dividem-se nas seguintes categorias:

A maioria desses recursos são restrições de arquitetura e representam recursos de serviço.

Problemas conhecidos temporários que são descobertos na Instância Gerenciada SQL e serão resolvidos no futuro são descritos em Novidades?.

Nota

Microsoft Entra ID é o novo nome para o Azure Ative Directory (Azure AD). Estamos atualizando a documentação neste momento.

Disponibilidade

Grupos de Disponibilidade AlwaysOn

A alta disponibilidade é incorporada à Instância Gerenciada SQL e não pode ser controlada pelos usuários. As seguintes instruções não são suportadas:

Backup

A Instância Gerenciada SQL do Azure tem backups automáticos, para que os usuários possam criar backups completos de banco de dados COPY_ONLY . Não há suporte para backups diferenciais, de log e de instantâneos de arquivos.

  • Com uma Instância Gerenciada SQL, você pode fazer backup de um banco de dados de instância somente em uma conta de armazenamento de Blob do Azure:
    • Só o BACKUP TO URL é suportado.
    • FILE, TAPEe os dispositivos de backup não são suportados.
  • A maioria das opções gerais WITH são suportadas.
    • COPY_ONLY é obrigatório.
    • FILE_SNAPSHOT e CREDENTIAL não são suportados.
    • Opções de fita: REWIND, , UNLOADNOREWINDe NOUNLOAD não são suportadas.
    • Opções específicas de log: NORECOVERY, STANDBYe NO_TRUNCATE não são suportadas.

Limitações:

  • Com uma instância gerenciada SQL, você pode fazer backup de um banco de dados de instância para 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.

  • Não é possível executar BACKUP DATABASE ... WITH COPY_ONLY em um banco de dados criptografado com TDE (Transparent Data Encryption) gerenciada por serviço. A TDE gerida pelo serviço força a encriptação das cópias de segurança com uma chave TDE interna. Não é possível exportar a chave, pelo que não pode restaurar a cópia de segurança. Use backups automáticos e restauração point-in-time ou use TDE gerenciado pelo cliente (BYOK). Você também pode desabilitar a criptografia no banco de dados.

  • Os backups nativos feitos em uma instância gerenciada do SQL podem ser restaurados apenas para uma instância do SQL Server 2022. Isso ocorre porque a Instância Gerenciada do SQL tem uma versão de banco de dados interna mais alta em comparação com outras versões do SQL Server. Para obter mais informações, consulte Restaurar um backup de banco de dados da Instância Gerenciada SQL para o SQL Server 2022.

  • Para fazer backup ou restaurar um banco de dados de/para um armazenamento do Azure, você pode autenticar usando a identidade gerenciada ou a assinatura de acesso compartilhado (SAS), que é um URI que concede direitos de acesso restritos aos recursos do Armazenamento do Azure Saiba mais sobre isso. Não há suporte para o uso de chaves de acesso para esses cenários.

  • O tamanho máximo da distribuição de backup usando o comando na Instância Gerenciada do SQL é de 195 GB, que é o BACKUP tamanho máximo do blob. Aumente o número de faixas no comando backup para reduzir o tamanho da faixa individual e permanecer dentro desse limite.

    Gorjeta

    Para contornar essa limitação, quando você faz backup de um banco de dados do SQL Server em um ambiente local ou em uma máquina virtual, você pode:

    • Faça backup para DISK em vez de fazer backup para URL.
    • Carregue os arquivos de backup para o armazenamento de Blob.
    • Restaure na Instância Gerenciada SQL.

    O Restore comando na Instância Gerenciada SQL oferece suporte a tamanhos de blob maiores nos arquivos de backup porque um tipo de blob diferente é usado para armazenar os arquivos de backup carregados.

Para obter informações sobre backups usando T-SQL, consulte BACKUP.

Segurança

Auditoria

As principais diferenças entre a auditoria no Microsoft Azure SQL e no SQL Server são:

  • Com a Instância Gerenciada SQL, a auditoria funciona no nível do servidor. Os .xel arquivos de log são armazenados no armazenamento de Blob do Azure.
  • Com o Banco de Dados SQL do Azure, a auditoria funciona no nível do banco de dados. Os .xel arquivos de log são armazenados no armazenamento de Blob do Azure.
  • Com o SQL Server, no local ou em máquinas virtuais, a auditoria funciona no nível do servidor. Os eventos são armazenados no sistema de arquivos ou nos logs de eventos do Windows.

A auditoria XEvent na Instância Gerenciada SQL dá suporte a destinos de armazenamento de Blob do Azure. Não há suporte para logs de arquivos e do Windows.

As principais diferenças na sintaxe para CREATE AUDIT auditoria ao armazenamento de Blob do Azure são:

  • Uma nova sintaxe TO URL é fornecida para especificar a URL do contêiner de armazenamento de Blob do Azure onde os .xel arquivos são colocados.
  • A sintaxe TO FILE não é suportada porque a Instância Gerenciada SQL não pode acessar compartilhamentos de arquivos do Windows.

Para obter mais informações, consulte:

Certificados

A Instância Gerenciada SQL não pode acessar compartilhamentos de arquivos e pastas do Windows, portanto, as seguintes restrições se aplicam:

  • O CREATE FROM/BACKUP TO arquivo não é suportado para certificados.
  • O CREATE/BACKUP certificado de não é suportado FILE/ASSEMBLY . Os arquivos de chave privada não podem ser usados.

Consulte CREATE CERTIFICATE e BACKUP CERTIFICATE.

Solução alternativa: em vez de criar backup do certificado e restaurar o backup, obtenha o conteúdo binário do certificado e a chave privada, armazene-o como .sql arquivo e crie a partir do binário:

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

Credencial

A identidade gerenciada, o Cofre da Chave do Azure e SHARED ACCESS SIGNATURE as identidades são suportados. Os utilizadores do Windows não são suportados.

Consulte CREATE CREDENTIAL e ALTER CREDENTIAL.

Provedores criptográficos

A Instância Gerenciada SQL não pode acessar arquivos, portanto, provedores criptográficos não podem ser criados:

Inícios de sessão e utilizadores

  • Logons SQL criados usando FROM CERTIFICATE, FROM ASYMMETRIC KEYe FROM SID são suportados. Consulte CREATE LOGIN. As entidades de servidor (logons) são criadas no nível do servidor e os usuários (entidades de banco de dados) são criados no nível do banco de dados. Os logins do Microsoft Entra criados com a sintaxe CREATE LOGIN e os usuários do Microsoft Entra criados com a sintaxe CREATE USER FROM LOGIN são suportados. Ao criar um usuário e especificar FROM LOGINo , esse usuário é associado ao logon e herda as funções de servidor e as permissões atribuídas a ele.

    A Instância Gerenciada SQL oferece suporte à criação de usuários de banco de dados contidos com base em identidades do Microsoft Entra com a sintaxe CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Os usuários criados dessa maneira não são associados a entidades de servidor, mesmo que exista uma entidade de servidor com o mesmo nome no master banco de dados.

  • Não há suporte para logins do Windows criados com a CREATE LOGIN ... FROM WINDOWS sintaxe. Use logins e usuários do Microsoft Entra.

  • O administrador do Microsoft Entra para a instância tem privilégios de administrador irrestritos.

  • Alguns recursos não oferecem suporte ao uso de logons do Microsoft Entra em interações entre instâncias, mas apenas em uma única instância gerenciada do SQL, como a replicação do SQL Server, por exemplo. O recurso de servidor vinculado, porém, oferece suporte à autenticação entre instâncias usando entidades de servidor (logons) do Microsoft Entra.

  • Não há suporte para a configuração de um login do Microsoft Entra mapeado para um grupo do Microsoft Entra como proprietário do banco de dados. Um membro do grupo Microsoft Entra pode ser proprietário de um banco de dados, mesmo que o logon não tenha sido criado no banco de dados.

  • Há suporte para a representação de entidades de nível de servidor do Microsoft Entra usando outras entidades do Microsoft Entra, como a cláusula EXECUTE AS . As limitações de EXECUTE AS são:

    • EXECUTE AS USER não é suportado para utilizadores do Microsoft Entra quando o nome difere do nome de início de sessão. Um exemplo é quando o usuário é criado através da sintaxe CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] e a representação é tentada através EXEC AS USER = myAadUserdo . Ao criar um USUÁRIO a partir de um login do Microsoft Entra, especifique o user_name como o mesmo login_name de LOGIN.

    • Somente logons no nível do SQL Server que fazem parte da sysadmin função podem executar as seguintes operações destinadas a entidades do Microsoft Entra:

      • EXECUTAR COMO UTILIZADOR
      • EXECUTAR COMO LOGIN
    • Para representar um usuário com a instrução EXECUTE AS, o usuário precisa ser mapeado diretamente para o login do Microsoft Entra. Os usuários que são membros de grupos do Microsoft Entra mapeados em entidades de servidor do Microsoft Entra não podem ser representados efetivamente com a instrução EXECUTE AS, mesmo que o chamador tenha as permissões de representação no nome de usuário especificado.

  • A exportação/importação de banco de dados usando arquivos bacpac é suportada para usuários do Microsoft Entra na Instância Gerenciada SQL usando o SSMS V18.4 ou posterior ou SqlPackage.

    • As seguintes configurações são suportadas usando o arquivo bacpac do banco de dados:
      • Exporte/importe um banco de dados entre diferentes instâncias de gerenciamento dentro do mesmo domínio do Microsoft Entra.
      • Exporte um banco de dados da Instância Gerenciada SQL e importe para o Banco de Dados SQL dentro do mesmo domínio do Microsoft Entra.
      • Exporte um banco de dados do Banco de dados SQL e importe para a Instância Gerenciada SQL dentro do mesmo domínio do Microsoft Entra.
      • Exporte um banco de dados da Instância Gerenciada do SQL e importe para o SQL Server (versão 2012 ou posterior).
        • Nessa configuração, todos os usuários do Microsoft Entra são criados como entidades de banco de dados do SQL Server (usuários) sem logons. O tipo de usuários é e é SQL visível como SQL_USER em sys.database_principals. Suas permissões e funções permanecem nos metadados do banco de dados do SQL Server e podem ser usadas para representação. No entanto, eles não podem ser usados para acessar e entrar no SQL Server usando suas credenciais.
  • Somente o logon principal no nível do servidor, que é criado pelo processo de provisionamento da Instância Gerenciada SQL, membros das funções de servidor, como securityadmin ou , ou sysadminoutros logons com permissão ALTER ANY LOGIN no nível do servidor podem criar entidades de servidor (logons) do Microsoft Entra no master banco de dados para Instância Gerenciada SQL.

  • Os logons baseados em autenticação SQL devem receber a sysadmin função para criar logons para identidades do Microsoft Entra.

  • O logon deve ser membro do mesmo locatário do Microsoft Entra no qual a Instância Gerenciada SQL do Azure está hospedada.

  • As entidades de servidor do Microsoft Entra (logons) são visíveis no Pesquisador de Objetos a partir do SQL Server Management Studio 18.0 preview 5.

  • Uma entidade de servidor com nível de acesso sysadmin é criada automaticamente para o administrador do Microsoft Entra assim que ele é habilitado em uma instância.

  • Durante a autenticação, a seguinte sequência é aplicada para resolver a entidade de autenticação:

    1. Se a conta do Microsoft Entra estiver diretamente mapeada para um login do Microsoft Entra, que está presente no sys.server_principals tipo "E", conceda acesso e aplique permissões desse login.
    2. Se a conta do Microsoft Entra for membro de um grupo mapeado para um login do Microsoft Entra, que está presente no sys.server_principals tipo "X", conceda acesso e aplique permissões desse login.
    3. Se a conta do Microsoft Entra existir como mapeada diretamente para um usuário do Microsoft Entra em um banco de dados, que está presente no sys.database_principals tipo "E", conceda acesso e aplique permissões do usuário do banco de dados Microsoft Entra.
    4. Se a conta do Microsoft Entra for membro de um grupo do Microsoft Entra mapeado para um usuário do Microsoft Entra em um banco de dados, que está presente como sys.database_principals tipo "X", conceda acesso e aplique permissões do usuário do grupo Microsoft Entra.

Chave de serviço e chave mestra de serviço

Configuração

Extensão do pool de buffers

Agrupamento

O agrupamento de instâncias padrão é SQL_Latin1_General_CP1_CI_AS e pode ser especificado como um parâmetro de criação. Consulte Colações.

Níveis de compatibilidade

  • Os níveis de compatibilidade suportados são 100, 110, 120, 130, 140, 150 e 160.
  • Não há suporte para níveis de compatibilidade abaixo de 100.
  • O nível de compatibilidade padrão para novos bancos de dados é 150. Para bancos de dados restaurados, o nível de compatibilidade permanece inalterado se for 100 ou superior.

Consulte Nível de compatibilidade ALTER DATABASE.

Espelhamento da base de dados

Não há suporte para espelhamento de banco de dados.

  • ALTER DATABASE SET PARTNER e SET WITNESS as opções não são suportadas.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING não é suportado.

Para obter mais informações, consulte ALTER DATABASE SET PARTNER e SET WITNESS e CREATE ENDPOINT ... PARA DATABASE_MIRRORING.

Opções de banco de dados

  • Não há suporte para vários arquivos de log.
  • Não há suporte para objetos na memória na camada de serviço de uso geral.
  • Há um limite de 280 arquivos por instância de uso geral, o que implica um máximo de 280 arquivos por banco de dados. Tanto os ficheiros de dados como os ficheiros de registo no escalão Fins Gerais são contados para este limite. O escalão Crítico para a Empresa suporta 32 767 ficheiros por base de dados.
  • O banco de dados não pode conter grupos de arquivos que contenham dados FILESTREAM. A restauração falhará se .bak contiver FILESTREAM dados.
  • Cada arquivo é colocado no armazenamento de Blob do Azure. A E/S e a taxa de transferência por arquivo dependem do tamanho de cada arquivo individual.

Instrução CREATE DATABASE

As seguintes limitações aplicam-se a CREATE DATABASE:

  • Não é possível definir ficheiros e grupos de ficheiros.

  • Um grupo de arquivos e um arquivo com otimização de memória são adicionados automaticamente e são chamados de XTP.

  • A CONTAINMENT opção não é suportada.

  • WITH opções não são suportadas.

    Gorjeta

    Como solução alternativa, use ALTER DATABASE depois CREATE DATABASE para definir opções de banco de dados para adicionar arquivos ou definir contenção.

  • A FOR ATTACH opção não é suportada.

  • A AS SNAPSHOT OF opção não é suportada.

Para obter mais informações, consulte CREATE DATABASE.

Declaração ALTER DATABASE

Algumas propriedades de arquivo não podem ser definidas ou alteradas:

  • Um caminho de arquivo não pode ser especificado na ALTER DATABASE ADD FILE (FILENAME='path') instrução T-SQL. Remova FILENAME do script porque a Instância Gerenciada SQL coloca automaticamente os arquivos.
  • Um nome de arquivo não pode ser alterado usando a ALTER DATABASE instrução.
  • Não é permitido alterar o arquivo XTP ou o grupo de arquivos.

As seguintes opções são definidas por padrão e não podem ser alteradas:

  • MULTI_USER
  • ENABLE_BROKER
  • AUTO_CLOSE OFF

As seguintes opções não podem ser modificadas:

  • 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

Algumas ALTER DATABASE instruções (por exemplo, SET CONTAINMENT) podem falhar transitoriamente, por exemplo, durante o backup automatizado do banco de dados ou logo após a criação de um banco de dados. Neste caso ALTER DATABASE , a declaração deve ser repetida. Para obter mais informações sobre mensagens de erro relacionadas, consulte a seção Comentários.

Para obter mais informações, consulte ALTER DATABASE.

SQL Server Agent

  • Atualmente, não há suporte para habilitar e desabilitar o SQL Server Agent na Instância Gerenciada do SQL. O SQL Agent está sempre em execução.
  • O gatilho de agendamento de trabalho baseado em uma CPU ociosa não é suportado.
  • As configurações do SQL Server Agent são somente leitura. O procedimento sp_set_agent_properties não é suportado na Instância Gerenciada SQL.
  • Empregos
    • As etapas de trabalho do T-SQL são suportadas.
    • Há suporte para os seguintes trabalhos de replicação:
      • Leitor de log de transações
      • Instantâneo
      • Distribuidor
    • As etapas de trabalho do SSIS são suportadas.
    • Outros tipos de etapas de trabalho não são suportados no momento:
      • Não há suporte para a etapa do trabalho de replicação de mesclagem.
      • O Queue Reader não é suportado.
      • O shell de comando ainda não é suportado.
    • A Instância Gerenciada SQL não pode acessar recursos externos, por exemplo, compartilhamentos de rede via robocopy.
    • Não há suporte para o SQL Server Analysis Services.
  • As notificações são parcialmente suportadas.
  • A notificação por email é suportada, embora exija que você configure um perfil do Database Mail. O SQL Server Agent pode usar apenas um perfil do Database Mail e deve ser chamado AzureManagedInstance_dbmail_profilede .
    • Pager não é suportado.
    • NetSend não é suportado.
    • Os alertas ainda não são suportados.
    • Não há suporte para proxies.
  • O EventLog não é suportado.
  • O usuário deve ser mapeado diretamente para o logon do servidor Microsoft Entra para criar, modificar ou executar trabalhos do SQL Agent. Os usuários que não são mapeados diretamente, por exemplo, os usuários que pertencem a um grupo do Microsoft Entra que tem os direitos para criar, modificar ou executar trabalhos do SQL Agent, não poderão executar efetivamente essas ações. Isso se deve à representação da Instância Gerenciada SQL e às limitações de EXECUTE AS.
  • O recurso Administração Multiservidor para trabalhos mestre/destino (MSX/TSX) não é suportado.

Para obter informações sobre o SQL Server Agent, consulte SQL Server Agent.

Tabelas

Os seguintes tipos de tabela não são suportados:

Para obter informações sobre como criar e alterar tabelas, consulte CREATE TABLE e ALTER TABLE.

Funcionalidades

INSERÇÃO EM MASSA / OPENROWSET

A Instância Gerenciada SQL não pode acessar compartilhamentos de arquivos e pastas do Windows, portanto, os arquivos devem ser importados do armazenamento de Blob do Azure:

  • DATASOURCE é necessário no BULK INSERT comando enquanto você importa arquivos do armazenamento de Blob do Azure. Consulte BULK INSERT.
  • DATASOURCE é necessário na OPENROWSET função quando você lê o conteúdo de um arquivo do armazenamento de Blob do Azure. Consulte OPENROWSET.
  • OPENROWSET pode ser usado para ler dados do Banco de Dados SQL do Azure, da Instância Gerenciada do SQL do Azure ou de instâncias do SQL Server. Não há suporte para outras fontes, como bancos de dados Oracle ou arquivos do Excel.

CLR

Uma Instância Gerenciada SQL não pode acessar compartilhamentos de arquivos e pastas do Windows, portanto, as seguintes restrições se aplicam:

Database Mail (db_mail)

  • sp_send_dbmail não é possível enviar anexos usando @file_attachments o parâmetro. O sistema de ficheiros local e as partilhas externas ou o Armazenamento de Blobs do Azure não estão acessíveis a partir deste procedimento.
  • Consulte os problemas conhecidos relacionados ao parâmetro e à @query autenticação.

DBCC

Não há suporte para instruções DBCC não documentadas habilitadas no SQL Server na Instância Gerenciada do SQL.

  • Apenas um número limitado de sinalizadores de Rastreamento Global é suportado. Não há suporte para nível Trace flags de sessão. Consulte Sinalizadores de rastreamento.
  • DBCC TRACEOFF e DBCC TRACEON trabalham com o número limitado de sinalizadores de rastreamento globais.
  • DBCC CHECKDB com opções REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST e REPAIR_REBUILD não pode ser usado porque o banco de dados não pode ser definido no SINGLE_USER modo - consulte ALTER DATABASE differences. A possível corrupção do banco de dados é tratada pela equipe de suporte do Azure. Entre em contato com o suporte do Azure se houver qualquer indicação de corrupção de banco de dados.

Transações distribuídas

As transações distribuídas baseadas em T-SQL e .NET entre instâncias gerenciadas estão geralmente disponíveis. Outros cenários, como transações XA, transações distribuídas entre instâncias gerenciadas e outros participantes e muito mais, têm suporte com o DTC para Instância Gerenciada SQL do Azure, que está disponível na visualização pública.

Eventos Alargados

Alguns destinos específicos do Windows para Eventos Expandidos (XEvents) não são suportados:

  • O destino de etw_classic_sync não é suportado. Armazene os ficheiros .xel no armazenamento de Blobs do Azure. Veja o destino de etw_classic_sync.
  • O destino de event_file não é suportado. Armazene os ficheiros .xel no armazenamento de Blobs do Azure. Veja o destino de event_file.

Bibliotecas externas

As bibliotecas externas R e Python no banco de dados são suportadas em visualização pública limitada. Consulte Serviços de Aprendizado de Máquina na Instância Gerenciada SQL do Azure (visualização).

FILESTREAM e FileTable

  • Os dados FILESTREAM não são suportados.
  • O banco de dados não pode conter grupos de arquivos com FILESTREAM dados.
  • FILETABLE não é suportado.
  • As tabelas não podem ter FILESTREAM tipos.
  • As seguintes funções não são suportadas:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Para obter mais informações, consulte FILESTREAM e FileTables.

A Pesquisa Semântica não é suportada.

Servidores ligados

Os servidores vinculados na Instância Gerenciada SQL oferecem suporte a um número limitado de destinos:

  • Os destinos com suporte são Instância Gerenciada SQL, Banco de Dados SQL, Azure Synapse SQL serverless e pools dedicados e instâncias do SQL Server.
  • Os destinos sem suporte são arquivos, Analysis Services e outros RDBMS. Tente usar a importação CSV nativa do Armazenamento de Blobs do Azure usando ou como uma alternativa para a importação de arquivos, ou OPENROWSET carregue arquivos usando BULK INSERT um pool SQL sem servidor no Azure Synapse Analytics.

Operações:

  • sp_dropserver é suportado para descartar um servidor vinculado. Ver sp_dropserver.
  • A OPENROWSET função pode ser usada para executar consultas somente em instâncias do SQL Server. Eles podem ser gerenciados, no local ou em máquinas virtuais. Consulte OPENROWSET.
  • A função OPENDATASOURCE pode ser usada para executar consultas somente em instâncias do SQL Server. Eles podem ser gerenciados, no local ou em máquinas virtuais. Um exemplo é SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee. Somente os valores , , SQLNCLI11SQLOLEDBe MSOLEDBSQL são suportados SQLNCLIcomo provedor. O SQL Server Native Client (geralmente abreviado SNAC) foi removido do SQL Server 2022 e do SQL Server Management Studio 19 (SSMS). O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Microsoft OLE DB Provider for SQL Server (SQLOLEDB) herdado não são recomendados para novos desenvolvimentos. Mude para o novo Microsoft OLE DB Driver (MSOLEDBSQL) para SQL Server ou o driver Microsoft ODBC mais recente para SQL Server no futuro.
  • Os servidores vinculados não podem ser usados para ler arquivos (Excel, CSV) dos compartilhamentos de rede. Tente usar BULK INSERT, OPENROWSET que lê arquivos CSV do Armazenamento de Blobs do Azure ou um servidor vinculado que faz referência a um pool SQL sem servidor no Synapse Analytics. Controlar essas solicitações no item Comentários da Instância Gerenciada SQL

Os servidores vinculados na Instância Gerenciada SQL do Azure dão suporte à autenticação SQL e à autenticação Microsoft Entra.

PolyBase

A virtualização de dados com a Instância Gerenciada SQL do Azure permite executar consultas Transact-SQL (T-SQL) em dados de arquivos armazenados no Azure Data Lake Storage Gen2 ou no Armazenamento de Blobs do Azure e combiná-los com dados relacionais armazenados localmente usando junções. Os formatos de arquivo Parquet e texto delimitado (CSV) são diretamente suportados. O formato de arquivo JSON é suportado indiretamente, especificando o formato de arquivo CSV onde as consultas retornam cada documento como uma linha separada. É possível analisar mais linhas usando JSON_VALUE e OPENJSON. Para obter informações gerais sobre PolyBase, consulte PolyBase.

Além disso, CREATE EXTERNAL TABLE AS SELECT (CETAS) permite exportar dados de sua instância gerenciada SQL para uma conta de armazenamento externo. Você pode usar o CETAS para criar uma tabela externa sobre os arquivos Parquet ou CSV, o armazenamento de Blobs do Azure ou o Azure Data Lake Storage (ADLS) Gen2. O CETAS também pode exportar, em paralelo, os resultados de uma instrução T-SQL SELECT para a tabela externa criada.

Replicação

  • Há suporte para os tipos de replicação bidirecional e de snapshot. Não há suporte para replicação de mesclagem, replicação ponto a ponto e assinaturas atualizáveis.
  • A replicação transacional está disponível para a Instância Gerenciada SQL com algumas restrições:
    • Todos os tipos de participantes da replicação (Publicador, Distribuidor, Pull Subscriber e Push Subscriber) podem ser colocados na Instância Gerenciada SQL, mas o editor e o distribuidor devem estar ambos na nuvem ou ambos no local.
    • A Instância Gerenciada do SQL pode se comunicar com as versões recentes do SQL Server. Para obter mais informações, consulte a matriz de versões suportadas.
    • A replicação transacional tem alguns requisitos de rede adicionais.

Para obter mais informações sobre como configurar a replicação transacional, consulte os seguintes tutoriais:

Declaração RESTORE

  • Sintaxe suportada:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY
    • RESTORE HEADERONLY
    • RESTORE LABELONLY
    • RESTORE VERIFYONLY
  • Sintaxe não suportada:
    • RESTORE LOGONLY
    • RESTORE REWINDONLY
  • Fonte:
    • FROM URL (Armazenamento de Blobs do Azure) é a única opção suportada.
    • FROM DISK/TAPEO dispositivo /backup não é suportado.
    • Não há suporte para conjuntos de backup.
  • WITH opções não são suportadas. As tentativas de restauração, incluindo WITH como DIFFERENTIAL, , , e assim por diante, STATSREPLACEfalharão.

Uma operação de restauração de banco de dados é assíncrona e pode ser repetida na Instância Gerenciada SQL do Azure. Você pode receber um erro no SSMS se a conexão falhar ou um tempo limite expirar. A Instância Gerenciada SQL do Azure continua tentando restaurar o banco de dados em segundo plano e você pode acompanhar o progresso do processo de restauração usando as exibições de gerenciamento dinâmico sys.dm_exec_requests e sys.dm_operation_status .

As seguintes opções de banco de dados são definidas ou substituídas e não podem ser alteradas posteriormente:

  • NEW_BROKER se o broker não estiver habilitado no arquivo .bak.
  • ENABLE_BROKER se o broker não estiver habilitado no arquivo .bak.
  • AUTO_CLOSE=OFF Se um banco de dados no arquivo .bak tiver AUTO_CLOSE=ON.
  • RECOVERY FULL Se um banco de dados no arquivo .bak tiver SIMPLE ou BULK_LOGGED modelo de recuperação.
  • Um grupo de arquivos otimizado para memória é adicionado e chamado XTP se não estiver no arquivo de .bak de origem.
  • Qualquer grupo de arquivos com otimização de memória existente é renomeado para XTP.
  • SINGLE_USER e RESTRICTED_USER as opções são convertidas em MULTI_USER.

Limitações:

  • Os backups dos bancos de dados corrompidos podem ser restaurados dependendo do tipo de corrupção, mas os backups automatizados não são feitos até que a corrupção seja corrigida. Certifique-se de executar DBCC CHECKDB na instância gerenciada SQL de origem e usar o backup WITH CHECKSUM para evitar esse problema.
  • A restauração do arquivo 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 na Instância Gerenciada .BAK SQL.
  • .BAK Os arquivos que contêm vários conjuntos de backup não podem ser restaurados.
  • .BAK Os arquivos que contêm vários arquivos de log não podem ser restaurados.
  • Os backups que contêm bancos de dados maiores que 8 TB, objetos OLTP ativos na memória ou número de arquivos que excedem 280 arquivos por instância não podem ser restaurados em uma instância de uso geral.
  • 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 crítica para os negócios. Para obter informações sobre instruções de restauração, consulte Instruções RESTORE.

Importante

As mesmas limitações se aplicam à operação de restauração point-in-time integrada. Por exemplo, o banco de dados de uso geral maior que 4 TB não pode ser restaurado na instância crítica para os negócios. O banco de dados Business Critical com arquivos OLTP na memória ou mais de 280 arquivos não pode ser restaurado na instância de uso geral.

Agente de serviços

A troca de mensagens do agente de serviço entre instâncias é suportada apenas entre as Instâncias Gerenciadas SQL do Azure:

  • CREATE ROUTE: Você não pode usar CREATE ROUTE com ADDRESS outro nome que não LOCAL seja DNS de outra instância gerenciada do SQL. Porto é sempre 4022.
  • ALTER ROUTE: Você não pode usar ALTER ROUTE com ADDRESS outro nome que não LOCAL seja DNS de outra instância gerenciada do SQL. Porto é sempre 4022.

A segurança de transporte é suportada, a segurança de diálogo não é:

  • CREATE REMOTE SERVICE BINDINGnão é suportado.

O agente de serviços está habilitado por padrão e não pode ser desativado. As seguintes opções ALTER DATABASE não são suportadas:

  • ENABLE_BROKER
  • DISABLE_BROKER

Procedimentos armazenados, funções e gatilhos

  • NATIVE_COMPILATION não é suportado na camada de uso geral.
  • As seguintes opções de sp_configure não são suportadas:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote access
    • remote data archive
    • remote proc trans
    • scan for startup procs
  • As seguintes opções de sp_configure são ignoradas e não têm efeito:
    • Ole Automation Procedures
  • sp_execute_external_scriptssó tem suporte para Serviços de Aprendizado de Máquina para SQL MI, caso contráriosp_execute_external_scripts, não é suportado para Instância Gerenciada SQL. Ver sp_execute_external_scripts.
  • xp_cmdshell não é suportado. Ver xp_cmdshell.
  • Extended stored procedures não são suportados, e isso inclui sp_addextendedproc e sp_dropextendedproc. Essa funcionalidade não terá suporte porque está em um caminho de substituição para o SQL Server. Para obter mais informações, consulte Procedimentos armazenados estendidos.
  • sp_attach_db, sp_attach_single_file_dbe sp_detach_db não são suportados. Consulte sp_attach_db, sp_attach_single_file_db e sp_detach_db.

Funções e variáveis do sistema

As seguintes variáveis, funções e exibições retornam resultados diferentes:

  • SERVERPROPERTY('EngineEdition') Devolve o valor 8. Esta propriedade identifica exclusivamente uma instância gerenciada do SQL. Consulte SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') retorna NULL porque o conceito de instância tal como existe para o SQL Server não se aplica à Instância Gerenciada do SQL. Consulte SERVERPROPERTY('InstanceName').
  • @@SERVERNAME retorna um nome DNS completo "conectável", por exemplo, my-managed-instance.wcus17662feb9ce98.database.windows.net. Ver @@SERVERNAME.
  • SYS.SERVERSretorna um nome DNS completo "conectável", como myinstance.domain.database.windows.net para as propriedades "name" e "data_source". Consulte SYS. SERVIDORES.
  • @@SERVICENAME retorna NULL porque o conceito de serviço tal como existe para o SQL Server não se aplica à Instância Gerenciada do SQL. Ver @@SERVICENAME.
  • SUSER_ID é suportado. Ele retornará NULL se o login do Microsoft Entra não estiver no sys.syslogins. Ver SUSER_ID.
  • SUSER_SID não é suportado. Os dados errados são retornados, o que é um problema conhecido temporário. Ver SUSER_SID.

Restrições ambientais

Sub-rede

  • Não é possível colocar outros recursos (por exemplo, máquinas virtuais) na sub-rede onde você implantou sua Instância Gerenciada SQL. Implante esses recursos usando uma sub-rede diferente.
  • A sub-rede deve ter um número suficiente de endereços IP disponíveis. O mínimo é ter pelo menos 32 endereços IP na sub-rede.
  • O número de vCores e os tipos de instâncias que você pode implantar em uma região têm algumas restrições e limites.
  • Há uma configuração de rede que deve ser aplicada na sub-rede.

Rede virtual

  • A rede virtual pode ser implantada usando o Modelo de Recursos. O Modelo Clássico não oferece suporte à implantação de rede virtual (VNet).
  • Depois que uma instância gerenciada SQL é criada, não há suporte para mover a instância gerenciada SQL ou a VNet para outro grupo de recursos ou assinatura.
  • Para instâncias gerenciadas SQL hospedadas em clusters virtuais criados antes de 22 de setembro de 2020, não há suporte para emparelhamento global de VNet. Você pode se conectar a esses recursos via ExpressRoute ou VNet-to-VNet por meio de VNet Gateways.

Grupos de ativação pós-falha

As bases de dados do sistema não são replicadas na instância secundária num grupo de ativação pós-falha. Portanto, cenários que dependem de objetos dos bancos de dados do sistema são impossíveis na instância secundária, a menos que os objetos sejam criados manualmente na secundária.

tempdb

  • O tamanho máximo do arquivo do tempdb banco de dados do sistema não pode ser maior que 24 GB por núcleo em uma camada de uso geral. O tamanho máximo tempdb em uma camada Crítica de Negócios é limitado pelo tamanho de armazenamento da Instância Gerenciada SQL. tempdb O tamanho do arquivo de log é limitado a 120 GB na camada de uso geral. Algumas consultas podem retornar um erro se precisarem de mais de 24 GB por núcleo ou tempdb se produzirem mais de 120 GB de dados de log.
  • tempdb é sempre dividido em 12 arquivos de dados: 1 arquivo de dados primário, também chamado masterde , e 11 arquivos de dados não primários. A estrutura do arquivo não pode ser alterada e novos arquivos não podem ser adicionados ao tempdb.
  • Não há suporte para metadados TempDB otimizados para memória, um novo recurso de banco de dados na memória do SQL Server 2019.
  • Os objetos criados no model banco de dados não podem ser criados automaticamente após tempdb uma reinicialização ou um failover porque tempdb não obtém sua lista inicial de objetos do model banco de dados. Você deve criar objetos manualmente tempdb após cada reinicialização ou failover.

msdb

Os seguintes esquemas no banco de dados do msdb sistema na Instância Gerenciada SQL devem pertencer às suas respetivas funções predefinidas:

  • Funções gerais
    • TargetServersRole
  • Funções de banco de dados fixas
    • SQLAgentUserRole
    • SQLAgentReaderRole
    • SQLAgentOperatorRole
  • Funções do DatabaseMail:
    • DatabaseMailUserRole
  • Funções dos serviços de integração:
    • db_ssisadmin
    • db_ssisltduser
    • db_ssisoperator

Importante

Alterar os nomes de função, nomes de esquema e proprietários de esquema predefinidos pelos clientes afetará a operação normal do serviço. Quaisquer alterações feitas a eles serão revertidas para os valores predefinidos assim que detetadas ou, o mais tardar, na próxima atualização de serviço para garantir o funcionamento normal do serviço.

Registos de erros

A Instância Gerenciada SQL coloca informações detalhadas em logs de erro. Há muitos eventos internos do sistema que são registrados no log de erros. Use um procedimento personalizado para ler logs de erros que filtram algumas entradas irrelevantes. Para obter mais informações, consulte SQL Managed Instance – sp_readmierrorlog ou SQL Managed Instance extension(preview) for Azure Data Studio.

Não há suporte para alterar o número de logs de erro retidos.