Pular para o conteúdo principal

Habilitar CDC integrado no Microsoft SQL Server

importante

Esta página contém conteúdo antigo. Databricks recomenda seguir os passos descritos em Preparar SQL Server para ingestão usando o script de objetos utilitários .

Aprenda como habilitar a captura integrada de dados de alterações (CDC) (CDC) no Microsoft SQL Server. Você precisa habilitar o acompanhamento de alterações ou CDC para usar o conector SQL Server . Databricks recomenda o uso do acompanhamento de alterações para qualquer tabela que possua uma key primária, a fim de minimizar a carga no banco de dados de origem. Se o acompanhamento de alterações e CDC estiverem ambos ativados, o conector usa o acompanhamento de alterações. Para orientação sobre qual opção escolher, consulte Acompanhamento de alteração vs. captura de dados de alterações (CDC).

Ative CDC integrado para o banco de dados de origem.

  1. Faça login no banco de dados que deseja habilitar para CDC.

  2. Executar o seguinte comando T-SQL no contexto do banco de dados:

    Banco de Dados SQL do Azure e SQL Server local

    SQL
    EXEC sys.sp_cdc_enable_db

    Amazon RDS para SQL Server

    SQL
    EXEC msdb.dbo.rds_cdc_enable_db '<database-name>'

Para obter mais informações, consulte Habilitar captura de dados de alterações (CDC) para um banco de dados na documentação SQL Server .

Configurar o período de retenção do CDC

Defina o período de retenção para o tempo máximo (em minutos) que o gateway provavelmente ficará inativo. Após esse período, é necessário realizar uma refresh completa para retomar o funcionamento do gateway.

SQL
EXEC sys.sp_cdc_change_job @job_type = N'cleanup', @retention = 20160;

Ative CDC integrado na tabela de origem.

Para habilitar CDC na tabela de origem, execute o seguinte procedimento armazenado no Azure SQL. Substitua os valores de source_schema, source_name e role_name. @support_net_changes só suporta um valor de 1 se a tabela tiver uma key primária.

  • Substitua os valores de source_schema, source_name e role_name.
  • Se a tabela tiver uma key primária, @support_net_changes suporta apenas o valor 1.
SQL
EXEC sys.sp_cdc_enable_table
@source_schema = N'MySchema',
@source_name = N'MyTable',
@role_name = NULL,
@supports_net_changes = 1

Para obter mais informações, consulte Habilitar captura de dados de alterações (CDC) para uma tabela na documentação SQL Server .

Concessão SELECT sobre o esquema do CDC

Além dos privilégios descritos na configuração de origem, o usuário do banco de dados precisa do privilégio SELECT no esquema cdc. Este esquema contém as tabelas de alterações que são criadas quando o CDC está ativado. execute o seguinte comando T-SQL:

SQL
GRANT SELECT ON SCHEMA::cdc to <database-user>;

Concessão VIEW SERVER STATE (local e RDS)

Somente para instâncias on-premises e RDS, o privilégio VIEW SERVER STATE é necessário para consultar sys.dm_server_services, que é usado para verificar o status do SQL Server Agent. execute o seguinte comando T-SQL:

SQL
GRANT VIEW SERVER STATE to <database-user>

Próximo o

Configurar captura DDL e evolução do esquema