(se alguém encontrar uma maneira - que eu acho que não exista, excluirei minha resposta :-))
Existe uma maneira de determinar se um backup contém dados do CDC?
Eu não acho que exista alguma maneira de saber de um backup, se o CDC está ativado ou não.
O máximo que você pode saber se o banco de dados esteve envolvido na replicação (sob o capô, usa o agente leitor de log que varre o log de transações) ou não usando DatabaseBackupLSN no resultado do RESTORE HEADERONLY
DatabaseBackupLSN, como é o "início do ponto de verificação" acionado quando o backup começa. Esse LSN coincidirá FirstLSN
se o backup for realizado quando o banco de dados estiver ocioso e nenhuma replicação estiver configurada.
Suponho que a razão pela qual a Microsoft não apareça se o CDC está ativado ou não, também pode ser uma questão de segurança. O CDC é uma tecnologia de nível empresarial que permite o rastreamento de alterações até o nível da coluna. Isso é exigido por regulamentos como HIPAA, FISMA, etc.
De restaurar ou anexar um banco de dados ativado para captura de dados alterados
O SQL Server usa a seguinte lógica para determinar se a captura de dados alterados permanece ativada depois que um banco de dados é restaurado ou anexado:
- Se um banco de dados for restaurado no mesmo servidor com o mesmo nome, a captura de dados alterados permanecerá ativada.
- Se um banco de dados for restaurado para outro servidor, por padrão, a captura de dados alterados será desativada e todos os metadados relacionados serão excluídos.
- Para manter a captura de dados alterados, use a opção KEEP_CDC ao restaurar o banco de dados. Para mais informações sobre esta opção, consulte RESTORE.
- Se um banco de dados for desanexado e conectado ao mesmo servidor ou outro servidor, a captura de dados alterados permanecerá ativada.
- Se um banco de dados for anexado ou restaurado com a opção KEEP_CDC para qualquer edição que não seja Enterprise, a operação será bloqueada porque a captura de dados alterados requer o SQL Server Enterprise. A mensagem de erro 932 é exibida:
O SQL Server não pode carregar o banco de dados '%. * Ls' porque a captura de dados alterados está ativada. A edição atualmente instalada do SQL Server não oferece suporte à captura de dados alterados. Desative a captura de dados alterados no banco de dados usando uma edição suportada do SQL Server ou atualize a instância para uma que suporte a captura de dados alterados.