Restaurar páginas (SQL Server)Restore Pages (SQL Server)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este tópico descreve como restaurar páginas no SQL ServerSQL Server usando o SQL Server Management StudioSQL Server Management Studio ou o Transact-SQLTransact-SQL.This topic describes how to restore pages in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. A meta da restauração de uma página é restaurar uma ou mais páginas danificadas sem restaurar todo o banco de dados.The goal of a page restore is to restore one or more damaged pages without restoring the whole database. Geralmente, as páginas candidatas à restauração foram marcadas como "suspeitas" por causa de um erro encontrado durante seu acesso.Typically, pages that are candidates for restore have been marked as "suspect" because of an error that is encountered when accessing the page. Páginas suspeitas são identificadas na tabela suspect_pages do banco de dados msdb .Suspect pages are identified in the suspect_pages table in the msdb database.

Neste tópicoIn This Topic

Antes de começarBefore You Begin

Quando uma restauração de página é útil?When is a Page Restore Useful?

A restauração de página é usada para restaurar páginas danificadas isoladas.A page restore is intended for repairing isolated damaged pages. A restauração e recuperação de algumas páginas individuais pode ocorrer mais rapidamente do que a restauração de arquivo, reduzindo a quantidade de dados offline durante a operação de restauração.Restoring and recovering a few individual pages might be faster than a file restore, reducing the amount of data that is offline during a restore operation. No entanto, se for necessário restaurar mais do que algumas páginas em um arquivo, será geralmente mais eficaz restaurar todo o arquivo.However, if you have to restore more than a few pages in a file, it is generally more efficient to restore the whole file. Por exemplo, se várias páginas em um dispositivo indicarem uma falha de dispositivo pendente, é recomendável a restauração do arquivo, possivelmente em outro local, e a reparação do dispositivo.For example, if lots of pages on a device indicate a pending device failure, consider restoring the file, possibly to another location, and repairing the device.

Além disso, nem todos os erros de página precisam de restauração.Furthermore, not all page errors require a restore. Pode ocorrer um problema nos dados armazenados em cache, como um índice secundário, que pode ser resolvido pelo recálculo dos dados.A problem can occur in cached data, such as a secondary index, that can be resolved by recalculating the data. Por exemplo, se o administrador de banco de dados cancela um índice secundário e o recria, os dados corrompidos, embora fixos, não são indicados como tal na tabela suspect_pages .For example, if the database administrator drops a secondary index and rebuilds it, the corrupted data, although fixed, is not indicated as such in the suspect_pages table.

Limitações e restriçõesLimitations and Restrictions

  • A restauração de página se aplica a bancos de dados do SQL ServerSQL Server que usam os modelos de recuperação completa ou bulk-logged.Page restore applies to SQL ServerSQL Server databases that are using the full or bulk-logged recovery models. Só há suporte para restauração de página para grupos de arquivos de leitura/gravação.Page restore is supported only for read/write filegroups.

  • Somente páginas de banco de dados podem ser restauradas.Only database pages can be restored. A restauração de página não pode ser usada para restaurar o seguinte:Page restore cannot be used to restore the following:

    • Log de transaçõesTransaction log

    • Páginas de alocação: páginas GAM (Global Allocation Map), páginas SGAM (Shared Global Allocation Map) e páginas PFS (Page Free Space).Allocation pages: Global Allocation Map (GAM) pages, Shared Global Allocation Map (SGAM) pages, and Page Free Space (PFS) pages.

    • Página 0 de todos os arquivos de dados (a página de inicialização de arquivo)Page 0 of all data files (the file boot page)

    • Página 1:9 (a página de inicialização do banco de dados)Page 1:9 (the database boot page)

    • Catálogo de texto completoFull-text catalog

  • Para um banco de dados que usa o modelo de recuperação bulk-logged, a restauração de página tem as seguintes condições adicionais:For a database that uses the bulk-logged recovery model, page restore has the following additional conditions:

    • Fazer um backup enquanto um grupo de arquivos ou dados de página estão offline é problemático para dados com log de operações em massa porque os dados offline não são registrados no log.Backing up while filegroup or page data is offline is problematic for bulk-logged data, because the offline data is not recorded in the log. Qualquer página offline pode impedir o backup do log.Any offline page can prevent backing up the log. Nesses casos, considere usar DBCC REPAIR, pois isso pode causar menos perda de dados do que a restauração do backup mais recente.In this cases, consider using DBCC REPAIR, because this might cause less data loss than restoring to the most recent backup.

    • Se um backup de log de um banco de dados com log de operações em massa encontrar uma página danificada, falhará a menos que WITH CONTINUE_AFTER_ERROR esteja especificado.If a log backup of a bulk-logged database encounters a bad page, it fails unless WITH CONTINUE_AFTER_ERROR is specified.

    • A restauração de página geralmente não funciona em recuperação bulk-logged.Page restore generally does not work with bulk-logged recovery.

      Uma prática recomendada para executar restauração de página é definir o banco de dados como modelo de recuperação completa e tentar um backup de log.A best practice for performing page restore is to set the database to the full recovery model, and try a log backup. Se o backup de log funcionar, você poderá continuar com a restauração da página.If the log backup works, you can continue with the page restore. Se o backup de log falhar, você perderá trabalho desde o backup de log anterior ou terá de tentar executar DBCC com a opção REPAIR_ALLOW_DATA_LOSS.If the log backup fails, you either have to lose work since the previous log backup or you have to try running DBCC must be run with the REPAIR_ALLOW_DATA_LOSS option.

RecomendaçõesRecommendations

  • Cenários de restauração de página:Page restore scenarios:

    Restauração de página offlineOffline page restore
    Todas as edições do SQL ServerSQL Server oferecem suporte à restauração de páginas quando o banco de dados está offline.All editions of SQL ServerSQL Server support restoring pages when the database is offline. Em uma restauração de página offline, o banco de dados fica offline enquanto as páginas danificadas são restauradas.In an offline page restore, the database is offline while damaged pages are restored. Ao término da sequência de restauração, o banco de dados fica online.At the end of the restore sequence, the database comes online.

    Restauração de página onlineOnline page restore
    SQL ServerSQL Server A Enterprise edition dá suporte à restaurações de página online, mesmo que use a restauração offline quando o banco de dados está offline.Enterprise edition supports online page restores, though they use offline restore if the database is currently offline. Na maioria dos casos, uma página danificada pode ser restaurada enquanto o banco de dados permanece online, inclusive o grupo de arquivos para o qual uma página está sendo restaurada.In most cases, a damaged page can be restored while the database remains online, including the filegroup to which a page is being restored. Quando o grupo de arquivos primário estiver online, até mesmo se um ou mais de seus grupos de arquivos secundários estiverem offline, as restaurações de página serão geralmente executadas online.When the primary filegroup is online, even if one or more of its secondary filegroups are offline, page restores are usually performed online. No entanto, ocasionalmente uma página danificada pode precisar de uma restauração offline.Occasionally, however, a damaged page can require an offline restore. Por exemplo, os danos a certas páginas importantes podem impedir a inicialização do banco de dados.For example, damage to certain critical pages might prevent the database from starting.

    Aviso

    Se páginas danificadas estiverem armazenando metadados de bancos de dados importantes, atualizações necessárias nos metadados poderão apresentar falha durante uma tentativa de restauração de página online.If damaged pages are storing critical database metadata, required updates to metadata might fail during an online page restore attempt. Nesse caso, você pode executar uma restauração de página offline, mas primeiro deve criar um backup da parte final do log (fazendo backup do log de transações por meio de RESTORE WITH NORECOVERY).In this case, you can perform an offline page restore, but first you must create a tail log backup (by backing up the transaction log using RESTORE WITH NORECOVERY).

  • A restauração de página beneficia-se do relatório aprimorado de erro no nível da página (incluindo somas de verificação de página) e do rastreamento.Page restore takes advantage of the improved page-level error reporting (including page checksums) and tracking. As páginas detectadas como corrompidas por soma de verificação ou gravação interrompida, as páginas danificadas, podem ser restauradas por uma operação de restauração de página.Pages that are detected as corrupted by check-summing or a torn write, damaged pages, can be restored by a page restore operation. Somente páginas explicitamente especificadas são restauradas.Only explicitly specified pages are restored. Cada página especificada é substituída pela cópia dessa página no backup de dados especificado.Each specified page is replaced by the copy of that page from the specified data backup.

    Quando você restaurar os backups de log subsequentes, eles só serão aplicados a arquivos de banco de dados que contêm pelo menos uma página que está sendo recuperada.When you restore the subsequent log backups, they are applied only to database files that contain at least one page that is being recovered. Uma cadeia uniforme 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 até o arquivo de log atual.An unbroken chain of log backups must be applied to the last full or differential restore to bring the filegroup that contains the page forward to the current log file. Assim como em uma restauração de arquivo, o conjunto de roll forward é avançado com uma única passagem de restauração de log.As in a file restore, the roll forward set is advanced with a single log redo pass. Para que a restauração da página tenha êxito, as páginas restauradas devem ser recuperadas para um estado consistente com o banco de dados.For a page restore to succeed, the restored pages must be recovered to a state consistent with the database.

SegurançaSecurity

PermissõesPermissions

Se o banco de dados que está sendo restaurado não existir, o usuário deverá ter permissões CREATE DATABASE para poder executar o comando RESTORE.If the database being restored does not exist, the user must have CREATE DATABASE permissions to be able to execute RESTORE. Se o banco de dados existir, as permissões RESTORE usarão como padrão os membros das funções de servidor fixas sysadmin e dbcreator e o proprietário (dbo) do banco de dados (para a opção FROM DATABASE_SNAPSHOT, o banco de dados sempre existe).If the database exists, RESTORE permissions default to members of the sysadmin and dbcreator fixed server roles and the owner (dbo) of the database (for the FROM DATABASE_SNAPSHOT option, the database always exists).

As permissões RESTORE são concedidas a funções nas quais as informações de associação estão sempre disponíveis para o servidor.RESTORE permissions are given to roles in which membership information is always readily available to the server. Como a associação da função de banco de dados fixa pode ser verificada apenas quando o banco de dados está acessível e não danificado, 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.Because fixed database role membership can be checked only when the database is accessible and undamaged, which is not always the case when RESTORE is executed, members of the db_owner fixed database role do not have RESTORE permissions.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Começando pelo SQL Server 2019 (15.x)SQL Server 2019 (15.x), o SQL Server Management StudioSQL Server Management Studio oferece suporte a restaurações de página.Starting in SQL Server 2019 (15.x)SQL Server 2019 (15.x), SQL Server Management StudioSQL Server Management Studio supports page restores.

Para restaurar páginasTo restore pages

  1. Conecte-se à instância adequada do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, no Pesquisador de Objetos, e clique no nome do servidor para expandir a árvore de servidores.Connect to the appropriate instance of the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. Expanda os Bancos de dados.Expand Databases. Dependendo do banco de dados, selecione um banco de dados de usuário ou expanda os Bancos de dados do sistemae selecione um banco de dados do sistema.Depending on the database, either select a user database or expand System Databases, and then select a system database.

  3. Clique com o botão direito do mouse no banco de dados, aponte para Tarefas, Restaurare clique em Página, o que abre a caixa de diálogo Restaurar Página .Right-click the database, point to Tasks, point to Restore, and then click Page, which opens the Restore Page dialog box.

    RestaurarRestore
    Esta seção executa a mesma função de Restaurar em em Restaurar Banco de Dados (Página Geral).This section performs the same function as that of Restore to on the Restore Database (General Page).

    Backup de banco de dadosDatabase
    Especifica o banco de dados a ser restaurado.Specifies the database to restore. Você pode digitar um novo banco de dados ou selecionar um banco de dados existente na lista suspensa.You can enter a new database or select an existing database from the drop-down list. A lista inclui todos os bancos de dados do servidor, exceto os bancos de dados do sistema mestre e tempdb.The list includes all databases on the server, except the system databases master and tempdb.

    Aviso

    Para restaurar um backup protegido por senha, você deve usar a instrução RESTORE .To restore a password-protected backup, you must use the RESTORE statement.

    Backup do final do logTail-Log backup
    Digite ou selecione um nome de arquivo em Dispositivo de backup em que o backup da parte final do log será armazenado para o banco de dados.Enter or select a file name in Backup device where there tail-log backup will be stored for the database.

    Conjuntos de backupBackup Sets
    Esta seção exibe os conjuntos de backup envolvidos na restauração.This section displays the backup sets involved in the restoration.

    CabeçalhoHeader ValoresValues
    NomeName O nome do conjunto de backup.The name of the backup set.
    ComponenteComponent O componente com backup: Banco de Dados, Arquivo ou <blank> (para logs de transações).The backed-up component: Database, File, or <blank> (for transaction logs).
    TipoType Tipo de backup realizado: Completo, Diferencialou Log de Transações.The type of backup performed: Full, Differential, or Transaction Log.
    ServidorServer O nome da instância Mecanismo de Banco de DadosDatabase Engine que executou a operação de backup.The name of the Mecanismo de Banco de DadosDatabase Engine instance that performed the backup operation.
    Backup de banco de dadosDatabase Nome do banco de dados envolvido na operação de backup.The name of the database involved in the backup operation.
    PosiçãoPosition A posição do conjunto de backup no volume.The position of the backup set in the volume.
    Primeiro LSNFirst LSN Número de sequência de log (LSN) da primeira transação do conjunto de backup.The log sequence number (LSN) of the first transaction in the backup set. Em branco para backups de arquivo.Blank for file backups.
    Último LSNLast LSN O número de sequência de log (LSN) da última transação do conjunto de backup.The log sequence number (LSN) of the last transaction in the backup set. Em branco para backups de arquivo.Blank for file backups.
    LSN do Ponto de VerificaçãoCheckpoint LSN O número de sequência de log (LSN) do ponto de verificação mais recente no momento da criação do backup.The log sequence number (LSN) of the most recent checkpoint at the time the backup was created.
    LSN CompletoFull LSN Número de sequência de log (LSN) do backup de banco de dados completo mais recente.The log sequence number (LSN) of the most recent full database backup.
    Data de InícioStart Date A data e hora de início da operação de backup, apresentadas na configuração regional do cliente.The date and time when the backup operation began, presented in the regional setting of the client.
    Data de ConclusãoFinish Date A data e hora da conclusão da operação de backup, apresentadas na configuração regional do cliente.The date and time when the backup operation finished, presented in the regional setting of the client.
    TamanhoSize O tamanho do conjunto de backup em bytes.The size of the backup set in bytes.
    Nome de usuárioUser Name O nome do usuário que realizou a operação de backup.The name of the user who performed the backup operation.
    ValidadeExpiration A data e hora de validade do conjunto de backup.The date and time the backup set expires.

    Clique em Verificar para verificar a integridade dos arquivos de backup necessários para executar a operação de restauração de página.Click Verify to check the integrity of the backup files needed to perform the page restore operation.

  4. Para identificar páginas corrompidas, com o banco de dados correto selecionado na caixa Banco de Dados , clique em Verificar Páginas de Banco de Dados.To identify corrupted pages, with the correct database selected in the Database box, click Check Database Pages. Essa é uma operação em execução longa.This is a long running operation.

    Aviso

    Para restaurar páginas específicas que não estão danificadas, clique em Adicionar e digite a ID do Arquivo e a ID da Página referentes às páginas que serão restauradas.To restore specific pages that are not corrupted, click Add and enter the File ID and Page ID of the pages to be restored.

  5. A grade de páginas é usada para identificar as páginas a serem restauradas.The pages grid is used to identify the pages to be restored. Inicialmente, essa grade é preenchida por meio da tabela de sistema suspect_pages .Initially, this grid is populated from the suspect_pages system table. Para adicionar ou remover páginas da grade, clique em Adicionar ou Remover.To add or remove pages from the grid, click Add or Remove. Para obter mais informações, veja Gerenciar a tabela suspect_pages (SQL Server).For more information, see Manage the suspect_pages Table (SQL Server).

  6. A grade Conjuntos de backup lista os conjuntos de backup no plano de restauração padrão.The Backup sets grid lists the backup sets in the default restore plan. Se desejar, clique em Verificar para verificar se os backups são legíveis e se os conjuntos de backup são completos, sem restaurá-los.Optionally, click Verify to verify that the backups are readable and that the backup sets are complete, without restoring them. Para obter mais informações, consulte RESTORE VERIFYONLY (Transact-SQL).For more information, see RESTORE VERIFYONLY (Transact-SQL).

    PáginasPages

  7. Para restaurar as páginas listadas na grade de páginas, clique em OK.To restore the pages listed in the pages grid, click OK.

Usando o Transact-SQLUsing Transact-SQL

Para especificar uma página em uma instrução RESTORE DATABASE, você precisará da ID do arquivo que contém a página e da ID da página.To specify a page in a RESTORE DATABASE statement, you need the file ID of the file containing the page and the page ID of the page. A sintaxe necessária é a seguinte:The required syntax is as follows:

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 Argumentos RESTORE (Transact-SQL).For more information about the parameters of the PAGE option, see RESTORE Arguments (Transact-SQL). Para obter mais informações sobre a sintaxe RESTORE DATABASE, consulte RESTORE (Transact-SQL).For more information about the RESTORE DATABASE syntax, see RESTORE (Transact-SQL).

Para restaurar páginasTo restore pages

  1. Obtenha a ID das páginas a serem restauradas.Obtain the page IDs of the damaged pages to be restored. Uma soma de verificação ou um erro de gravação interrompida retorna a ID da página, fornecendo as informações necessárias para especificar as páginas.A checksum or torn write error returns page ID, providing the information required for specifying the pages. Para consultar a ID de uma página danificada, use qualquer uma das origens a seguir.To look up page ID of a damaged page, use any of the following sources.

    Fonte de ID de páginaSource of page ID TópicoTopic
    msdb..suspect_pagesmsdb..suspect_pages Gerenciar a tabela suspect_pages (SQL Server)Manage the suspect_pages Table (SQL Server)
    Log de errosError log Exibir o log de erros do SQL Server (SQL Server Management Studio)View the SQL Server Error Log (SQL Server Management Studio)
    Rastreamento de eventoEvent traces Monitorar e responder a eventosMonitor and Respond to Events
    DBCCDBCC DBCC (Transact-SQL)DBCC (Transact-SQL)
    Provedor WMIWMI provider Provedor WMI para conceitos de eventos de servidorWMI Provider for Server Events Concepts
  2. Inicie uma restauração de página com um backup completo do banco de dados, do arquivo ou do grupo de arquivos que contém a página.Start a page restore with a full database, file, or filegroup backup that contains the page. 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.In the RESTORE DATABASE statement, use the PAGE clause to list the page IDs of all of the pages to be restored.

  3. Aplique os diferenciais mais recentes.Apply the most recent differentials .

  4. Aplique os backups de log subsequentes.Apply the subsequent log backups.

  5. Crie um novo backup de log do banco de dados que inclui o LSN final das páginas restauradas, ou seja, o ponto no qual a última página restaurada foi colocada offline.Create a new log backup of the database that includes the final LSN of the restored pages, that is, the point at which the last restored page is taken offline. O LSN final, que é definido como parte da primeira restauração na sequência, é o LSN refeito de destino.The final LSN, which is set as part of the first restore in the sequence, is the redo target LSN. O roll forward Online do arquivo que contém a página pode parar no LSN refeito de destino.Online roll forward of the file containing the page is able to stop at the redo target LSN. Para saber qual é o LSN refeito de destino de um arquivo, consulte a coluna redo_target_lsn de sys.master_files.To learn the current redo target LSN of a file, see the redo_target_lsn column of sys.master_files. Para obter mais informações, consulte sys.master_files (Transact-SQL).For more information, see sys.master_files (Transact-SQL).

  6. Restaure o novo backup de log.Restore the new log backup. Depois que o novo backup de log é aplicado, a restauração da página está concluída e as páginas podem ser usadas.After this new log backup is applied, the page restore is completed and the pages are now usable.

    Observação

    Essa sequência é análoga à sequência de restauração de um arquivo.This sequence is analogous to a file restore sequence. Na realidade, restaurações de página e arquivo podem ser executadas como parte da mesma sequência.In fact, page restore and file restores can both be performed as part of the same sequence.

Exemplo (Transact-SQL)Example (Transact-SQL)

O exemplo a seguir restaura quatro páginas danificadas do arquivo B com NORECOVERY.The following example restores four damaged pages of file B with NORECOVERY. Em seguida, dois backups de log são aplicados com NORECOVERY, seguido pelo backup do final do log que é restaurado com RECOVERY.Next, two log backups are applied with NORECOVERY, followed with the tail-log backup, which is restored with RECOVERY. Este exemplo executa uma restauração online.This example performs an online restore. No exemplo, a ID de arquivo de B é 1, e as IDs de página das páginas danificadas são 57, 202, 916e 1016.In the example, the file ID of file B is 1, and the page IDs of the damaged pages are 57, 202, 916, and 1016.

RESTORE DATABASE <database> PAGE='1:57, 1:202, 1:916, 1:1016'  
   FROM <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  

Consulte TambémSee Also

RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Aplicar backups de log de transações (SQL Server) Apply Transaction Log Backups (SQL Server)
Gerenciar a tabela suspect_pages (SQL Server) Manage the suspect_pages Table (SQL Server)
Fazer backup e restaurar bancos de dados do SQL ServerBack Up and Restore of SQL Server Databases