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.
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 disponibilidade inclui as diferenças nos grupos de disponibilidade Always On e backups.
- A segurança inclui as diferenças em auditoria, certificados, credenciais, provedores criptográficos, logins e usuários, e a chave de serviço e a chave mestra de serviço.
- A configuração inclui as diferenças na extensão do pool de buffers, agrupamento, níveis de compatibilidade, espelhamento de banco de dados, opções de banco de dados, SQL Server Agent e opções de tabela.
- As funcionalidades incluem BULK INSERT/OPENROWSET, CLR, DBCC, transações distribuídas, eventos estendidos, bibliotecas externas, FILESTREAM e FileTable, Pesquisa Semântica de texto completo, servidores vinculados, PolyBase, Replication, RESTORE, Service Broker, procedimentos armazenados, funções e gatilhos.
- Configurações de ambiente, como VNets e configurações de sub-rede.
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:
- CRIAR ENDPOINT ... PARA DATABASE_MIRRORING
- CRIAR GRUPO DE DISPONIBILIDADE
- ALTERAR GRUPO DE DISPONIBILIDADE
- GRUPO DE DISPONIBILIDADE DE DROP
- A cláusula SET HADR da instrução ALTER DATABASE
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
,TAPE
e os dispositivos de backup não são suportados.
- Só o
- A maioria das opções gerais
WITH
são suportadas.COPY_ONLY
é obrigatório.FILE_SNAPSHOT
eCREDENTIAL
não são suportados.- Opções de fita:
REWIND
, ,UNLOAD
NOREWIND
eNOUNLOAD
não são suportadas. - Opções específicas de log:
NORECOVERY
,STANDBY
eNO_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 paraURL
. - 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.- Faça backup para
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 é suportadoFILE
/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:
CREATE CRYPTOGRAPHIC PROVIDER
não é suportado. Consulte CREATE CRYPTOGRAPHIC PROVIDER.ALTER CRYPTOGRAPHIC PROVIDER
não é suportado. Consulte ALTER CRYPTOGRAPHIC PROVIDER.
Inícios de sessão e utilizadores
Logons SQL criados usando
FROM CERTIFICATE
,FROM ASYMMETRIC KEY
eFROM 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 especificarFROM LOGIN
o , 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 nomaster
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ésEXEC AS USER = myAadUser
do . 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 comoSQL_USER
emsys.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.
- 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 é
- As seguintes configurações são suportadas usando o arquivo bacpac do banco de dados:
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 , ousysadmin
outros logons com permissão ALTER ANY LOGIN no nível do servidor podem criar entidades de servidor (logons) do Microsoft Entra nomaster
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:
- 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. - 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. - 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. - 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.
- Se a conta do Microsoft Entra estiver diretamente mapeada para um login do Microsoft Entra, que está presente no
Chave de serviço e chave mestra de serviço
- Não há suporte para backup de chave mestra (gerenciado pelo serviço Banco de dados SQL).
- Não há suporte para restauração de chave mestra (gerenciada pelo serviço Banco de dados SQL).
- Não há suporte para backup de chave mestra de serviço (gerenciado pelo serviço Banco de dados SQL).
- Não há suporte para restauração de chave mestra de serviço (gerenciada pelo serviço Banco de dados SQL).
Configuração
Extensão do pool de buffers
- A extensão do pool de buffers não é suportada.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
não é suportado. Consulte ALTER SERVER CONFIGURATION.
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
eSET 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
contiverFILESTREAM
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
depoisCREATE 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. RemovaFILENAME
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_profile
de .- 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:
- FLUXO DE ARQUIVOS
- TABELA DE ARQUIVOS
- TABELA EXTERNA (exceto PolyBase)
- MEMORY_OPTIMIZED (não suportado apenas na camada de uso geral)
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 noBULK INSERT
comando enquanto você importa arquivos do armazenamento de Blob do Azure. Consulte BULK INSERT.DATASOURCE
é necessário naOPENROWSET
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:
- Só o
CREATE ASSEMBLY FROM BINARY
é suportado. Consulte CREATE ASSEMBLY FROM BINARY. CREATE ASSEMBLY FROM FILE
não é suportado. Consulte CREATE ASSEMBLY FROM FILE.ALTER ASSEMBLY
não é possível fazer referência a ficheiros. Ver ALTER ASSEMBLY.
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.
Pesquisa semântica de texto completo
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 usandoBULK 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 , ,SQLNCLI11
SQLOLEDB
eMSOLEDBSQL
são suportadosSQLNCLI
como 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:
- Replicação entre um editor de SQL MI e um assinante de SQL MI
- Replicação entre um editor de SQL MI, um distribuidor de SQL MI e um assinante do SQL Server
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
/TAPE
O 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, incluindoWITH
comoDIFFERENTIAL
, , , e assim por diante,STATS
REPLACE
falharã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 tiverAUTO_CLOSE=ON
.RECOVERY FULL
Se um banco de dados no arquivo .bak tiverSIMPLE
ouBULK_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
eRESTRICTED_USER
as opções são convertidas emMULTI_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 backupWITH 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
ouFILETABLE
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 usarCREATE ROUTE
comADDRESS
outro nome que nãoLOCAL
seja DNS de outra instância gerenciada do SQL. Porto é sempre 4022.ALTER ROUTE
: Você não pode usarALTER ROUTE
comADDRESS
outro nome que nãoLOCAL
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 BINDING
nã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_scripts
só 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 incluisp_addextendedproc
esp_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_db
esp_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.SERVERS
retorna um nome DNS completo "conectável", comomyinstance.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 nosys.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áximotempdb
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 outempdb
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 chamadomaster
de , 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 aotempdb
.- 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óstempdb
uma reinicialização ou um failover porquetempdb
não obtém sua lista inicial de objetos domodel
banco de dados. Você deve criar objetos manualmentetempdb
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.
Conteúdos relacionados
- O que é a Instância Gerenciada SQL do Azure?
- Comparação de recursos: Banco de Dados SQL do Azure e Instância Gerenciada SQL do Azure
- O que há de novo na Instância Gerenciada SQL do Azure?
- Problemas conhecidos com a Instância Gerenciada SQL do Azure
- Início Rápido: Criar uma instância do Azure SQL Managed Instance