Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:Instância Gerenciada de SQL do Azure
Este artigo resume e explica as diferenças na sintaxe e no comportamento entre a Instância Gerenciada de SQL do Azure e o SQL Server.
A Instância Gerenciada de SQL fornece alta compatibilidade com o mecanismo de banco de dados do SQL Server, e a maioria dos recursos tem suporte em um Instância Gerenciada de SQL.
Há algumas limitações de PaaS que são introduzidas na Instância Gerenciada de SQL e algumas alterações de comportamento em comparação com o SQL Server. As diferenças são divididas nas seguintes categorias:
- A disponibilidade, incluindo as diferenças nos Grupos de Disponibilidade AlwaysOn e em backups.
- Segurança inclui as diferenças em auditoria, certificados, credenciais, provedores de criptografia, logons e usuários e chave de serviço e chave mestra de serviço.
- Configuração inclui as diferenças em extensão do pool de buffers, ordenação, 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, Replicação, Administrador de recursos, 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 temporários conhecidos descobertos na Instância Gerenciada de SQL e que serão resolvidos no futuro são descritos nas novidades na Instância Gerenciada de SQL do Azure?
Observação
O Microsoft Entra ID era anteriormente conhecido como Azure Active Directory (Azure AD).
Disponibilidade
Grupos de disponibilidade AlwaysOn
A alta disponibilidade é integrada à Instância Gerenciada de SQL e não pode ser controlada pelos usuários. As instruções a seguir não são compatíveis:
- CREATE ENDPOINT... FOR DATABASE_MIRRORING
- CRIAR GRUPO DE DISPONIBILIDADE
- ALTERAR GRUPO DE DISPONIBILIDADE
- DESCARTAR GRUPO DE DISPONIBILIDADE
- A cláusula SET HADR da instrução ALTERAR BANCO DE DADOS
Backup
A Instância Gerenciada de SQL do Azure tem backups automáticos, de modo que os usuários podem criar backups COPY_ONLY do banco de dados completo. Não há suporte para backups de instantâneo de arquivo, log e diferencial.
- Com uma Instância Gerenciada de SQL, você pode fazer backup de um banco de dados de instância somente em uma conta de Armazenamento de Blobs do Azure:
- Apenas
BACKUP TO URLtem suporte. -
FILE,TAPEe dispositivos de backup não são compatíveis.
- Apenas
- A maioria das opções gerais
WITHsão compatíveis.-
COPY_ONLYé obrigatório. -
FILE_SNAPSHOTeCREDENTIALnão são suportados. - Opções de fita:
REWIND,NOREWIND,UNLOADeNOUNLOADnão são compatíveis. - Opções específicas de log:
NORECOVERY,STANDBYeNO_TRUNCATEnão são compatíveis.
-
Limitações:
Com uma Instância Gerenciada de SQL, você pode fazer backup completo de um banco de dados de instância, com até 32 faixas, o que é suficiente para bancos de dados de até 4 TB caso a compactação de backup esteja em uso.
Você não pode executar
BACKUP DATABASE ... WITH COPY_ONLYem um banco de dados criptografado com TDE (criptografia de dados transparente) gerenciada pelo serviço. O TDE gerenciado por serviço força os backups a serem criptografados com uma chave TDE interna. A chave não pode ser exportada, portanto, não é possível restaurar o backup. Use backups automáticos e uma restauração pontual ou use TDE (BYOK) gerenciado pelo cliente em vez disso. Você também pode desabilitar a criptografia no banco de dados.Os backups nativos feitos em uma Instância Gerenciada de SQL podem ser restaurados somente em uma instância do SQL Server 2022. Isso ocorre porque a Instância Gerenciada de SQL tem uma versão de banco de dados interna mais recente em comparação com outras versões do SQL Server. Para obter mais informações, revise Restaurar um backup de banco de dados para o SQL Server 2022 da Instância Gerenciada de SQL do Azure.
Para fazer backup ou restaurar um banco de dados de/para um armazenamento do Azure, você pode autenticar usando identidade gerenciada ou SAS (assinatura de acesso compartilhado), que é um URI que concede a você direitos de acesso restrito aos recursos de armazenamento do Azure Saiba mais sobre isso. Não há suporte para o uso de chaves de acesso nesses cenários.
O tamanho máximo da faixa de backup usando o comando
BACKUPem uma Instância Gerenciada de SQL é 195 GB, que é o tamanho máximo do blob. Aumente o número de faixas no comando de backup para reduzir o tamanho da faixa individual e permaneça dentro desse limite.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:
- Faça backup em
DISKem vez de fazer backup emURL. - Carregar os arquivos no armazenamento de Blobs.
- Restaure na Instância Gerenciada de SQL.
O comando
Restoreem uma Instância Gerenciada de SQL 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.- Faça backup em
Para obter informações sobre backups usando o T-SQL, consulte BACKUP.
Segurança
Auditoria
As principais diferenças entre a auditoria no SQL do Microsoft Azure e no SQL Server são:
- Com a Instância Gerenciada de SQL, a auditoria funciona no nível do servidor. Os arquivos de log
.xelsã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 arquivos de log
.xelsão armazenados no armazenamento de Blob do Azure. - Com o SQL Server, máquinas locais ou 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 de SQL dá suporte a destinos de Armazenamento de Blobs do Azure. Logs de arquivo e do Windows não são compatíveis.
As principais diferenças na sintaxe CREATE AUDIT para a auditoria do armazenamento de Blobs do Azure são:
- Uma nova sintaxe
TO URLé fornecida para especificar a URL do contêiner de armazenamento de blobs do Azure onde arquivos.xelsão colocados. - A sintaxe
TO FILEnão tem suporte porque uma Instância Gerenciada de SQL não pode acessar compartilhamentos de arquivo do Windows.
Para obter mais informações, consulte:
Certificados
A Instância Gerenciada de SQL não pode acessar compartilhamentos de arquivo nem pastas do Windows e, portanto, as seguintes restrições se aplicam:
- O arquivo
CREATE FROM/BACKUP TOnão é compatível com certificados. - O certificado
CREATE/BACKUPdoFILE/ASSEMBLYnão é compatível. Arquivos de chave privada não podem ser usados.
Consulte CRIAR CERTIFICADO e CERTIFICADO DE BACKUP.
Solução alternativa: Em vez de criar backup de certificado e restaurar o backup, obter o conteúdo binário do certificado e a chave privada, armazená-los como arquivo .sql e criar de binários:
CREATE CERTIFICATE
FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);
Credencial
Identidade gerenciada, o Azure Key Vault e identidades SHARED ACCESS SIGNATURE têm suporte. Não há suporte para usuários do Windows.
Consulte CRIAR CREDENCIAL e ALTERAR CREDENCIAL.
Provedores criptográficos
Uma Instância Gerenciada de SQL não pode acessar arquivos e, portanto, provedores de criptografia não podem ser criados:
- Não há suporte para
CREATE CRYPTOGRAPHIC PROVIDER. Consulte CRIAR PROVEDOR CRIPTOGRÁFICO. - Não há suporte para
ALTER CRYPTOGRAPHIC PROVIDER. Consulte ALTERAR PROVEDOR CRIPTOGRÁFICO.
Logons e usuários
Logons do SQL criados usando
FROM CERTIFICATE,FROM ASYMMETRIC KEYeFROM SIDsão compatíveis. Consulte CREATE LOGIN. As entidades de segurança do servidor (logons) são criadas no nível do servidor e os usuários (entidades de segurança do banco de dados) são criados no nível do banco de dados. Há suporte para logons do Microsoft Entra criados com a sintaxe CREATE LOGIN e usuários do Microsoft Entra criados com a sintaxe CREATE USER FROM LOGIN. Ao criar um usuário e especificarFROM LOGIN, 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 de SQL oferece suporte à criação de usuários de banco de dados independente 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 segurança do servidor, mesmo que exista uma entidade de segurança do servidor com o mesmo nome no banco de dadosmaster.Logons do Windows criados com a sintaxe
CREATE LOGIN ... FROM WINDOWSnão têm suporte. Usar logons 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 dão suporte ao uso de logons do Microsoft Entra em interações entre instâncias, mas apenas em uma única Instância Gerenciada de SQL, como a replicação do SQL Server, por exemplo. O recurso de servidor vinculado, no entanto, dá suporte à autenticação entre instâncias usando entidades de segurança de servidor do Microsoft Entra (logons).
Não há suporte para a configuração de um logon do Microsoft Entra mapeado para um grupo do Microsoft Entra como proprietário do banco de dados. Um membro do grupo do Microsoft Entra pode ser um proprietário do banco de dados, mesmo que o logon não tenha sido criado no banco de dados.
Há suporte para a usurpação de identidade de entidades de segurança no nível do servidor do Microsoft Entra usando outras entidades de segurança do Microsoft Entra, como a cláusula EXECUTE AS. As limitações de executar como são:
EXECUTE AS USER não tem suporte para usuários do Microsoft Entra quando o nome é diferente do nome de logon. Por exemplo, quando o usuário for criado por meio da sintaxe
CREATE USER [myAadUser] FROM LOGIN [john@contoso.com]e uma tentativa de representação for realizada por meio deEXEC AS USER = myAadUser. Ao criar um USER de um logon 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 função
sysadminpodem executar as seguintes operações direcionadas a entidades de segurança do Microsoft Entra:- EXECUTAR COMO USUÁRIO
- EXECUTAR COMO LOGON
Para a usurpar a identidade de um usuário com a instrução EXECUTE AS, o usuário precisará ser mapeado diretamente para o logon do Microsoft Entra. Os usuários que são membros de grupos do Microsoft Entra mapeados para entidades de segurança de servidor do Microsoft Entra não podem receber efetivamente uma usurpação de identidade com a instrução EXECUTE AS, mesmo que o chamador tenha as permissões de usurpação de identidade no nome de usuário especificado.
Há suporte à exportação e à importação do banco de dados usando arquivos BACPAC para os usuários do Microsoft Entra na Instância Gerenciada de SQL que usam o SSMS V18.4 ou posterior ou o SqlPackage.
- As seguintes configurações são compatíveis usando um arquivo de banco de dados bacpac:
- Exportar ou importar um banco de dados entre diferentes instâncias de gerenciamento dentro do mesmo domínio do Microsoft Entra.
- Exportar um banco de dados da Instância Gerenciada de SQL e importar para o banco de dados SQL no mesmo domínio do Microsoft Entra.
- Exportar um banco de dados do banco de dados SQL e importar para a Instância Gerenciada de SQL no mesmo domínio do Microsoft Entra.
- Exportar um banco de dados da Instância Gerenciada de 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 segurança do banco de dados do SQL Server (usuários) sem logons. O tipo de usuário é
SQLe está visível comoSQL_USERemsys.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, elas não podem ser usadas para acessar e entrar no SQL Server usando as credenciais.
- Nessa configuração, todos os usuários do Microsoft Entra são criados como entidades de segurança do banco de dados do SQL Server (usuários) sem logons. O tipo de usuário é
- As seguintes configurações são compatíveis usando um arquivo de banco de dados bacpac:
Somente o logon da entidade de segurança no nível do servidor, que é criado pelo processo de provisionamento da Instância Gerenciada de SQL, membros das funções de servidor, como
securityadminousysadminou outros logons com permissão ALTER ANY LOGIN no nível do servidor podem criar entidades de segurança do servidor do Microsoft Entra (logons) no banco de dadosmasterda Instância Gerenciada de SQL.Os logons baseados em autenticação do SQL devem receber a função
sysadminpara 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 de SQL do Azure está hospedada.
Entidades de segurança do servidor do Microsoft Entra (logons) são visíveis no Pesquisador de Objetos a partir do SQL Server Management Studio 18.0 versão prévia 5.
Uma entidade de segurança do servidor com nível de acesso sysadmin é criada automaticamente para o administrador do Microsoft Entra após ser habilitada em uma instância.
Durante a autenticação, a sequência a seguir é aplicada para resolver a entidade de segurança de autenticação:
- Se a conta do Microsoft Entra for mapeada diretamente para um logon do Microsoft Entra, que está presente em
sys.server_principalscomo tipo "E", conceda acesso e aplique permissões desse logon. - Se a conta do Microsoft Entra for membro de um grupo mapeado para um logon do Microsoft Entra, que está presente em
sys.server_principalscomo tipo "X", conceda acesso e aplique permissões desse logon. - Se a conta do Microsoft Entra existir como mapeada diretamente para um usuário do Microsoft Entra em um banco de dados, presente em
sys.database_principalscomo tipo "E", conceda acesso e aplique permissões do usuário do banco de dados do 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 em
sys.database_principalscomo tipo "X", conceda acesso e aplique permissões do usuário do grupo do Microsoft Entra.
- Se a conta do Microsoft Entra for mapeada diretamente para um logon do Microsoft Entra, que está presente em
Chave de serviço e chave mestra de serviço
- Backup da chave mestra não tem suporte (gerenciado pelo serviço de banco de dados SQL).
- A restauração da chave mestra não tem suporte (gerenciado pelo serviço de banco de dados SQL).
- O backup da chave mestra de serviço não é compatível (gerenciado pelo serviço de banco de dados SQL).
- A restauração da chave mestra de serviço não é compatível (gerenciado pelo serviço de banco de dados SQL).
Configuração
Extensão do pool de buffers
- A extensão de pool de buffers não é compatível.
- Não há suporte para
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION. Consulte ALTERAR CONFIGURAÇÃO DO SERVIDOR.
Ordenação
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. Consulte Ordenações.
Níveis de compatibilidade
- Os níveis de compatibilidade com suporte 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 permanecerá inalterado se ele for 100 ou superior.
Consulte o nível de compatibilidade ALTER DATABASE.
Espelhamento de banco de dados
Não há suporte para espelhamento de banco de dados.
- As opções
ALTER DATABASE SET PARTNEReSET WITNESSnão são suportadas. - Não há suporte para
CREATE ENDPOINT ... FOR DATABASE_MIRRORING.
Para obter mais informações, consulte ALTER DATABASE SET PARTNER e SET WITNESS e CREATE ENDPOINT... FOR 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. Os arquivos de log e de dados na camada de Uso Geral são contados para esse limite. A camada de Comercialmente Crítico é compatível com 32.767 arquivos por banco de dados.
- O banco de dados não pode conter grupos de arquivos que contenham dados FILESTREAM . A restauração falhará se
.bakcontiver dadosFILESTREAM. - Cada arquivo é colocado no Armazenamento de Blobs 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 se aplicam a CREATE DATABASE:
Arquivos e grupos de arquivos não podem ser definidos.
Um grupo de arquivos e um arquivo com otimização de memória são adicionados automaticamente e são chamados de XTP.
A opção
CONTAINMENTnão é compatível.As opções
WITHnão são compatíveis.Dica
Como alternativa, use
ALTER DATABASEdepoisCREATE DATABASEpara definir opções de banco de dados para adicionar arquivos ou para definir a contenção.A opção
FOR ATTACHnão é compatível.A opção
AS SNAPSHOT OFnão é compatível.
Para saber mais, confira CRIAR BANCO DE DADOS.
instrução ALTER DATABASE
Algumas propriedades de arquivo não podem ser definidas ou alteradas:
- O caminho do arquivo não pode ser especificado na instrução T-SQL
ALTER DATABASE ADD FILE (FILENAME='path'). RemovaFILENAMEdo script porque uma Instância Gerenciada de SQL coloca os arquivos automaticamente. - O nome do arquivo não pode ser alterado usando a instrução
ALTER DATABASE. - Não é permitido alterar o arquivo ou o grupo de arquivos XTP.
As opções a seguir são definidas por padrão e não podem ser alteradas:
MULTI_USERENABLE_BROKERAUTO_CLOSE OFF
As seguintes opções não podem ser modificadas:
AUTO_CLOSEAUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)DISABLE_BROKEREMERGENCYENABLE_BROKERFILESTREAMHADRNEW_BROKEROFFLINEPAGE_VERIFYPARTNERREAD_ONLYRECOVERY BULK_LOGGEDRECOVERY_SIMPLEREMOTE_DATA_ARCHIVERESTRICTED_USERSINGLE_USERWITNESS
Algumas instruções ALTER DATABASE (por exemplo, SET CONTAINMENT) podem falhar temporariamente, por exemplo, durante o backup automatizado do banco de dados ou logo após a criação de um banco de dados. Nesse caso, a instrução ALTER DATABASE deve ser repetida. Para obter mais informações sobre mensagens de erro relacionadas, confira a seção Comentários.
Para saber mais, confira ALTERAR BANCO DE DADOS.
Agente do SQL Server
- No momento, a habilitação e a desabilitação do SQL Server Agent não é compatível com a Instância Gerenciada de SQL. O SQL Agent sempre está em execução.
- Não há suporte para o gatilho de agendamento de cargo com base em uma CPU ociosa.
- As configurações do SQL Server Agent são somente leitura. O procedimento
sp_set_agent_propertiesnão tem suporte na Instância Gerenciada de SQL. - Trabalhos
- As etapas de trabalho T-SQL têm suporte.
- Os trabalhos de replicação a seguir têm suporte:
- Leitor do log de transações
- Instantâneo
- Distribuidor
- As etapas de trabalho SSIS são compatíveis.
- Outros tipos de etapas de trabalho não são compatíveis no momento:
- A etapa de trabalho de replicação de mesclagem não é compatível.
- Não há suporte para leitor de fila.
- O shell de comando ainda não é compatível.
- A Instância Gerenciada de SQL não pode acessar recursos externos, por exemplo, compartilhamentos de rede por meio do Robocopy.
- O SQL Server Analysis Services não tem suporte.
- Há suporte parcial para notificações.
- Notificações por email são compatíveis, embora seja necessário configurar um perfil de Database Mail. O SQL Server Agent pode usar apenas um perfil do Database Mail e ele deve ser chamado de
AzureManagedInstance_dbmail_profile.- Não há suporte para o Pager.
- Não há suporte para o NetSend.
- Ainda não há suporte para alertas.
- Não há suporte para proxies.
- Não há suporte para o EventLog.
- O usuário deve ser mapeado diretamente para o logon de servidor do Microsoft Entra a fim de criar, modificar ou executar cargos do SQL Agent. Os usuários que não são mapeados diretamente, por exemplo, usuários que pertencem a um grupo do Microsoft Entra que tenha os direitos de criar, modificar ou executar cargos do SQL Agent, não poderão executar essas ações efetivamente. Isso ocorre devido à representação da Instância Gerenciada de SQL e às limitações de EXECUTE AS.
- Não há suporte para o recurso de administração multisservidor para cargos mestre/de meta (MSX/TSX).
Para obter informações sobre o SQL Server Agent, consulte SQL Server Agent.
Tabelas
Não há suporte para os seguintes tipos de tabela:
- FLUXO DE ARQUIVOS
- FileTables
- EXTERNAL TABLE (exceto PolyBase)
- MEMORY_OPTIMIZED (sem suporte apenas na camada Uso Geral)
Para obter informações sobre a criação e alteração de tabelas, consulte CRIAR TABELA e ALTERAR TABELA.
Funcionalidades
BULK INSERT/OPENROWSET
Uma Instância Gerenciada de SQL não pode acessar compartilhamentos de arquivo e pastas do Windows. Portanto, os arquivos precisam ser importados do Armazenamento de Blobs do Azure:
-
DATASOURCEé necessário no comandoBULK INSERTdurante a importação de arquivos do armazenamento de blobs do Azure. Consulte INSERÇÃO EM MASSA. -
DATASOURCEé necessário na funçãoOPENROWSETquando você ler um conteúdo de um arquivo do armazenamento de blobs do Azure. Consulte OPENROWSET. -
OPENROWSETpode ser usado para ler dados do Banco de Dados SQL do Azure, da Instância Gerenciada de 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
A Instância Gerenciada de SQL não pode acessar compartilhamentos de arquivo nem pastas do Windows. Portanto, as seguintes restrições se aplicam:
- Apenas
CREATE ASSEMBLY FROM BINARYtem suporte. Consulte CRIAR ASSEMBLY A PARTIR DE BINÁRIO. - Não há suporte para
CREATE ASSEMBLY FROM FILE. Consulte CRIAR ASSEMBLY A PARTIR DE ARQUIVO. -
ALTER ASSEMBLYnão pode referenciar arquivos. Consulte ALTERAR ASSEMBLY.
Correio de banco de dados (db_mail)
-
sp_send_dbmailnão pode enviar anexos usando o parâmetro @file_attachments. O sistema de arquivos local e os compartilhamentos externos ou o armazenamento de Blobs do Azure não são acessíveis nesse procedimento. - Consulte os problemas conhecidos relacionados ao parâmetro
@querye à autenticação.
DBCC
Não há suporte para instruções DBCC não documentadas que estão habilitadas no SQL Server em Instâncias Gerenciadas de SQL.
- Há suporte apenas para um número limitado de sinalizadores de rastreamento globais. Não há suporte para
Trace flagsem nível de sessão. Consulte Definir sinalizadores de rastreamento com DBCC TRACEON. - DBCC TRACEOFF e DBCC TRACEON funcionam com o número limitado de sinalizadores de rastreamento global.
-
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 modo
SINGLE_USER. Confira Diferenças do ALTER DATABASE. Possíveis bancos de dados corrompidos são tratados 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 em disponibilidade geral. 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 (Coordenador de Transações Distribuídas) para a Instância Gerenciada de SQL do Azure, que está disponível em versão prévia pública.
Eventos estendidos
Não há suporte para alguns destinos específicos do Windows para XEvents:
- Não há suporte para o destino
etw_classic_sync. Armazenar arquivos.xelno armazenamento de blobs do Azure. Consulte etw_classic_sync target. - Não há suporte para o destino
event_file. Armazenar arquivos.xelno armazenamento de blobs do Azure. Consulte event_file target.
Bibliotecas externas
As bibliotecas externas do banco de dados R e Python têm suporte em visualização pública limitada. Consulte os Serviços de Machine Learning na Instância Gerenciada de SQL do Azure.
FILESTREAM e FileTable
- Não há suporte para dados FILESTREAM.
- O banco de dados não pode conter grupos de arquivos com dados
FILESTREAM. - Não há suporte para
FILETABLE. - As tabelas não podem ter tipos
FILESTREAM. - Não há suporte para as seguintes funções:
GetPathLocator()GET_FILESTREAM_TRANSACTION_CONTEXT()PathName()GetFileNamespacePat)FileTableRootPath()
Para obter mais informações, consulte FILESTREAM e FileTables.
Pesquisa semântica de texto completo
Não há suporte para Pesquisa semântica.
Servidores vinculados
Servidores vinculados na Instância Gerenciada de SQL dão suporte a um número limitado de destinos:
- Os destinos com suporte são Instância Gerenciada de SQL, Banco de Dados SQL, pools dedicados e sem servidor do SQL do Azure Synapse e instâncias do SQL Server.
- Destinos sem suporte: arquivos, Analysis Services e outros RDBMS. Tente usar a importação de CSV nativo do Armazenamento de Blobs do Azure usando
BULK INSERTouOPENROWSETcomo uma alternativa para importação de arquivo ou carregar arquivos usando um pool de SQL sem servidor no Azure Synapse Analytics.
Operações:
-
sp_dropserveré compatível com o descarte um servidor vinculado. Consulte sp_dropserver. - A função
OPENROWSETpode ser usada para executar consultas somente em instâncias SQL Server. Eles podem ser gerenciados localmente ou em máquinas virtuais. Consulte OPENROWSET. - A função OPENDATASOURCE pode ser usada para executar consultas somente nas instâncias do SQL Server. Eles podem ser gerenciados localmente ou em máquinas virtuais. Um exemplo é
SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee. Só há suporte para os valoresSQLNCLI,SQLNCLI11,SQLOLEDBeMSOLEDBSQLcomo provedor. O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 e do SSMS (SQL Server Management Studio) 19. O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento. Alterne para o novo Driver do Microsoft OLE DB para SQL Server ou o Microsoft ODBC Driver for SQL Server mais recente daqui para frente. - Os servidores vinculados não podem ser usados para arquivos de leitura (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 de SQL sem servidor no Synapse Analytics. Acompanhe essas solicitações no item de comentário da Instância Gerenciada de SQL
Os servidores vinculados na Instância Gerenciada de SQL do Azure dão suporte à autenticação SQL e à autenticação do Microsoft Entra.
PolyBase
A virtualização de dados com a Instância Gerenciada de SQL do Azure permite executar consultas T-SQL (Transact-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 por meio de junções. Os formatos de arquivo parquet e de texto delimitado (CSV) têm suporte direto. O formato de arquivo JSON tem suporte indiretamente especificando o formato de arquivo CSV em que as consultas retornam todos os documentos como uma linha separada. É possível analisar as linhas ainda mais usando o JSON_VALUE e OPENJSON. Para obter informações gerais sobre o PolyBase, consulte Virtualização de dados com o PolyBase no SQL Server.
Além disso, CETAS (CREATE EXTERNAL TABLE AS SELECT) permite exportar dados de sua instância gerenciada de SQL para uma conta de armazenamento externa. Você pode usar o CETAS para criar uma tabela externa sobre arquivos Parquet ou CSV Armazenamento de Blobs do Azure ou ADLS (Azure Data Lake Storage) 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 de instantâneo e bidirecional. 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 de SQL com algumas restrições:
- Todos os tipos de participantes de replicação (editor, distribuidor, assinante de pull e assinante de push) podem ser colocados na Instância Gerenciada de SQL, mas o publicador e o distribuidor devem estar tanto na nuvem quanto no local.
- A Instância Gerenciada de SQL pode se comunicar com as versões recentes do SQL Server. Para obter mais informações, confira a matriz de versões com suporte.
- 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:
- Tutorial: Configurar a replicação entre duas instâncias gerenciadas
- Tutorial: Configurar a replicação transacional entre a Instância Gerenciada de SQL do Azure e o SQL Server
Administrador de recursos
Há suporte para o administrador de recursos. No entanto, há várias diferenças de comportamento:
- Para modificar a configuração do administrador de recursos na Instância Gerenciada de SQL, você deve estar no contexto do
masterbanco de dados na réplica primária. - Alterações de configuração do administrador de recursos feitas na réplica primária são propagadas para todas as réplicas secundárias. No entanto, as alterações na configuração atualmente eficaz em uma réplica secundária podem não ser imediatas. Para tornar as alterações efetivas em uma réplica secundária, conecte-se ao
masterbanco de dados em uma réplica secundária e executeALTER RESOURCE GOVERNOR RECONFIGURE. - No SQL Server, se a
REQUEST_MAX_CPU_TIME_SECconfiguração estiver configurada para um grupo de carga de trabalho e uma solicitação em lote exceder o tempo de CPU configurado, ocpu_threshold_exceededevento será acionado, mas a solicitação não será encerrada, a menos que um sinalizador de rastreamento esteja habilitado. Na Instância Gerenciada de SQL, o mesmo evento é acionado e a solicitação sempre é encerrada. Para obter mais informações, consulte REQUEST_MAX_CPU_TIME_SEC. - O número máximo de pools de recursos que você pode criar é 40.
Instrução RESTAURAR
- Sintaxe suportada:
RESTORE DATABASERESTORE FILELISTONLYRESTORE HEADERONLYRESTORE LABELONLYRESTORE VERIFYONLY
- Sintaxe não suportada:
RESTORE LOGONLYRESTORE REWINDONLY
- Origem:
-
FROM URL(Armazenamento de Blobs do Azure) é a única opção compatível. - Não há suporte para
FROM DISK/TAPE/dispositivo de backup. - Conjuntos de backup não são compatíveis.
-
- As opções
WITHnão são compatíveis. As tentativas de restauração, incluindoWITHcomoDIFFERENTIAL,STATS,REPLACEe assim por diante, falharão.
Uma operação de restauração de banco de dados é assíncrona e repetível na Instância Gerenciada de SQL do Azure. Talvez você receba um erro no SSMS em caso de falha na conexão ou se o tempo limite for atingido. A Instância Gerenciada de SQL do Azure continua tentando restaurar o banco de dados em segundo plano, e você pode acompanhar o progresso do processo da 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/substituídas e não podem ser alteradas posteriormente:
-
NEW_BROKERse o agente não estiver habilitado no arquivo .bak. -
ENABLE_BROKERse o agente não estiver habilitado no arquivo .bak. -
AUTO_CLOSE=OFFse um banco de dados no arquivo .bak tiverAUTO_CLOSE=ON. -
RECOVERY FULLse um banco de dados no arquivo .bak tiver modelo de recuperaçãoSIMPLEouBULK_LOGGED. - O grupo de arquivos otimizados por memória é adicionado e chamado de XTP caso não estivesse no arquivo .bak de origem.
- Qualquer grupo de arquivos otimizado para memória existente é renomeado para XTP.
- As opções
SINGLE_USEReRESTRICTED_USERsã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 serão feitos até que a corrupção seja corrigida. Execute
DBCC CHECKDBna Instância Gerenciada de SQL de origem e use o backupWITH CHECKSUMpara evitar esse problema. - A restauração do arquivo
.BAKde um banco de dados que contenha qualquer limitação descrita neste documento (por exemplo, objetosFILESTREAMouFILETABLE) não pode ser realizada na Instância Gerenciada de SQL. - Os arquivos
.BAKcontendo vários conjuntos de backup não podem ser restaurados. - Os arquivos
.BAKcontendo vários arquivos de log não podem ser restaurados. - 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.
- Os backups que contenham bancos de dados maiores que 4 TB ou objetos OLTP in-memory com o tamanho total maior do que o tamanho descrito em limites de recursos não podem ser restaurados na instância Comercialmente Crítico. Para obter informações sobre instruções de restauração, consulte instruções RESTAURAR.
Importante
As mesmas limitações se aplicam à operação de restauração pontual interna. Por exemplo, o banco de dados de Uso Geral maior que 4 TB não pode ser restaurado na instância comercialmente crítica. O banco de dados Comercialmente Crítico com arquivos OLTP na memória ou mais de 280 arquivos não pode ser restaurado na instância de Uso Geral.
Service Broker
A troca de mensagens do Service Broker entre instâncias tem suporte apenas entre Instâncias Gerenciadas de SQL do Azure:
-
CREATE ROUTE: não é possível usarCREATE ROUTEcomADDRESSem vez deLOCALou um nome DNS de outra Instância Gerenciada de SQL. A porta é sempre 4022. -
ALTER ROUTE: não é possível usarALTER ROUTEcomADDRESSem vez deLOCALou um nome DNS de outra Instância Gerenciada de SQL. A porta é sempre 4022.
Há suporte para a segurança do transporte, mas não para a segurança da caixa de diálogo:
- Não há suporte para
CREATE REMOTE SERVICE BINDING.
O service broker está habilitado por padrão para bancos de dados recém-criados e não pode ser desabilitado. O estado do agente de serviço para bancos de dados restaurados/migrados é herdado do banco de dados de origem e não pode ser alterado. As seguintes opções de ALTER DATABASE não têm suporte:
ENABLE_BROKERDISABLE_BROKER
Procedimentos, funções, gatilhos armazenados
-
NATIVE_COMPILATIONnão tem suporte na camada de Uso Geral. - Não há suporte para as seguintes opções sp_configure:
allow polybase exportallow updatesfilestream_access_levelremote accessremote data archiveremote proc transscan for startup procs
- As seguintes opções sp_configure são ignoradas e não têm nenhum efeito:
Ole Automation Procedures
-
sp_execute_external_scriptssó há suporte para Serviços de Machine Learning na Instância Gerenciada de SQL do Azure, caso contráriosp_execute_external_scripts, não há suporte para a Instância Gerenciada de SQL. Consulte sp_execute_external_scripts. - Não há suporte para
xp_cmdshell. Consulte xp_cmdshell. -
Extended stored proceduresnão tem suporte, e isso incluisp_addextendedprocesp_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 do Mecanismo de Banco de Dados de Programação. - Não há suporte para
sp_attach_db,sp_attach_single_file_dbesp_detach_db. Consulte sp_attach_db, sp_attach_single_file_db e sp_detach_db. -
sp_addmessagenão há suporte na Instância Gerenciada de SQL do Azure.
Função do sistema e variáveis
As seguintes variáveis, funções e exibições retornam resultados diferentes:
-
SERVERPROPERTY('EngineEdition')retorna o valor 8. Essa propriedade identifica exclusivamente uma Instância Gerenciada de SQL. Consulte SERVERPROPERTY. -
SERVERPROPERTY('InstanceName')retornaNULLporque o conceito de instância como ela existe para o SQL Server não se aplica à Instância Gerenciada de SQL. Consulte SERVERPROPERTY('InstanceName'). -
@@SERVERNAMEretorna um nome DNS "conectável" completo, por exemplo,my-managed-instance.wcus17662feb9ce98.database.windows.net. Veja@@SERVERNAME. -
SYS.SERVERSretorna um nome "conectável" de DNS completo, comomyinstance.___domain.database.windows.netpara as propriedades "name" e "data_source". Consulte sys.servers. -
@@SERVICENAMEretornaNULLporque o conceito de serviço como ele existe para o SQL Server não se aplica à Instância Gerenciada de SQL. Veja @@SERVICENAME. -
SUSER_IDé compatível. Ele retornaráNULLse o logon do Microsoft Entra não estiver .sys.sysloginsConsulte SUSER_ID. - Não há suporte para
SUSER_SID. Os dados errados são retornados, o que é um problema temporário conhecido. Consulte SUSER_SID.
Restrições de ambiente
Sub-rede
- Você não pode inserir outros recursos (por exemplo, máquinas virtuais) na sub-rede em que implantou sua Instância Gerenciada de SQL. Implante esses recursos usando uma sub-rede diferente.
- A sub-rede deve ter um número suficiente de endereços IPdisponíveis. O mínimo necessário é 32 endereços IP na sub-rede.
- O número de vCores e tipos de instâncias que podem ser implantadas 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 recurso. O Modelo Clássico não dá suporte à implantação de rede virtual (VNet).
- Depois que uma instância gerenciada de SQL é criada, não há suporte para mover a instância gerenciada de SQL ou a VNet para outro grupo de recursos ou assinatura.
- Para instâncias gerenciadas de SQL hospedadas em clusters virtuais criados antes de 22 de setembro de 2020, não há suporte para o emparelhamento global de VNet. Você pode se conectar a esses recursos por meio do ExpressRoute ou VNet para VNet por meio de Gateways de Rede Virtual.
Grupos de failover
Os bancos de dados do sistema não são replicados para a instância secundária em um grupo de failover. Portanto, os 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 nela.
tempdb
- O tamanho máximo do arquivo do banco de dados do sistema
tempdbnão pode ser maior que 24 GB por núcleo em uma camada de Uso Geral. O tamanho máximo detempdbem uma camada Comercialmente Crítico é limitado pelo tamanho do armazenamento da Instância Gerenciada de SQL. O tamanho do arquivo de logtempdbé limitado a 120 GB na camada uso geral. Algumas consultas podem retornar um erro se precisarem de mais de 24 GB por núcleo emtempdbou se produzirem mais de 120 GB de dados de log. -
tempdbsempre está divido em 12 arquivos de dados: um arquivo de dados primário, também chamado demaster, e 11 arquivos de dados não primários. A estrutura de arquivos não pode ser alterada, e não é possível adicionar novos arquivos atempdb. - Memory-optimized TempDB metadata, não há suporte para um novo recurso do banco de dados em memória do SQL Server 2019.
- Os objetos criados no banco de dados
modelnão podem ser criados automaticamente emtempdbapós uma reinicialização ou um failover porquetempdbnão obtém sua lista inicial de objetos do banco de dadosmodel. Você deve criar objetos emtempdbmanualmente após cada reinicialização ou failover.
msdb
Os seguintes esquemas no banco de dados do sistema msdb na Instância Gerenciada de SQL precisam ser de propriedade das respectivas funções predefinidas:
- Funções gerais
- TargetServersRole
-
Funções de banco de dados fixas
- SQLAgentUserRole
- SQLAgentReaderRole
- Função de Operador do Agente SQL
-
Funções de DatabaseMail:
- Função de usuário de DatabaseMail
-
Funções dos serviços de integração:
- db_ssisadmin
- db_ssisltduser
- db_ssisoperator
Importante
Alterar os nomes da função predefinidos, os nomes de esquema e os proprietários de esquema por clientes afetará a operação normal do serviço. Todas as alterações feitas a elas serão revertidas para os valores predefinidos assim que forem detectadas ou na próxima atualização de serviço, na versão mais recente, para garantir a operação normal de serviço.
Logs de erros
Uma Instância Gerenciada de SQL coloca informações detalhadas em logs de erros. Há muitos eventos internos do sistema que são registrados no log de erros. Usar um procedimento personalizado para a leitura de logs de erros que filtra algumas entradas não relevantes. Para obter mais informações, consulte a Instância Gerenciada de SQL – sp_readmierrorlog.
Não há suporte para a alteração do número de logs de erros retidos.
Conteúdo relacionado
- O que é Instância Gerenciada de SQL do Azure?
- Comparação de recursos: Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure
- Quais as novidades na Instância Gerenciada de SQL do Azure?
- Problemas conhecidos da Instância Gerenciada de SQL do Azure
- Início Rápido: criar Instância Gerenciada de SQL do Azure