Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Este tópico descreve como restaurar páginas no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. O objetivo de uma restauração de página é restaurar uma ou mais páginas danificadas sem restaurar todo o banco de dados. Normalmente, as páginas que são candidatas à restauração foram marcadas como "suspeitas" devido a um erro encontrado ao acessar a página. As páginas suspeitas são identificadas na tabela suspect_pages no banco de dados msdb.
Neste tópico
Antes de começar:
Para restaurar páginas, usando:
SQL Server Management Studio (Estúdio de Gestão do Servidor SQL)
Antes de começar
Quando uma restauração de página é útil?
Uma restauração de página destina-se a reparar páginas danificadas isoladas. Restaurar e recuperar algumas páginas individuais pode ser mais rápido do que uma restauração de arquivo, reduzindo a quantidade de dados que estão offline durante uma operação de restauração. No entanto, se você tiver que restaurar mais do que algumas páginas em um arquivo, geralmente é mais eficiente restaurar o arquivo inteiro. Por exemplo, se muitas páginas em um dispositivo indicarem uma falha pendente do dispositivo, considere restaurar o arquivo, possivelmente para outro local, e reparar o dispositivo.
Além disso, nem todos os erros de página requerem uma restauração. Um problema pode ocorrer em dados armazenados em cache, como um índice secundário, que pode ser resolvido recalculando os dados. Por exemplo, se o administrador do banco de dados descartar um índice secundário e reconstruí-lo, os dados corrompidos, embora fixos, não serão indicados como tal na tabela suspect_pages.
Limitações e Restrições
A restauração de páginas aplica-se a bases de dados SQL Server que utilizam os modelos de recuperação completa ou com registo em massa. A restauração de página é suportada apenas para grupos de arquivos de leitura/gravação.
Somente as páginas do banco de dados podem ser restauradas. A restauração de página não pode ser usada para restaurar o seguinte:
Registo de transações
Páginas de alocação: páginas do Mapa de Alocação Global (GAM), páginas do Mapa de Alocação Global Compartilhada (SGAM) e páginas de Espaço Livre de Página (PFS).
Página 0 de todos os arquivos de dados (a página de inicialização do arquivo)
Página 1:9 (a página de inicialização do banco de dados)
Catálogo de texto completo
Para uma base de dados que utiliza o modelo de recuperação com registo em massa, a restauração de página tem as seguintes condições adicionais:
O backup enquanto os dados do grupo de arquivos ou da página estão offline é problemático para dados registrados em massa, porque os dados offline não são registrados no log. Qualquer página offline pode impedir o backup do log. Nesses casos, considere usar DBCC REPAIR, porque isso pode causar menos perda de dados do que restaurar para o backup mais recente.
Se um backup de log de um banco de dados bulk-logged encontrar uma página incorreta, ele falhará a menos que WITH CONTINUE_AFTER_ERROR seja especificado.
A restauração de página geralmente não funciona com a recuperação registrada em massa.
Uma prática recomendada para executar a restauração de página é definir o banco de dados para o modelo de recuperação completa e tentar um backup de log. Se o backup de log funcionar, você poderá continuar com a restauração de página. Se o backup de log falhar, terá de perder o trabalho desde o backup de log anterior ou terá de executar o DBCC com a opção REPAIR_ALLOW_DATA_LOSS.
Recomendações
Cenários de restauração de página:
Restauração de página offline
Todas as edições do SQL Server oferecem suporte à restauração de páginas quando o banco de dados está offline. Em uma restauração de página offline, o banco de dados fica offline enquanto as páginas danificadas são restauradas. No final da sequência de restauração, o banco de dados fica online.Restauração de página on-line
O SQL Server Enterprise Edition oferece suporte a restaurações de página online, embora elas usem a restauração offline se o banco de dados estiver offline no momento. Na maioria dos casos, uma página danificada pode ser restaurada enquanto o banco de dados permanece online, incluindo o grupo de arquivos para o qual uma página está sendo restaurada. Quando o grupo de arquivos primário está online, mesmo que um ou mais de seus grupos de arquivos secundários estejam offline, as restaurações de página geralmente são realizadas online. Ocasionalmente, no entanto, uma página danificada pode exigir uma restauração offline. Por exemplo, danos a determinadas páginas críticas podem impedir que o banco de dados seja iniciado.Advertência
Se as páginas danificadas estiverem armazenando metadados críticos do banco de dados, as atualizações necessárias dos metadados poderão falhar durante uma tentativa de restauração de página online. Nesse caso, você pode executar uma restauração de página offline, mas primeiro você deve criar um de backup de log de cauda (fazendo backup do log de transações usando RESTORE WITH NORECOVERY).
O restauro de página tira partido do relatório de erros ao nível da página melhorado (incluindo somas de verificação de página) e da monitorização. As páginas detetadas como corrompidas devido a checksums ou escrita corrompida, páginas danificadas, podem ser restauradas por uma operação de restauração de página. Apenas as páginas explicitamente especificadas são restauradas. Cada página especificada é substituída pela cópia dessa página do backup de dados especificado.
Quando você restaura os backups de log subsequentes, eles são aplicados somente aos arquivos de banco de dados que contêm pelo menos uma página que está sendo recuperada. Uma cadeia ininterrupta de backups de log deve ser aplicada à última restauração completa ou diferencial para trazer o grupo de arquivos que contém a página para o arquivo de log atual. Como numa restauração de ficheiro, o conjunto de avanço é avançado com uma passagem única de reexecução do log. Para que uma restauração de página seja bem-sucedida, as páginas restauradas devem ser recuperadas para um estado consistente com o banco de dados.
Segurança
Permissões
Se o banco de dados que está sendo restaurado não existir, o usuário deve ter permissões CREATE DATABASE para poder executar RESTORE. Se o banco de dados existir, as permissões padrão de RESTORE são atribuídas aos membros das funções de servidor fixas sysadmin e dbcreator e ao proprietário do banco de dados (dbo). Nota: para a opção FROM DATABASE_SNAPSHOT, o banco de dados sempre existe.
As permissões RESTORE são dadas a funções nas quais as informações de associação estão sempre prontamente disponíveis para o servidor. Como a associação à função de banco de dados fixa pode ser verificada somente quando o banco de dados está acessível e sem danos, o que nem sempre é o caso quando RESTORE é executado, os membros da função de banco de dados fixa db_owner não têm permissões RESTORE.
Usando o SQL Server Management Studio
A partir do SQL Server 2016 (13.x), o SQL Server Management Studio oferece suporte a restaurações de página.
Para restaurar páginas
Conecte-se à instância apropriada do Mecanismo de Banco de Dados do SQL Server, no Pesquisador de Objetos, clique no nome do servidor para expandir a árvore do servidor.
Expanda Base de dados. Dependendo do banco de dados, selecione um banco de dados de usuário ou expanda Bancos de Dados do Sistemae, em seguida, selecione um banco de dados do sistema.
Clique com o botão direito do rato na base de dados, aponte para Tarefas, aponte para Restaurare, em seguida, clique em Página, que abre a caixa de diálogo Restaurar.
Restaurar
Esta seção executa a mesma função que Restaurar para no Restaurar Banco de Dados (Página Geral).Base de Dados
Especifica o banco de dados a ser restaurado. Você pode inserir um novo banco de dados ou selecionar um banco de dados existente na lista suspensa. A lista inclui todos os bancos de dados no servidor, exceto os bancos de dados do sistema master e tempdb.Advertência
Para restaurar um backup protegido por senha, você deve usar a instrução RESTORE.
Tail-Log cópia de segurança
Insira ou selecione um nome de ficheiro no dispositivo de backup onde a cópia de segurança do tail-log será armazenada para o banco de dados.Conjuntos de Cópias de Segurança
Esta seção exibe os conjuntos de backup envolvidos na restauração.Cabeçalho Valores Nome O nome do conjunto de backup. Componente O componente de backup: de banco de dados, de arquivos ou <> em branco (para logs de transações). Tipo O tipo de backup executado: Full, Differentialou Transaction Log. Servidor O nome da instância do Mecanismo de Banco de Dados que executou a operação de backup. Base de Dados O nome do banco de dados envolvido na operação de backup. Posição A posição do conjunto de backup no volume. Primeiro LSN O número de sequência de log (LSN) da primeira transação no conjunto de backup. Em branco para backups de arquivos. Última LSN O número de sequência de log (LSN) da última transação no conjunto de backup. Em branco para backups de arquivos. LSN do posto de controlo O número de sequência de log (LSN) do ponto de verificação mais recente no momento em que o backup foi criado. LSN completo O número de sequência de log (LSN) do backup completo de banco de dados mais recente. Data de início A data e a hora em que a operação de backup começou, apresentadas na configuração regional do cliente. Data de término A data e hora em que a operação de backup terminou, apresentada na configuração regional do cliente. Tamanho O tamanho do conjunto de backup em bytes. Nome de Utilizador O nome do usuário que executou a operação de backup. Expiração A data e a hora em que o conjunto de cópia de segurança expira. Clique Verificar para verificar a integridade dos arquivos de backup necessários para executar a operação de restauração de página.
Para identificar páginas corrompidas, com o banco de dados correto selecionado na caixa Banco de Dados, clique em Verificar Páginas do Banco de Dados. Esta é uma operação de longa duração.
Advertência
Para restaurar páginas específicas que não estão corrompidas, clique em Adicionar e insira o ID de arquivo e ID de página das páginas a serem restauradas.
A grade de páginas é usada para identificar as páginas a serem restauradas. Inicialmente, essa grade é preenchida a partir da tabela do sistema suspect_pages. Para adicionar ou remover páginas da grade, clique Adicionar ou Remover. Para obter mais informações, consulte Gerir a tabela de suspect_pages (SQL Server).
A grelha de conjuntos de backup , listada como, apresenta os conjuntos de backup no plano padrão de restauração. Opcionalmente, clique em Verificar para verificar se os backups são legíveis e se os conjuntos de backup estão completos, sem restaurá-los. Para obter mais informações, consulte RESTORE VERIFYONLY (Transact-SQL).
Páginas
Para restaurar as páginas listadas na grade de páginas, clique em OK.
Usando Transact-SQL
Para especificar uma página numa instrução RESTORE DATABASE, necessitas do ID do ficheiro que contém a página e do ID da própria página. A sintaxe necessária é a seguinte:
RESTORE DATABASE <database_name>
PAGE = '<file: page> [ ,... n ] ' [ ,... n ]
FROM <backup_device> [ ,... n ]
WITH NORECOVERY
Para obter mais informações sobre os parâmetros da opção PAGE, consulte RESTORE Arguments (Transact-SQL). Para obter mais informações sobre a sintaxe RESTORE DATABASE, consulte RESTORE (Transact-SQL).
Para restaurar páginas
Obtenha os IDs de página das páginas danificadas a serem restauradas. Um checksum ou um erro de escrita rasgada retorna o ID da página, fornecendo as informações necessárias para especificar as páginas. Para consultar o ID da página de uma página danificada, use qualquer uma das seguintes fontes.
Origem do ID da página Tópico msdb..suspect_pages Gerenciar a tabela de suspect_pages (SQL Server) Registo de erros Exibir o log de erros do SQL Server (SQL Server Management Studio) Rastreamentos de eventos Monitorizar e Responder a Eventos DBCC DBCC (Transact-SQL) Provedor WMI Provedor WMI para Conceitos de Eventos de Servidor Inicie uma restauração de página com um backup completo de banco de dados, arquivo ou grupo de arquivos que contenha a página. Na instrução RESTORE DATABASE, use a cláusula PAGE para listar as IDs de página de todas as páginas a serem restauradas.
Aplique os diferenciais mais recentes.
Aplique os backups de log subsequentes.
Crie um novo backup de log do banco de dados que inclua o LSN final das páginas restauradas, ou seja, o ponto em que a última página restaurada é colocada offline. O LSN final, que é definido como parte da restauração inicial na sequência, é o LSN alvo de refazer. O avanço online do arquivo que contém a página pode parar no LSN de destino para refazer. Para saber o LSN de destino de refazer atual de um arquivo, consulte a coluna redo_target_lsn de sys.master_files. Para obter mais informações, consulte sys.master_files (Transact-SQL).
Restaure o novo backup de log. Depois que esse novo backup de log for aplicado, a restauração da página será concluída e as páginas agora poderão ser usadas.
Observação
Esta sequência é análoga a uma sequência de restauro de ficheiros. Na verdade, a restauração de página e a restauração de arquivos podem ser executadas como parte da mesma sequência.
Exemplo (Transact-SQL)
O exemplo a seguir restaura quatro páginas danificadas do ficheiro B usando NORECOVERY. Em seguida, dois backups de log são aplicados com NORECOVERY, seguidos com o backup de tail-log, que é restaurado com RECOVERY. Este exemplo executa uma restauração online. No exemplo, a ID de arquivo do arquivo B é 1e as IDs de página das páginas danificadas são 57, 202, 916e 1016.
RESTORE DATABASE [<database>] PAGE='1:57, 1:202, 1:916, 1:1016'
FROM DISK = '<file_backup_of_file_B>'
WITH NORECOVERY;
RESTORE LOG [<database>] FROM [<log_backup>]
WITH NORECOVERY;
RESTORE LOG [<database>] FROM [<log_backup>]
WITH NORECOVERY;
BACKUP LOG [<database>] TO [<new_log_backup>];
RESTORE LOG [<database>] FROM [<new_log_backup>] WITH RECOVERY;
GO
Ver também
RESTAURAR (Transact-SQL)
Aplicar backups dos logs de transações (SQL Server)
Gerenciar a tabela de suspect_pages (SQL Server)
Backup e restauração de bancos de dados do SQL Server