Manutenção do log de transações no banco de dados Mirror

10

Versão do SQL Server: 2008 R2 Enterprise SP2

Estou tentando entender a manutenção do SQL Server e me deparei com algo que acho incorreto. Temos uma única instância de produção com 3 bancos de dados, cada um sendo espelhado externamente a uma instância de DR.

Enquanto olhava para a instância de DR, notei que os arquivos LDF eram enormes, acima de 35 GB para os bancos de dados muito usados.

Entendo que isso provavelmente se deve ao fato de os bancos de dados espelho estarem no modo de recuperação total e que os logs nunca foram copiados, eles continuarão a crescer até ficar sem espaço em disco.

Estamos fazendo backups de log no banco de dados principal, e minha pergunta é quais são as desvantagens de fazer um backup de log em um espelho?

Pelo menos um backup completo do banco de dados do espelho deve ser concluído antes de fazer um backup de log. Nesse caso, existem opções especiais que precisam ser usadas porque é um espelho?

Novamente, essas são recomendações de manutenção do log de transações no banco de dados MIRROR .

Obrigado por qualquer entrada

Jeremie Grund
fonte

Respostas:

5

Estamos fazendo backups de log no banco de dados principal, e minha pergunta é quais são as desvantagens de fazer um backup de log em um espelho?

Você não pode fazer um backup de log no banco de dados espelho.

Pelo menos um backup completo do banco de dados do espelho deve ser concluído antes de fazer um backup de log. Nesse caso, existem opções especiais que precisam ser usadas porque é um espelho?

Você também não pode fazer um backup completo do banco de dados no banco de dados espelho.

Tomemos isso por exemplo: eu tenho Server1qual abriga o banco de dados principal AdventureWorks2012e tenho Server2que contém o espelho. Aqui está o que acontece quando tento executar backups no banco de dados espelho (ativado Server2):

use master;
go

backup database AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.bak';
go

Mensagem 954, Nível 14, Estado 1, Linha 2
O banco de dados "AdventureWorks2012" não pode ser aberto. Está agindo como um banco de dados espelho .
A mensagem 3013, nível 16, estado 1, linha 2
BACKUP DATABASE está sendo finalizada de maneira anormal.

backup log AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.trn';
go

Mensagem 954, Nível 14, Estado 1, Linha 1
O banco de dados "AdventureWorks2012" não pode ser aberto. Está agindo como um banco de dados espelho .
A mensagem 3013, nível 16, estado 1, linha 1
BACKUP LOG está sendo finalizada de maneira anormal.

Dê uma olhada nesta FAQ de espelhamento de banco de dados de Robert Davis . Vou citá-lo sobre esta operação e a manutenção do log de transações do banco de dados espelho:

Quando você faz backup do log no principal, os arquivos de log virtuais (unidades individuais no arquivo de log) são marcados como regraváveis. Os mesmos VLFs são marcados como regraváveis ​​no arquivo de log espelhado. O status do VLF é espelhado no banco de dados .

Então aí está. Se você tiver backups de log de transações no principal, um comportamento semelhante de reutilização de log será refletido no banco de dados do parceiro.

Thomas Stringer
fonte
Eu odeio quando há um artigo por aí que responde minha pergunta exata e eu não a encontro. Isso faz todo o sentido, quando assumi o controle dos logs não estavam sendo copiados e cresci muito na entidade principal. Depois que iniciei os backups regulares, encolhi os logs, mas não pensei em fazer isso no espelho. Obrigado!
Jeremie Grund
11
Uma pergunta do adendo seria: é possível reduzir o log de transações espelhado cheio de crescimento agora que temos backups regulares de log de transações no principal?
Jeremie Grund
@JeremieGrund Uma maneira de fazer isso seria fazer o failover no banco de dados espelhado e encolher lá. Teste completamente isso em um ambiente de não produção para garantir que ele tenha o comportamento que você deseja / espera.
Thomas Stringer
0

@ JeremieGrund - Se a arquitetura do arquivo físico do banco de dados for a mesma (nomes e locais das unidades de arquivos de dados e log), se você reduzir o arquivo de log na entidade principal, o comando de redução será enviado para espelhar e fazer o mesmo no espelho. Portanto, dessa maneira, seu arquivo de log espelhado pode ser mantido. Se a arquitetura dos arquivos não for idêntica, você deve seguir a sugestão de Thomas Stringer.

kranthi
fonte