Limitações e problemas conhecidos com o Azure Synapse Link for SQL
Este artigo lista as limitações e os problemas conhecidos com o Azure Synapse Link for SQL.
Limitações
As seções a seguir listam as limitações do Azure Synapse Link for SQL.
Banco de Dados SQL do Azure e SQL Server 2022
- As tabelas de origem devem ter chaves primárias.
- Somente uma réplica primária gravável é suportada como a fonte de dados para o Azure Synapse Link for SQL.
- Os seguintes tipos de dados não são suportados para chaves primárias nas tabelas de origem.
- reais
- flutuar
- Hierarquia
- sql_variant
- Carimbo de data/hora
- O tamanho da linha da tabela de origem não pode exceder 7.500 bytes. Para tabelas em que colunas de comprimento variável são armazenadas fora da linha, um ponteiro de 24 bytes é armazenado no registro principal.
- Quando as tabelas de origem estão sendo inicialmente capturadas em instantâneo, não há suporte para quaisquer dados de tabela de origem que contenham dados de objeto grande (LOB) com mais de 1 MB de tamanho. Esses tipos de dados LOB incluem: varchar(max), nvarchar(max), varbinary(max). Um erro é gerado e os dados não são exportados para o Azure Synapse Analytics. Use o sp_configure de procedimento armazenado para aumentar o valor máximo configurado para
max text repl size
a opção, que tem como padrão 64 K. Um valor configurado de indica nenhum limite, além do limite imposto pelo tipo de-1
dados. - As tabelas habilitadas para o Azure Synapse Link for SQL podem ter no máximo 1.020 colunas (não 1.024).
- Embora um banco de dados possa ter vários links habilitados, uma determinada tabela não pode pertencer a vários links.
- Quando um proprietário de banco de dados não tem um logon mapeado, o Azure Synapse Link for SQL encontra um erro ao habilitar uma conexão de link. O usuário pode definir o proprietário do banco de dados como um usuário válido com o
ALTER AUTHORIZATION
comando para corrigir esse problema. - Se a tabela de origem contiver colunas computadas ou colunas com tipos de dados que pools SQL dedicados não suportam, as colunas não serão replicadas. As colunas sem suporte incluem o seguinte.
- imagem
- texto
- xml
- Carimbo de data/hora
- sql_variant
- UDT
- Geometria
- Geografia
- Um máximo de 5.000 tabelas podem ser adicionadas a uma única conexão de link.
- As operações DDL (linguagem de definição de dados de tabela) a seguir não são permitidas em tabelas de origem quando estão habilitadas para o Azure Synapse Link for SQL. Todas as outras operações DDL são permitidas, mas não são replicadas para o Azure Synapse Analytics.
- Alternar partição
- Adicionar/Soltar/Alterar Coluna
- Alterar chave primária
- Tabela suspensa/truncada
- Renomear tabela
- Se a linguagem de definição de dados (DDL) + linguagem de manipulação de dados (DML) for executada em uma transação explícita (entre
BEGIN TRANSACTION
eEND TRANSACTION
instruções), a replicação para tabelas correspondentes falhará na conexão de link.Nota
Se uma tabela for crítica para a consistência transacional no nível de conexão de link, revise o estado da tabela Azure Synapse Link na guia Monitoramento.
- O Azure Synapse Link for SQL não pode ser habilitado se algum dos seguintes recursos estiver em uso para a tabela de origem.
- Captura de Dados Alterados
- Tabela de história temporal
- Always Encrypted
- Tabelas na memória
- Índice Columnstore
- Gráfico
- As tabelas do sistema não podem ser replicadas.
- A configuração de segurança do banco de dados de origem NÃO será refletida no pool SQL dedicado de destino.
- Habilitar o Azure Synapse Link for SQL cria um novo esquema chamado
changefeed
. Não use esse esquema, pois ele é reservado para uso do sistema. - As tabelas de origem com agrupamentos que não são suportados por pools SQL dedicados, como UTF-8 e determinados agrupamentos japoneses, não podem ser replicadas. Consulte agrupamentos suportados em pools SQL Synapse.
- Além disso, o Azure Synapse Link for SQL não oferece suporte a alguns agrupamentos de idiomas tailandeses:
Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentInsensitiveKanaSensitive
Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
Thai100CaseSensitiveAccentSensitiveKanaSensitive
Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
ThaiCaseSensitiveAccentInsensitiveWidthSensitive
- Além disso, o Azure Synapse Link for SQL não oferece suporte a alguns agrupamentos de idiomas tailandeses:
- Não há suporte para atualizações de linha única (incluindo armazenamento fora da página) de > 370 MB.
- Quando o Azure Synapse Link for SQL no Banco de Dados SQL do Azure ou no SQL Server 2022 está habilitado, o recurso de truncamento de log agressivo da Recuperação Acelerada de Banco de Dados (ADR) é desabilitado automaticamente. Isso é necessário porque o Azure Synapse Link for SQL acessa o log de transações do banco de dados. Esse comportamento é semelhante à captura de dados alterada (CDC). As transações ativas continuam a manter o truncamento do log de transações até que a transação seja confirmada e o Azure Synapse Link for SQL seja recuperado ou a transação seja anulada. Isso pode fazer com que o log de transações seja preenchido mais do que o normal e deve ser monitorado para que o log de transações não seja preenchido.
Somente Banco de Dados SQL do Azure
- O Azure Synapse Link for SQL não é suportado na camada Gratuita, Básica ou Standard com menos de 100 DTUs.
- O Azure Synapse Link for SQL não é suportado em Instâncias Geridas SQL.
- A entidade de serviço não tem suporte para autenticação no Banco de Dados SQL do Azure de origem, portanto, ao criar o Serviço vinculado do Banco de Dados SQL do Azure, escolha autenticação SQL, identidade gerenciada atribuída pelo usuário (UAMI) ou identidade gerenciada atribuída ao serviço (SAMI).
- Se o servidor lógico do Banco de Dados SQL do Azure tiver um SAMI e um UAMI configurados, o Azure Synapse Link usará SAMI.
- O Azure Synapse Link não pode ser habilitado no banco de dados secundário após um failover de GeoDR, se o banco de dados secundário tiver um nome diferente do banco de dados primário.
- Se você habilitar o Azure Synapse Link for SQL em seu banco de dados como um usuário do Microsoft Entra, a restauração point-in-time (PITR) falhará. O PITR só funciona quando você habilita o Azure Synapse Link for SQL em seu banco de dados como um usuário SQL.
- Se você criar um banco de dados como um usuário do Microsoft Entra e habilitar o Azure Synapse Link para SQL, um usuário de autenticação SQL (por exemplo, até mesmo a função sysadmin) não poderá desabilitar/fazer alterações nos artefatos do Azure Synapse Link for SQL. No entanto, outro usuário do Microsoft Entra pode habilitar/desabilitar o Azure Synapse Link for SQL no mesmo banco de dados. Da mesma forma, se você criar um banco de dados como um usuário de autenticação SQL, habilitar/desabilitar o Azure Synapse Link for SQL como um usuário do Microsoft Entra não funcionará.
- Não há suporte para replicação de dados entre locatários quando um Banco de Dados SQL do Azure e o espaço de trabalho Synapse do Azure estão em locatários separados.
Apenas SQL Server 2022
- O Azure Synapse Link for SQL não pode ser habilitado em bancos de dados que são editores ou distribuidores de replicação transacional.
- Com réplicas assíncronas em um grupo de disponibilidade, as transações devem ser gravadas em todas as réplicas antes de publicar no Azure Synapse Link for SQL.
- O Azure Synapse Link for SQL não é suportado em bancos de dados com espelhamento de banco de dados habilitado.
- Não há suporte para a restauração de um Azure Synapse Link para banco de dados habilitado para SQL do local para a Instância Gerenciada SQL do Azure.
Atenção
O Azure Synapse Link for SQL não é suportado em bancos de dados que também estão usando o Azure SQL Managed Instance Link. Tenha cuidado para que, nesses cenários, quando a instância gerenciada fizer a transição para o modo de leitura-gravação, você poderá encontrar problemas de log de transações completo.
Problemas conhecidos
Não excluir um espaço de trabalho do Azure Synapse Analytics com um link em execução pode fazer com que o log de transações no banco de dados de origem seja preenchido
Aplica-se a - Azure Synapse Link para Banco de Dados SQL do Azure e SQL Server 2022
Problema - Quando você exclui um espaço de trabalho do Azure Synapse Analytics, é possível que os links em execução não sejam interrompidos, o que faz com que o banco de dados de origem pense que o link ainda está operacional e pode levar a que o log de transações não seja truncado e preenchido.
Resolução - Existem duas resoluções possíveis para esta situação:
- Pare todos os links em execução antes de excluir o espaço de trabalho do Azure Synapse Analytics.
- Limpe manualmente a definição de link no banco de dados de origem.
- Encontre o
table_group_id
que precisa ser interrompido usando a consulta a seguir.SELECT table_group_id, workspace_id, synapse_workgroup_name FROM [changefeed].[change_feed_table_groups] WHERE synapse_workgroup_name = <synapse workspace name>;
- Solte cada link identificado usando o procedimento a seguir.
EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
- Opcionalmente, se você estiver desabilitando todos os grupos de tabelas para um determinado banco de dados, também poderá desabilitar o feed de alterações no banco de dados com o seguinte comando.
EXEC sys.sp_change_feed_disable_db;
- Encontre o
Reativar o feed de alterações em uma tabela para a qual ele foi desativado recentemente mostrará um erro
- Aplica-se a - Azure Synapse Link para Banco de Dados SQL do Azure e SQL Server 2022
- Este é um comportamento incomum.
- Problema - Quando você tenta habilitar uma tabela que foi desativada recentemente com seus metadados ainda não limpos e o estado marcado como DESATIVADO, um erro é lançado informando
A table can only be enabled once among all table groups
. - Resolução - Aguarde algum tempo até que o procedimento do sistema de tabelas desativado seja concluído e, em seguida, tente reativar a tabela novamente.
Tente habilitar o Azure Synapse Link no banco de dados importado usando SSDT, SQLPackage para operações de Importação/Exportação e Extração/Implantação
- Aplica-se a - Azure Synapse Link para Banco de Dados SQL do Azure e SQL Server 2022
- Problema - Para bancos de dados SQL habilitados com o Azure Synapse Link, quando você usa as operações SSDT Import/Export e Extract/Deploy para importar/configurar um novo banco de dados, o esquema e o
changefeed
usuário não são excluídos no novo banco de dados. No entanto, as tabelas para o feed de alterações são ignoradas pelo DacFX porque estão marcadas comois_ms_shipped=1
emsys.objects
, e esses objetos nunca foram incluídos nas operações SSDT Import/Export e Extract/Deploy. Ao habilitar o Azure Synapse Link no banco de dados importado/implantado, o procedimentosys.sp_change_feed_enable_db
armazenado do sistema falhará se o usuário e ochangefeed
esquema já existirem. Esse problema é encontrado se você tiver criado um usuário ou esquema chamadochangefeed
que não está relacionado ao recurso de feed de alteração do Azure Synapse Link. - Resolução -
- Solte manualmente o esquema vazio
changefeed
echangefeed
o usuário. Em seguida, o Azure Synapse Link pode ser habilitado com êxito no banco de dados importado/implantado. - Se você definiu um esquema personalizado ou usuário nomeado
changefeed
em seu banco de dados que não está relacionado ao Azure Synapse Link e não pretende usar o Azure Synapse Link para SQL, não é necessário descartar seuchangefeed
esquema ou usuário. - Se você definiu um esquema de cliente ou usuário nomeado
changefeed
em seu banco de dados, atualmente, esse banco de dados não pode participar do Azure Synapse Link for SQL.
- Solte manualmente o esquema vazio