Suporte à captura de dados de alteração (CDC) com o RDS Custom para SQL Server - Amazon Relational Database Service

Suporte à captura de dados de alteração (CDC) com o RDS Custom para SQL Server

Visão geral

O RDS Custom para SQL Server oferece suporte nativo à captura de dados de alteração (CDC), permitindo que você acompanhe e capture modificações nos dados de suas tabelas do SQL Server. A CDC armazena metadados detalhados sobre essas alterações para recuperação e análise posteriores. Para ter mais informações sobre como a funcionalidade de CDC, consulte Change data capture na documentação da Microsoft.

A operação de CDC no SQL Server requer valores correspondentes entre o servidor local (que tem server_id = 0) em sys.servers e os identificadores SERVERPROPERTY('ServerName'). O RDS Custom para SQL Server mantém automaticamente essa sincronização durante o ciclo de vida da instância para garantir o funcionamento contínuo da CDC, mesmo que os hosts sejam substituídos durante as operações de manutenção ou recuperação.

Importante

Após o failover de uma instância multi-AZ, a função SERVERPROPERTY('Servername') reflete automaticamente as alterações no nome da rede/computador. No entanto, a função @@SERVERNAME mantém o nome antigo do servidor até que o serviço MSSQLSERVER seja reiniciado. A consulta de @@SERVERNAME exibe o nome do servidor anterior após um failover. Para obter o nome exato do servidor após um failover, use a seguinte consulta SQL:

SELECT name FROM sys.servers WHERE server_id=0

Essa consulta fornece as informações de nome de servidor mais atualizadas sem exigir a reinicialização do serviço.

Disponibilidade de regiões e versões

A funcionalidade de CDC pode ser usada em todas as Regiões da AWS em que o RDS Custom para SQL Server está disponível, para todas as versões do SQL Server compatíveis com o RDS Custom. Para ter mais informações sobre versões compatíveis e disponibilidade de regiões do RDS Custom para SQL Server, consulte Regiões e mecanismos de banco de dados compatíveis com o RDS Custom para SQL Server.

Requisitos e limitações

Ao implementar a CDC no RDS Custom para SQL Server, esteja ciente destas considerações importantes:

  • Se você configurar manualmente @@SERVERNAME e/ou servidor local em sys.servers para usar recursos como o MS Replication, se o valor do servidor local (que tem server_id = 0) em sys.servers estiver definido em um formato que corresponda a *.rds.amazonaws.com ou *.awsrds.*.com, o RDS Custom para SQL Server não tentará modificá-lo para corresponder a SERVERPROPERTY('ServerName').

  • O RDS não pode modificar o servidor local (que tem server_id = 0) em sys.servers para um novo nome de host enquanto logins remotos ou servidores vinculados estiverem usando ativamente o nome de host antigo. Essa limitação se aplica em dois cenários:

    • Quando um servidor vinculado estabelece uma conexão com o servidor local usando um login remoto associado ao nome de host antigo

    • Quando uma instância do RDS Custom para SQL Server atua como publicador ou distribuidor e vincula logins associados ao nome de host antigo às instâncias do assinante.

Solução de problemas

Para identificar logins remotos ou logins vinculados associados ao nome antigo do servidor, use as consultas a seguir. Valide os resultados e remova esses logins para garantir que a CDC funcione adequadamente.

SELECT * FROM sys.remote_logins WHERE server_id=0

or

select sss.srvname,ssp.name,srl.remote_name from sys.server_principals ssp inner join sys.remote_logins srl on srl.local_principal_id=ssp.principal_id inner join sys.sysservers sss on srl.server_id = sss.srvid where sss.srvname = @@SERVERNAME