Descobri esta semana, da maneira mais difícil, que as opções NORECOVERY
de restauração do banco de dados KEEP_CDC
são mutuamente exclusivas . Então, isso levanta a questão. Como você faz uma restauração de banco de dados, mantendo o CDC intacto, com backups completos e de log?
Fazendo pesquisas no MSDN, etc. Não consigo encontrar nenhuma documentação sobre como restaurar um banco de dados KEEP_CDC
usando qualquer outra opção além de uma única restauração completa do banco de dados com RECOVERY
especificação.
Consegui encontrar uma tentativa que fez os logs completos e subseqüentes sem a keep_cdc
opção de esperar até o log final. Só então a tabela foi colocada online com a opção RECOVERY
e KEEP_CDC
. O resultado foi um esquema CDC corrompido , conforme demonstrado aqui.
Se a intenção é KEEP_CDC
restaurar, você está realmente limitado apenas a um backup completo ou existe um mecanismo semelhante à tentativa acima para mantê-lo intacto durante restaurações de vários arquivos em um servidor diferente do original?
O Change Data Capture, ou CDC, não requer a palavra-
KEEP_CDC
chave ao restaurar um banco de dados para o servidor original . Ao restaurar um banco de dados para um servidor diferente do servidor original, você pode usar aKEEP_CDC
palavra-chave para especificar que os dados de captura de dados alterados sejam retidos no banco de dados. Isso é intencional e está claramente declarado no BOL aqui na seção intitulada "Restaurando ou anexando um banco de dados habilitado para captura de dados alterados"Este código mostra o CDC em ação antes e depois de um
RESTORE DATABASE ... WITH NORECOVERY
A restauração do mesmo backup no mesmo servidor como um novo nome de banco de dados parece manter o CDC: