Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este artigo fornece uma visão geral do processo de restauração e recuperação de banco de dados para o SQL Server.
Visão geral
Para recuperar um banco de dados do SQL Server de uma falha, um administrador de banco de dados precisa restaurar um conjunto de backups do SQL Server em uma sequência de restauração logicamente correta e significativa. O processo de restauração e recuperação do SQL Server oferece suporte à restauração de dados de backups de um banco de dados inteiro, um arquivo de dados ou uma página de dados, da seguinte maneira:
O banco de dados (um completo de restauração de banco de dados)
Todo o banco de dados é restaurado e recuperado, e o banco de dados fica offline durante as operações de restauração e recuperação.
O ficheiro de dados (uma restauração de ficheiro)
Um arquivo de dados ou um conjunto de arquivos é restaurado e recuperado. Durante uma restauração de arquivos, os grupos de arquivos que contêm os arquivos ficam automaticamente offline durante a restauração. Qualquer tentativa de acessar um grupo de arquivos offline causa um erro.
A página de dados (uma restauração de página )
No modelo de recuperação completa ou no modelo de recuperação bulk-logged, você pode restaurar páginas individuais. As restaurações de página podem ser executadas em qualquer banco de dados, independentemente do número de grupos de arquivos.
O backup e a restauração do SQL Server funcionam em todos os sistemas operacionais com suporte. Para obter informações sobre os sistemas operacionais suportados, consulte Requisitos de hardware e software. Para obter informações sobre o suporte para backups de versões anteriores do SQL Server, consulte a seção Compatibility Support de RESTORE.
Cenários de restauração
Um cenário de restauração no SQL Server é o processo de restaurar dados de um ou mais backups e, em seguida, recuperar o banco de dados. Os cenários de restauração com suporte dependem do modelo de recuperação do banco de dados e da edição do SQL Server.
A tabela a seguir apresenta os possíveis cenários de restauração com suporte para diferentes modelos de recuperação.
Cenário de restauração | Sob modelo de recuperação simples | Em modelos de recuperação completa/registro em grandes volumes |
---|---|---|
Restauração completa do banco de dados | A estratégia básica de restauração. Uma restauração completa do banco de dados pode envolver simplesmente a restauração e a recuperação de um backup completo do banco de dados. Como alternativa, uma restauração completa do banco de dados pode envolver a restauração de um backup completo do banco de dados, seguido da restauração e recuperação de um backup diferencial. Para obter mais informações, consulte Restaurações Completas de Base de Dados (Modelo de Recuperação Simples). |
A estratégia básica de restauração. Uma restauração completa do banco de dados envolve a restauração de um backup completo do banco de dados e, opcionalmente, um backup diferencial (se houver), seguido pela restauração de todos os backups de log subsequentes (em sequência). A restauração completa do banco de dados é concluída recuperando o último backup de log e também restaurando-o (RESTORE WITH RECOVERY). Para obter mais informações, consulte restaurações completas de banco de dados (modelo de recuperação completa) |
Restauro de ficheiros 1 | Restaure um ou mais ficheiros só de leitura danificados, sem restaurar toda a base de dados. A restauração de arquivos só estará disponível se o banco de dados tiver pelo menos um grupo de arquivos somente leitura. | Restaura um ou mais arquivos, sem restaurar todo o banco de dados. A restauração de arquivos pode ser executada enquanto o banco de dados está offline ou, para algumas edições do SQL Server, enquanto o banco de dados permanece online. Durante uma restauração de arquivos, os grupos de arquivos que contêm os arquivos que estão sendo restaurados estão sempre offline. |
Restauração de página | Não aplicável | Restaura uma ou mais páginas danificadas. A restauração de página pode ser executada enquanto o banco de dados está offline ou, para algumas edições do SQL Server, enquanto o banco de dados permanece online. Durante uma restauração de página, as páginas que estão sendo restauradas estão sempre offline. Uma cadeia ininterrupta de backups de log deve estar disponível, até ao arquivo de log atual, e todos eles devem ser aplicados para atualizar a página up-tocom o arquivo de log atual. Para obter mais informações, consulte Restaurar páginas (SQL Server). |
Restauração fragmentada 1 | Restaure e recupere o banco de dados em estágios no nível do grupo de arquivos, começando com os grupos de arquivos primários e todos os grupos de arquivos secundários, de leitura/gravação. | Restaure e recupere o banco de dados em etapas no nível do grupo de arquivos, começando com o grupo de arquivos primário. Para obter mais informações, consulte restaurações parciais (SQL Server) |
1 O restauro online é suportado apenas na edição Enterprise.
Etapas para restaurar um banco de dados
Para executar uma restauração de arquivo, o Mecanismo de Banco de Dados executa duas etapas:
Cria todos os arquivos de banco de dados ausentes.
Copia os dados dos dispositivos de backup para os arquivos de banco de dados.
Para executar uma restauração de banco de dados, o Mecanismo de Banco de Dados executa três etapas:
Cria o banco de dados e os arquivos de log de transações, caso ainda não existam.
Copia todos os dados, log e páginas de índice da mídia de backup de um banco de dados para os arquivos de banco de dados.
Aplica o ficheiro de registo de transações, no processo de recuperação conhecido como .
Independentemente de como os dados são restaurados, antes que um banco de dados possa ser recuperado, o Mecanismo de Banco de Dados do SQL Server garante que todo o banco de dados seja logicamente consistente. Por exemplo, se você restaurar um arquivo, não poderá recuperá-lo e colocá-lo online até que ele avance o suficiente para ser consistente com o banco de dados.
Vantagens de uma restauração de arquivo ou página
Restaurar e recuperar arquivos ou páginas, em vez de todo o banco de dados, oferece as seguintes vantagens:
Restaurar menos dados reduz o tempo necessário para copiá-los e recuperá-los.
No SQL Server, a restauração de arquivos ou páginas pode permitir que outros dados no banco de dados permaneçam online durante a operação de restauração.
Recuperação e o registo de transações
Para a maioria dos cenários de restauração, é necessário aplicar um backup de log de transações e permitir que o Mecanismo de Banco de Dados do SQL Server execute o processo de recuperação de para que o banco de dados seja colocado online. A recuperação é o processo usado pelo SQL Server para que cada banco de dados seja iniciado em um estado transacionalmente consistente - ou limpo.
Se houver um failover ou outro desligamento não ordenado, os bancos de dados podem ficar num estado em que algumas modificações nunca foram gravadas do cache de buffer para os arquivos de dados, e pode haver algumas modificações de transações incompletas nos arquivos de dados. Quando uma instância do SQL Server é iniciada, ela executa uma recuperação de cada banco de dados, que consiste em três fases, com base no último ponto de verificação do banco de dados :
Fase 1 é a Fase de Análise que analisa o log de transações para determinar qual é o último ponto de verificação e cria a Tabela de Páginas Sujas (DPT) e a Tabela de Transação Ativa (ATT). O DPT contém registros de páginas que estavam sujas no momento em que o banco de dados foi encerrado. O ATT contém registros de transações que estavam ativas no momento em que o banco de dados não foi desligado corretamente.
Fase 2 é a Fase de Refazer que aplica novamente todas as modificações registradas no log que podem não ter sido gravadas nos arquivos de dados no momento em que o banco de dados foi encerrado. O número mínimo de sequência de log (minLSN) necessário para uma recuperação bem-sucedida em todo o banco de dados é encontrado no DPT e marca o início das operações de refazer necessárias em todas as páginas sujas. Nesta fase, o Mecanismo de Banco de Dados do SQL Server grava em disco todas as páginas sujas pertencentes a transações confirmadas.
Fase de Desfazer é a Fase 3 que reverte transações incompletas encontradas no ATT para assegurar a preservação da integridade do banco de dados. Após a reversão, o banco de dados fica online e já não é possível aplicar mais backups de log de transações ao banco de dados.
As informações sobre o progresso de cada estágio de recuperação do banco de dados são registradas no log de erros do SQL Server . O progresso da recuperação do banco de dados também pode ser acompanhado usando Eventos Estendidos. Para obter mais informações, consulte a postagem de blog Novos eventos estendidos para o progresso da recuperação de banco de dados.
Observação
Para um cenário de restauração fragmentada, se um grupo de arquivos somente leitura tiver sido somente leitura desde antes da criação do backup de arquivo, a aplicação de backups de log ao grupo de arquivos será desnecessária e ignorada pela restauração de arquivos.
Observação
Para maximizar a disponibilidade de bases de dados num ambiente empresarial depois que o serviço do SQL Server é iniciado, como após um failover de uma instância de cluster de failover Always On ou reinicialização in loco, o SQL Server Enterprise Edition pode disponibilizar uma base de dados online após a Fase de Refazer, enquanto a Fase de Desfazer ainda está a ser executada. Isso é conhecido como Recuperação Rápida. No entanto, a recuperação rápida não está disponível quando o banco de dados transita para um estado online, mas o serviço do SQL Server não foi reiniciado. Por exemplo, a execução de ALTER DATABASE AdventureWorks SET ONLINE;
não permitirá que o banco de dados esteja em estado de leitura-gravação até que todas as três fases de recuperação tenham sido concluídas.
Modelos de recuperação e operações de restauração suportadas
As operações de restauração disponíveis para um banco de dados dependem de seu modelo de recuperação. A tabela a seguir resume se, e em que medida, cada um dos modelos de recuperação oferece suporte a um determinado cenário de restauração.
Operação de restauração | Modelo de recuperação completa | Modelo de recuperação com registo em massa | Modelo de recuperação simples |
---|---|---|---|
Recuperação de dados | Recuperação completa (se o log estiver disponível). | Alguma exposição à perda de dados. | Todos os dados desde o último backup completo ou diferencial são perdidos. |
Restauração de um ponto específico no tempo | Qualquer período coberto pelos backups de log. | Não permitido se o backup de log contiver alterações registradas em massa. | Não suportado. |
Restauro de ficheiros 1 | Apoio total. | Às vezes. 2 | Disponível apenas para ficheiros secundários só de leitura. |
Restauração de página 1 | Apoio total. | Às vezes. 2 | Nenhuma. |
Restauração por partes (nível de grupo de arquivos) 1 | Apoio total. | Às vezes. 2 | Disponível apenas para ficheiros secundários só de leitura. |
1 Disponível apenas na edição Enterprise do SQL Server
2 Para obter as condições necessárias, consulte Restaurar restrições no modelo de recuperação simples, mais adiante neste artigo.
Importante
Independentemente do modelo de recuperação de um banco de dados, um backup do SQL Server não pode ser restaurado para uma versão do Mecanismo de Banco de Dados do SQL Server mais antiga do que a versão que criou o backup.
Restaurar cenários sob o modelo de recuperação simples
O modelo de recuperação simples impõe as seguintes restrições às operações de restauração:
A restauração de arquivos e a restauração fragmentada estão disponíveis apenas para grupos de arquivos secundários de leitura apenas. Para obter informações sobre esses cenários de restauração, consulte File Restores (Simple Recovery Model) e Piecemeal Restores (SQL Server).
A restauração de página não é permitida.
A restauração em determinado momento não é permitida.
Se alguma dessas restrições for inadequada para suas necessidades de recuperação, recomendamos que você considere o uso do modelo de recuperação completa. Para obter mais informações, consulte a Visão Geral do Backup (SQL Server).
Importante
Independentemente do modelo de recuperação de um banco de dados, um backup do SQL Server não pode ser restaurado por uma versão do SQL Server mais antiga do que a versão que criou o backup.
Restaurar sob o modelo de recuperação bulk-logged
Esta seção discute as considerações de restauração que são exclusivas do modelo de recuperação bulk-logged, que se destina exclusivamente como um suplemento ao modelo de recuperação completa.
Observação
Para obter uma introdução ao modelo de recuperação registado em massa, consulte O log de transações.
Geralmente, o modelo de recuperação registado em bloco é semelhante ao modelo de recuperação completa, e as informações descritas para o modelo de recuperação completa também se aplicam a ambos. No entanto, a recuperação no tempo certo e a restauração online são afetadas pelo modelo de recuperação em massa.
Restrições para recuperação em um ponto específico no tempo
Se um backup de log feito sob o modelo de recuperação em massa contiver alterações em massa, a recuperação em um ponto no tempo não será permitida. Tentar executar a recuperação point-in-time em um backup de log que contém alterações em massa faz com que a operação de restauração falhe.
Restrições para restauração on-line
Uma sequência de restauração online funciona somente se as seguintes condições forem atendidas:
Todos os backups de log necessários devem ter sido feitos antes do início da sequência de restauração.
As alterações em massa devem ser salvas antes de iniciar a sequência de restauração online.
Se existirem alterações em massa no banco de dados, todos os arquivos deverão estar online ou extintos (ou seja, não farão mais parte do banco de dados).
Se essas condições não forem atendidas, a sequência de restauração online falhará.
Observação
Recomendamos mudar para o modelo de recuperação completa antes de iniciar uma restauração online. Para obter mais informações, consulte Modelos de recuperação de (SQL Server).
Para obter informações sobre como executar uma restauração online, consulte Restauração Online (SQL Server).
Supervisor de Recuperação de Banco de Dados (SQL Server Management Studio)
O Supervisor de Recuperação de Banco de Dados facilita a construção de planos de restauração que implementam sequências de restauração corretas ideais. Muitos problemas conhecidos de restauração de banco de dados e aprimoramentos solicitados pelos clientes foram resolvidos. Os principais aprimoramentos introduzidos pelo Database Recovery Advisor incluem:
Algoritmo de plano de restauração: O algoritmo usado para construir planos de restauração melhorou significativamente, particularmente para cenários de restauração complexos. Muitos casos extremos, incluindo cenários de bifurcação em restaurações em um ponto específico no tempo, são tratados de forma mais eficiente do que em versões anteriores do SQL Server.
Restaurações em ponto específico no tempo: O Assistente de Recuperação de Bases de Dados simplifica muito a restauração de um banco de dados para um ponto específico no tempo. Uma linha do tempo de backup visual melhora de forma significativa o suporte para restaurações num ponto no tempo. Essa linha do tempo visual permite identificar um point-in-time viável como o ponto de recuperação de destino para restaurar um banco de dados. A linha do tempo ajuda a percorrer um percurso de recuperação ramificado (um caminho que abrange bifurcações de recuperação). Um determinado plano de restauração point-in-time inclui automaticamente os backups que são relevantes para a restauração para o seu point-in-time de destino (data e hora). Para obter mais informações, consulte Restaurar uma Base de Dados do SQL Server para um Ponto no Tempo (Modelo de Recuperação Completa).
Para obter mais informações, consulte sobre o Supervisor de Recuperação de Banco de Dados, consulte os seguintes blogs de Gerenciabilidade do SQL Server:
Recuperação acelerada do banco de dados
Recuperação Acelerada de Banco de Dados (ADR) está disponível a partir do SQL Server 2019 (15.x). O ADR também está disponível no Banco de Dados SQL do Azure, na Instância Gerenciada SQL do Azure, no Azure Synapse Analytics (somente pool SQL dedicado) e no banco de dados SQL no Microsoft Fabric. A recuperação acelerada do banco de dados melhora significativamente a disponibilidade do banco de dados, especialmente na presença de transações de longa duração, ao redesenhar o processo de recuperação no Mecanismo de Banco de Dados do SQL Server . Um banco de dados com ADR habilitado conclui o processo de recuperação significativamente mais rápido após um failover ou outro desligamento inesperado. Quando o ADR está ativado, a reversão de transações de longa duração canceladas é concluída instantaneamente.
Você pode habilitar o ADR por banco de dados no SQL Server 2019 (15.x) e versões posteriores usando a seguinte sintaxe:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Observação
O ADR está sempre habilitado no Banco de Dados SQL do Azure, na Instância Gerenciada SQL do Azure, no Azure Synapse Analytics (somente pool SQL dedicado) e no banco de dados SQL no Microsoft Fabric.
Conteúdo relacionado
- Visão geral do backup (SQL Server)
- O log de transações
- de arquitetura e gerenciamento de log de transações do SQL Server
- Backup e restauração de bancos de dados do SQL Server
- Aplicar cópias de segurança do log de transações (SQL Server)