Aplica-se a: SQL Server 2025 (17.x)
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Veja a seguir as respostas para perguntas sobre o recurso de Streaming de Eventos de Alteração (CES) para o SQL Server 2025 (17.x), Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure.
Observação
O streaming de eventos de alteração está atualmente em versão prévia para:
- SQL Server 2025 (configuração com escopo do banco de dados de recursos de versão prévia necessária).
- Banco de Dados SQL do Azure (configuração de funcionalidades em versão prévia com escopo do banco de dados não é necessária).
- Instância Gerenciada de SQL do Azure (com a política de atualização do SQL Server 2025 ou Always-up-to-date, a configuração com escopo do banco de dados de recursos de visualização não é necessária). Durante a visualização, esse recurso está sujeito a alterações. Para obter suporte atual, consulte Limitações.
Compatibilidade e requisitos
O CES funciona com o Banco de Dados SQL do Azure?
Sim. O CES tem suporte no Banco de Dados SQL do Azure a partir de novembro de 2025.
O modelo de recuperação completa é necessário para o CES?
Sim. O CES depende da leitura do log de transações, portanto, o banco de dados do SQL Server deve ser configurado com o modelo de recuperação completo.
Qual é o custo de usar o CES?
Para CES, o uso dos Hubs de Eventos do Azure é cobrado a taxas padrão. Os encargos de entrada e saída também se aplicam.
Desempenho e impacto
Qual é o impacto de desempenho esperado em um banco de dados grande com milhões de linhas quando o CES está habilitado?
O impacto no desempenho depende da carga de trabalho e da configuração específicas. No entanto, espera-se que o CES tenha uma sobrecarga menor do que o CDC (Change Data Capture, captura de dados de alteração), pois não há gravação de dados de volta no banco de dados.
Qual é o tamanho máximo da mensagem compatível com o CES?
O tamanho da mensagem é configurável, até um máximo de 1 MB e deve se alinhar com os limites da instância dos Hubs de Eventos do Azure.
O log de transações continuará a crescer se o CES não puder fornecer eventos (como devido a um problema de destino, credencial de autorização expirada etc.)?
Sim. O CES garante a entrega de mensagens confiável ("pelo menos uma vez"), portanto, o log de transações não será truncado até que os eventos sejam entregues com êxito. Se a entrega falhar, o log aumentará até que o problema seja resolvido. É importante manter a integridade do CES monitorando a entrega de mensagens, os erros e a utilização do log de transações para bancos de dados que têm o CES habilitado.
Manipulação de esquemas e dados
Como o CES lida com alterações de esquema, como excluir uma coluna?
O CES inclui o esquema de linha com cada evento. Se uma operação DDL modificar a tabela (como excluir, renomear ou adicionar uma coluna), o próximo evento DML refletirá o esquema atualizado. O CES não emite eventos para operações DDL em si.
As tabelas com colunas LOB (por exemplo, varchar(max)) têm suporte do CES?
Sim. O CES dá suporte a tabelas com colunas LOB. Para cada tabela configurada para streaming, você pode configurar se objetos grandes são incluídos nos eventos transmitidos.
Uma tabela precisa de uma chave primária para usar o CES?
Não. O CES não requer uma chave primária na tabela.
Quão granulares são os eventos CES?
Cada linha afetada por um INSERT, UPDATEou DELETE operação é transmitida como um evento separado.
Se uma transação modificar várias linhas, elas serão transmitidas como eventos separados ou como uma?
Cada linha afetada é transmitida como um evento separado. Cada evento inclui metadados de transação, portanto, as alterações da mesma transação podem ser agrupadas logicamente no destino.
Integração e configuração
Como o CES funciona em uma configuração de ALTA DISPONIBILIDADE (HA)? Posso usar uma cadeia de conexão DNN?
O CES é transmitido somente da réplica primária. No caso de um failover, o CES deve ser reconfigurado no novo servidor primário. Você pode se conectar à réplica primária usando qualquer método compatível com o SQL Server, incluindo DNN.
Quais protocolos o CES usa para se comunicar com o destino?
O CES dá suporte a protocolos AMQP e Kafka para Hubs de Eventos do Azure. Não há suporte para HTTPS.
Pode o CES transmitir diretamente para o Kafka?
Não. Atualmente, o CES dá suporte apenas aos Hubs de Eventos do Azure (protocolo AMQP e Kafka) como o destino.
O CES dá suporte à identidade gerenciada do Microsoft Entra para autenticação com os Hubs de Eventos do Azure?
Depende da fonte de dados. O CES no Banco de Dados SQL do Azure dá suporte à identidade gerenciada do Microsoft Entra para autenticação nos Hubs de Eventos do Azure, em que o SQL Server 2025 atualmente não dá suporte ao Microsoft Entra para autenticação.
Funcionalidade e funcionalidades
O CES pode ser habilitado em um banco de dados que já usa a replicação transacional?
Não. O CES não pode ser habilitado em um banco de dados configurado com replicação transacional.
O CES pode ser executado junto com a captura de dados de alteração (CDC)?
Não. O CES não pode ser habilitado em um banco de dados habilitado com CDC.
O CES pode ser usado com Bancos de Dados Espelhados do Fabric para SQL Server?
Não. Não há suporte para CES com Fabric Mirrored Databases para SQL Server.
O que acontece se o CES estiver desabilitado? Ele retoma de onde parou quando for reabilitado?
Se o CES estiver desabilitado, ele não poderá ser retomado. Você deve reconfigurar manualmente o CES para continuar os eventos de streaming. As alterações de dados feitas enquanto o CES estava desabilitado não são capturadas. Somente as alterações feitas após a reinicialização do CES são transmitidas. O CES garante pelo menos uma vez a entrega. Se o CES não entregar uma mensagem, ele continuará a tentar novamente até que a mensagem seja entregue com êxito ou o CES seja desabilitado. Se o CES não estiver desabilitado, as entregas com falha impedirão o truncamento do log até que a condição de erro seja resolvida e a mensagem seja entregue com sucesso. Se o CES estiver desabilitado, o truncamento de log será retomado e os eventos que ocorrem durante o tempo de inatividade não serão capturados.
O que acontece se eu fizer uma restauração (ou outro tipo de migração) de um banco de dados que foi configurado para CES?
Após a restauração (ou outros tipos de migração de banco de dados), o CES é desabilitado e parado para o banco de dados. Você precisa reconfigurá-lo para começar a transmitir novamente.
O CES pode fazer um instantâneo inicial ("semente") de dados existentes em tabelas quando o CES está habilitado?
Não. Atualmente, o CES transmite apenas alterações aos dados que ocorrem depois que o CES está habilitado. Ele não transfere dados em uma tabela que existe antes do CES ser habilitado.
Como posso monitorar a atividade do CES (por exemplo, eventos processados, erros)?
Use as seguintes visões do sistema para monitorar a atividade do CES:
- sys.dm_change_feed_errors para erros de entrega de eventos.
- sys.dm_change_feed_log_scan_sessions para a atividade de escaneamento de log.
No SQL Server 2025, você pode criar uma sessão XEvent relacionada ao CES e obter mais detalhes sobre a atividade do CES e possíveis erros.
CREATE EVENT SESSION ChangeEventStreaming
ON SERVER
ADD EVENT sqlserver.synapse_link_error
(
)
ADD TARGET package0.event_file
(SET filename=N'C:\temp\YourSession_Target1.xel');
GO
Ao configurar o monitoramento do CES xEvent para a Instância Gerenciada de SQL do Azure, armazene o arquivo .xel em um contêiner do Armazenamento de Blobs do Azure. Você pode observar informações de rastreamento do Fluxo de Eventos de Alteração na Instância Gerenciada de SQL do Azure por meio dos eventos synapse_link_error:
CREATE CREDENTIAL
[your blob container URL here] --make suire to not leave / at the end
WITH IDENTITY = 'MANAGED IDENTITY';
DROP EVENT SESSION ChangeEventStreaming ON SERVER
CREATE EVENT SESSION ChangeEventStreaming
ON SERVER
ADD EVENT sqlserver.synapse_link_error
(
)
ADD TARGET package0.event_file
(
SET filename = N'https://[your container URL]/cessession.xel'
);
Não há suporte para a depuração xEvent para solução de problemas do CES no Banco de Dados SQL do Azure.
Você pode monitorar os Hubs de Eventos do Azure e usar métricas e logs associados.
Há um limite para quantas tabelas podem ser configuradas para streaming?
Sim. O CES dá suporte a até 4.096 grupos de streaming, com até 40.000 tabelas por grupo.