Fazendo backup de bancos de dados somente leitura

Este tópico apresenta considerações para fazer backup de bancos de dados que são somente leitura ou eram somente leitura no momento do último backup.

Em um banco de dados somente leitura, o arquivo primário não pode ser atualizado durante um backup. A prática recomendada para um banco de dados somente de leitura é fazer um backup completo. No entanto, se um banco de dados alterna entre somente leitura e leitura/gravação, é recomendável fazer backup do banco de dados quando for leitura/gravação. Em seguida, mesmo que o banco de dados permaneça leitura/gravação, se o escopo das mudanças for pequeno será possível fazer backups diferenciais.

ObservaçãoObservação

Você não pode alterar a propriedade IsReadOnly de um grupo de arquivos durante um backup. A tentativa de fazer isso produz um erro e ocorre falha.

Backups parciais depois de alterar um banco de dados para permissão de leitura/gravação

Um backup parcial de um banco de dados somente leitura contém apenas o grupo de arquivos primário. Se o banco de dados for alterado posteriormente para leitura/gravação, será possível haver grupos de arquivos secundários leitura/gravação que não estejam no backup parcial. Nesse caso, se você tentar fazer um backup diferencial parcial, o backup falhará. Para fazer um backup diferencial parcial de banco de dados, é necessário fazer outro backup parcial. O novo backup parcial contém todos os grupos de arquivos leitura/gravação secundários e pode servir de base para backups diferenciais parciais.

Backups diferenciais de bancos de dados somente leitura

Para bancos de dados somente leitura, os backups completos usados isoladamente são mais fáceis de serem gerenciados do que os usados com backups diferenciais. Quando um banco de dados for somente de leitura, o backup e outras operações não podem alterar os metadados que estão contidos no arquivo. Portanto, os metadados exigidos por um backup diferencial, como o número de seqüência de log no qual o backup diferencial começa (o LSN base diferencial), é armazenado no banco de dados mestre. Se a base diferencial for tomada quando o banco de dados for somente de leitura, o bitmap diferencial indicará mais alterações do que as ocorridas, de fato, desde o backup de base. Os dados extras são lidos pelo backup mas não são gravados no backup, porque o differential_base_lsn armazenado na tabela do sistema conjunto de backup é usado para determinar se os dados realmente foram alterados desde a base.

Quando um banco de dados somente leitura é recriado, restaurado ou desanexado e anexado, as informações básicas diferenciais são perdidas. Isso ocorre porque o banco de dados mestre não é sincronizado com o banco de dados de usuário. O Mecanismo de banco de dados do SQL Server não pode detectar nem prevenir esse problema. Nenhum backup diferencial posterior tem base no backup completo mais recente e pode fornecer resultados inesperados. Para estabelecer uma nova base diferencial, recomendamos que você crie um backup de banco de dados completo.

Práticas recomendadas para usar backups diferenciais com um banco de dados somente leitura.

Após criar o backup completo de um banco de dados somente leitura, se você pretende criar um backup diferencial subseqüente, faça backup do banco de dados mestre.

Se o banco de dados mestre foi perdido, restaure-o antes de restaurar o backup diferencial de um banco de dados de usuário.

Se você desanexar e anexar um banco de dados somente leitura para o qual planeja fazer backups diferenciais para uso posterior, assim que for possível, faça um backup completo do banco de dados somente leitura e do banco de dados mestre.