Envio de log para um banco de dados existente

5

Temos alguns bancos de dados enormes que gostaríamos de enviar para o SQL Server 2008. Infelizmente, o link entre os servidores primário e secundário é rápido o suficiente para lidar com o envio de logs, mas o backup / cópia inicial atrapalha a largura de banda por dias. semanas, o que gostaríamos de evitar, se possível.

Fizemos uma cópia (com alguns dias atrás) fazendo o backup do banco de dados principal em um disco rígido e levando o disco rígido fisicamente para a máquina secundária e restaurando o banco de dados.

Servidores primários e secundários estão em diferentes localizações geográficas. O servidor principal está no SQL Server 2008, secundário em 2008 R2 (não pergunte por quê!)

Parece não haver nenhuma maneira de fazer com que o envio de logs (ou espelhamento) funcione sem iniciar o processo de backup / cópia / restauração do zero.

Quaisquer ideias / soluções seriam muito apreciadas.

    
por SeanDav 27.10.2010 / 13:00

4 respostas

5

  1. Ativar o envio de registros, mas não adicionar destinos
  2. Faça um backup completo do banco de dados principal
  3. Mover o backup do banco de dados para o servidor secundário
  4. Restaurar backup WITH NORECOVERY
  5. Ativar o servidor secundário como um destino de envio de log
  6. O SQL Server copia todos os arquivos de envio de logs gerados até o momento para o novo servidor pelo link e os restaura

Eu já fiz isso dezenas de vezes e ele nunca falha, por isso, se não funcionar, convém atualizar a pergunta com as etapas EXATAS realizadas por você.

    
por 29.10.2010 / 23:45
4

Se o seu banco de dados estiver no modo de recuperação total, basta fazer o seguinte:

  • Faça backup completo
  • mova a unidade para o modo de espera
  • restaura o banco de dados WITH NORECOVERY para que fique no modo "restaurando"
  • mantém TODOS os backups de log do primário e os copia para o modo de espera
  • restaura todos os logs para o banco de dados de espera WITH NORECOVERY
  • Execute o assistente do SSMS para configurar tarefas LS

Se você estiver usando as tarefas LS para fazer backup / copiar / restaurar os logs, verifique se não está faltando nenhum, também se você fizer um backup de log fora desses trabalhos, também precisará deles. Os trabalhos não copiarão nem restaurarão os backups de log que ele não cria.

    
por 27.10.2010 / 18:48
1

Eu usei uma ferramenta chamada uFTP para transferir arquivos de backup SQL enormes em links de alta latência para obter o backup completo inicial transferido para um nó secundário para envio de log. Você pode querer fazer um backup completo, copiá-lo para o servidor secundário usando uFTP , restaurar o banco de dados sem recuperação e, em seguida, configurar log shipping no primário e use a opção "banco de dados secundário é inicializado". Por causa do quão rápido o uFTP deve transferir os arquivos, você deve ser capaz de evitar os problemas com tudo que está fora de sincronia.

Na pior das hipóteses, faça um backup completo do seu banco de dados, copie-o para o secundário com o uFTP e, uma vez terminado, faça um backup diferencial do seu enorme banco de dados e transfira-o com o uFTP. Espero que a combinação da transferência de alta velocidade e corte no delta usando um diferencial também, você deve ser capaz de obter o envio de logs em operação.

Nota: O uFTP é um utilitário de transferência de arquivos baseado em UDP com um mecanismo de verificação de erro embutido no aplicativo, já que o UDP não possui correção de erros em oposição ao TCP.

    
por 29.10.2010 / 23:04
0

Certifique-se de que seu destino de envio de logs tenha o banco de dados restaurado com o norecovery.

Siga em frente e siga o processo de configuração como normalmente faria.

Quando você chegar à guia "Inicializar banco de dados secundário" na janela "Configurações secundárias do banco de dados", verifique se a opção "Não, o banco de dados secundário está inicializado" está selecionada.

Em seguida, ele ignorará o processo, fazendo um backup completo e uma restauração, e começará com os backups do log de transações. Se ele não tiver acesso a todos os backups do log de transações desde o backup completo, você poderá fazer um backup diferencial e restaurá-lo com o norecovery para atualizar as coisas.

    
por 27.10.2010 / 14:58