Espelhamento do SQL Server - apenas dados de espelho?

1

Alguém sabe se é possível espelhar apenas alterações de dados com a funcionalidade de espelhamento de banco de dados do SQL Server 2008? Eu suspeito que a resposta é que não é possível, mas queria ver se perdi algo.

Se não, alguém sabe de alguma maneira para replicar apenas dados e alterações de esquema de tabela de um banco de dados de origem para um sistema de relatórios. Nós não queremos procs armazenados, vistas, funções, etc no sistema de destino. A replicação não precisa ser instantânea, mas o que estamos tentando evitar é ter que fazer uma cópia completa do banco de dados seguido por um DROP de todos os sprocs, views e funções (devido ao tamanho do backup e ao tempo que isso pode levar ).

A replicação (como na replicação completa do SQL Server) não é uma opção - ela foi investigada e envolveria algumas alterações no design do banco de dados, o que levaria várias semanas (se não mais) para realmente implementar, testar e dar suporte no aplicativo acima, bem como restringir e complicar como as alterações são aplicadas ao banco de dados (isto é, embora a replicação possa, tecnicamente, ser a solução certa, para toda uma série de gerenciamento de processos e restrições de tempo, provavelmente não vai acontecer).

Felicidades.

    
por Chris J 16.12.2010 / 12:23

2 respostas

1

Change Data Capture, também conhecido como CDC, pode CAPTURAR as alterações nos dados e, em seguida, você pode escrever algo, como um pacote SSIS, para propagar essas alterações para outro servidor, mas isso exigiria algum esforço, não ser mais ou menos do que configurar a replicação, isso dependeria do número de tabelas.

    
por 19.12.2010 / 00:05
0

O espelhamento definitivamente não é capaz de fazer isso, ele só pode espelhar todo o banco de dados.

Se a Replicação do SQL Server não for uma opção, acho que você precisará criar uma solução que não esteja incorporada para executar essa tarefa.

Como "conectado" são os dois servidores? A próxima coisa que eu poderia pensar seria configurar o servidor de destino como um "servidor vinculado" dentro do SQL Server. Você pode então usar um gatilho de banco de dados no servidor de origem para atualizar o servidor de destino usando o servidor vinculado. Você precisa ter cuidado em seu gatilho para obter a convenção de nomenclatura, porém, teria que ser algo como server.database.schema.object . Eu acho que os servidores precisariam ser (em termos de rede) muito próximos um do outro, bem como para isso funcionar com qualquer tipo de confiabilidade.

    
por 16.12.2010 / 18:30