SQL Server + Volume Shadow Copy = Sem backup diferencial.

Após implementar o recurso de envio de e-mails com os erros de backup do SQL Server, notei que o backup diferencial não estava sendo executado, apresentando o seguinte erro:

Cannot perform a differential backup for database “MyDatabase”, because a current database backup does not exist. Perform a full database backup by reissuing BACKUP DATABASE, omitting the WITH DIFFERENTIAL option. [SQLSTATE 42000] (Error 3035)  BACKUP DATABASE is terminating abnormally. [SQLSTATE 42000] (Error 3013).  The step failed.

No histórico dos jobs, nenhuma referência a um backup full com falha.

Porém a seguinte consulta começou a me dar o caminho das pedras:

Eis que me aparece o seguinte:

name                      type first_lsn              database_backup_lsn
————————  —- ———————- ———————
Backup FULL Semana 17     D    21353000001562600132   21353000001554000043
NULL                      D    21353000001572500134   21353000001562600132
Backup Log1 Semana 17     L    21353000001557200001   21353000001572500134
Backup Log2 Semana 17     L    21353000001579000001   21353000001572500134

 

Vejam a linha em vermelho… Eu suprimi a coluna backup_start_date, para facilitar a visualização, porém o horário era justamente no horário em que executamos neste servidor um backup dos arquivos que estão nele.

Esse backup é realizado pelo software Cobian Backup, e uma das tasks agendadas fazem uso da opção Volume Shadow Copy para permitir que a cópia do arquivo seja realizada mesmo que o arquivo esteja em uso (e não, não é nenhum arquivo do SQL Server que estava sendo copiado).

Porém, o problema é que o VSS (Volume Shadow Copy Service) chama o SQLWriter (sim, mesmo que não seja uma cópia dos arquivos do SQL Server!!) , que é o responsável por “avisar” que uma cópia está sendo realizada e então um registro é inserido na tabela backupset. E isso quebra com a cadeia de backups.

Após desmarcar a opção para utilização de Volume Shadow Copy, o backup diferencial ocorreu normalmente.

Moral da história:

Se você usa uma ferramenta de backup que possua o recurso de Volume Shadow Copy Service (VSS) no seu servidor onde está o banco de dados, desabilite o recurso, ou  garanta que no momento da backup, nenhum dos recursos do SQL Server esteja sendo utilizado.

Fontes:

2 comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.