Configuramos o espelhamento de banco de dados no fim de semana e esquecemos de reativar o trabalho que faz backup dos logs de transações. Quando cheguei hoje de manhã, o log de transações aumentara para 58 GB e ocupava a maior parte do espaço em disco.
Fiz um backup manual do log de transações em disco para que o banco de dados fosse executado novamente. No entanto, a execução do DBCC SHRINKFILE não parece diminuir o tamanho físico do arquivo de log de transações.
DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000)
Se eu verificar o uso do log usando
DBCC SQLPERF(LOGSPACE)
Percebo que apenas 22% do log atual está sendo usado
Nome do banco de dados Tamanho do log (MB) Espaço de log usado (%) Status MyDatabaseName 55440.87 22.38189 0
Se eu fizer check-out log_reuse_wait_desc
em sys.databses, o único registro que vejo é DATABASE_MIRRORING
, portanto, acho que o espelho está desempenhando um papel no motivo pelo qual o tamanho físico do arquivo de log não diminui?
SELECT log_reuse_wait_desc
FROM sys.databases
WHERE name = N'MyDatabaseName';
Também notei que meu estado principal de espelhamento de banco de dados é suspenso e a tentativa de retomar imediatamente falha com o seguinte erro:
O parceiro de espelhamento remoto do banco de dados 'MyDatabaseName' encontrou o erro 5149, status 1, gravidade 25. O espelhamento de banco de dados foi suspenso. Resolva o erro no servidor remoto e retome o espelhamento ou remova o espelhamento e restabeleça a instância do servidor espelho.
Os logs de erro no servidor espelho também contêm esse erro, mas também contêm erros sobre a unidade de arquivo de log estar cheia
O arquivo MODIFY FILE encontrou o erro do sistema operacional 112 (não há espaço suficiente no disco.) Ao tentar expandir o arquivo físico.
e
F: \ Databaselogs \ MyDatabaseName_1.ldf: Erro 112 do sistema operacional (Não há espaço suficiente no disco.) Encontrado.
O servidor principal possui 60 GB na unidade de arquivo de log (existem outros bancos de dados hospedados aqui), enquanto o servidor espelhado possui apenas 45 GB.
O backup do arquivo de log tornou o banco de dados utilizável novamente, no entanto, também quero diminuir o tamanho do arquivo de log físico no disco e recuperar o espelhamento.
Como posso reduzir o tamanho do meu arquivo de log de transações físicas sem comprometer o espelhamento ou a cadeia de backup?
Estou executando o SQL Server 2005