Também recentemente começamos a analisar o CDC. Não sou especialista no assunto, mas acho que tenho algumas respostas para suas perguntas.
Na maioria das vezes, o CDC o ajudará a atingir seu objetivo de uma história completamente rastreável, mas não acho que isso o levará até lá.
Primeiramente:
freqüentemente fazemos alterações no esquema do banco de dados ... Existe um mecanismo para atualizar a tabela CDC para o novo esquema
E é aqui que acho que o CDC falhará com você. A documentação do MSDN na seção "Noções básicas sobre a sobrecarga do acompanhamento de alterações" é bastante clara: ela não acompanhará as alterações de esquema para você. Por exemplo, com Alter Table Add Column
:
Se uma nova coluna for adicionada à tabela rastreada por alterações, a adição da coluna não será rastreada. Somente as atualizações e alterações feitas na nova coluna são rastreadas.
Drop Column
é um pouco mais complexo.
No entanto, você deve usar scripts de banco de dados para alterar seu esquema, para não precisar necessariamente confiar no CDC aqui. Isso permite que você tenha consistência entre seus esquemas de controle de qualidade e produção. E a alteração no controle de qualidade deve ser realizada por script, para que as mesmas alterações exatas possam ser aplicadas ao Prod. Não deve ser muito difícil extrair as alterações de esquema desses scripts. Isso pode significar que a dimensão "tempo" do seu histórico seja direcionada pela versão, e não pelo tempo real, mas o resultado final será o mesmo.
Se você ainda não possui uma, crie uma tabela para rastrear a versão do seu esquema de banco de dados. Em seguida, coloque a tabela de versão do esquema do banco de dados no CDC para poder alinhar as alterações macroscópicas ao esquema contra as alterações microscópicas em uma tabela específica.
Para meu entendimento, você ainda deve ver os dados adicionados à (s) nova (s) coluna (s), independentemente do CDC não mostrar a alteração do esquema. E a migração de dados de tabela para tabela também deve ser escolhida pelo CDC.
existem práticas recomendadas para lidar com os dados capturados ao migrar o esquema do banco de dados?
Trate-o como você trataria uma auditoria. Você precisa entender o que está examinando, por que está examinando e por quanto tempo precisa manter essas informações por perto. Escopo e retenção são os dois maiores erros quando se trata de uma tarefa como esta.
As ferramentas de relatório do CDC são compreensivelmente austeras, então você precisa conhecer o contexto das mudanças. É muito fácil dizer "acompanhar tudo !" e acabe com nada que seja utilizável como resultado. Da mesma forma, você pode dobrar o tamanho do seu banco de dados mantendo uma cópia de cada alteração. Em uma tabela de alta rotatividade com muitas inserções e exclusões, você terá um crescimento astronômico. Isso não é ruim por si só, mas você precisa fazer um orçamento para esse crescimento e ter um meio de examinar todos os dados gerados.
Portanto, você volta a entender por que está sendo pressionado a ter rastreabilidade completa. Certamente existem razões válidas para esse requisito. Mas você não poderá estruturar sua auditoria eficaz do banco de dados até saber por que deve atender a esse requisito.