Gerenciar a tabela suspect_pages (SQL Server)Manage the suspect_pages Table (SQL Server)

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions)

Este tópico descreve como gerenciar a tabela suspect_pages no SQL ServerSQL Server usando o SQL Server Management StudioSQL Server Management Studio ou Transact-SQLTransact-SQL.This topic describes how to manage the suspect_pages table in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. A tabela suspect_pages é usada para manter informações sobre páginas suspeitas e é relevante para ajudar a decidir se a restauração é necessária.The suspect_pages table is used for maintaining information about suspect pages, and is relevant in helping to decide whether a restore is necessary. A tabela suspect_pages reside no banco de dados msdb.The suspect_pages table resides in the msdb database.

Uma página é considerada "suspeita" quando o Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine encontra um dos seguintes erros ao tentar ler uma página de dados:A page is considered "suspect" when the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine encounters one of the following errors when it tries to read a data page:

  • Um erro 823 causado por uma CRC (verificação de redundância cíclica) emitida pelo sistema operacional, como um erro de disco (alguns erros de hardware)An 823 error that was caused by a cyclic redundancy check (CRC) issued by the operating system, such as a disk error (certain hardware errors)

  • Um erro 824, como uma página interrompida (qualquer erro lógico)An 824 error, such as a torn page (any logical error)

A ID de cada página suspeita é registrada na tabela suspect_pages .The page ID of every suspect page is recorded in the suspect_pages table. O Mecanismo de Banco de DadosDatabase Engine registra qualquer página suspeita encontrada durante o processamento regular, como o seguinte:The Mecanismo de Banco de DadosDatabase Engine records any suspect pages encountered during regular processing, such as the following:

  • Uma consulta precisa ler uma página.A query has to read a page.

  • Durante uma operação DBCC CHECKDB.During a DBCC CHECKDB operation.

  • Durante uma operação de backup.During a backup operation.

A tabela suspect_pages também é atualizada conforme necessário durante uma operação de restauração, uma operação de reparo DBCC ou uma operação de remoção de banco de dados.The suspect_pages table is also updated as necessary during a restore operation, a DBCC repair operation, or a drop database operation.

Neste tópicoIn This Topic

Antes de começarBefore You Begin

RecomendaçõesRecommendations

  • Erros registrados na tabela suspect_pagesErrors Recorded in suspect_pages Table

    A tabela suspect_pages contém uma linha por página que falhou com um erro 824 até o limite de 1.000 linhas.The suspect_pages table contains one row per page that failed with an 824 error, up to a limit of 1,000 rows. A tabela a seguir mostra erros registrados na coluna event_type da tabela suspect_pages .The following table shows errors logged in the event_type column of the suspect_pages table.

    Descrição do erroError description Valor event_typeevent_type value
    Erro 823 causado por um erro CRC de sistema operacional ou erro 824 diferente de uma soma de verificação inválida ou uma página danificada (por exemplo, uma ID de página inválida).823 error caused by an operating system CRC error or 824 error other than a bad checksum or a torn page (for example, a bad page ID) 11
    Soma de verificação inválidaBad checksum 22
    Página danificadaTorn page 33
    Restaurada (a página foi restaurada depois de marcada como inválida)Restored (The page was restored after it was marked bad) 44
    Reparada (o DBCC reparou a página)Repaired (DBCC repaired the page) 55
    Desalocada pelo DBCCDeallocated by DBCC 77

    A tabela suspect_pages também registra erros temporários.The suspect_pages table also records transient errors. Fontes de erros temporários incluem um erro de E/S (por exemplo, um cabo desconectado) ou uma página que temporariamente falha em um teste de soma de verificação repetido.Sources of transient errors include an I/O error (for example, a cable was disconnected) or a page that temporarily fails a repeated checksum test.

  • Como o Mecanismo de Banco de Dados atualiza a tabela suspect_pagesHow the Database Engine Updates the suspect_pages Table

    O Mecanismo de Banco de DadosDatabase Engine realiza as seguintes ações na tabela suspect_pages :The Mecanismo de Banco de DadosDatabase Engine takes the following actions on the suspect_pages table:

    • Se a tabela não estiver completa, a cada erro 824 ela será atualizada para indicar a ocorrência de um erro, e o contador de erros será incrementado.If the table is not full, it is updated for every 824 error, to indicate that an error has occurred, and the error counter is incremented. Se uma página tiver um erro consertado pela restauração, restaurado ou desalocado, sua contagem de number_of_errors será incrementada e sua coluna last_update será atualizadaIf a page has an error after it is fixed by being repaired, restored, or deallocated, its number_of_errors count is incremented and its last_update column is updated

    • Depois que uma página listada for corrigida por uma operação de restauração ou reparo, a operação atualizará a linha suspect_pages para indicar que a página foi reparada (event_type = 5) ou restaurada (event_type = 4).After a listed page is fixed by a restore or a repair operation, the operation updates the suspect_pages row to indicate that the page is repaired (event_type = 5) or restored (event_type = 4).

    • Se uma verificação DBCC for executada, a verificação marcará as páginas sem-erros como reparadas (event_type = 5) ou desalocadas (event_type = 7).If a DBCC check is run, the check marks any error-free pages as repaired (event_type = 5) or deallocated (event_type = 7).

  • Atualizações automáticas na tabela suspect_pagesAutomatic Updates to the suspect_pages Table

    Um parceiro de espelhamento de banco de dados ou uma réplica de disponibilidade AlwaysOn atualiza a tabela suspect_pages quando a tentativa de ler uma página de um arquivo de dados falha por uma das razões a seguir.A database mirroring partner or Always On availability replica updates the suspect_pages table after an attempt to read a page from a data file fails for one of the following reasons.

    • Um erro 823 causado por um erro CRC do sistema operacional.An 823 error that is caused by an operating system CRC error.

    • Um erro 824 (dano lógico como uma página corrompida).An 824 error (logical corruption such as a torn page).

    As ações a seguir também atualizam automaticamente as linhas na tabela suspect_pages .The following actions also automatically update rows in the suspect_pages table.

    • DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS atualiza a tabela suspect_pages para indicar cada página que deve ser desalocada ou reparada.DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS updates the suspect_pages table to indicate each page that it has deallocated or repaired.

    • Uma RESTORE completa, de página ou de arquivo marca as entradas de página como restauradas.A full, file, or page RESTORE marks the page entries as restored.

    As ações a seguir excluem automaticamente as linhas da tabela suspect_pages .The following actions automatically delete rows from the suspect_pages table.

    • ALTER DATABASE REMOVE FILEALTER DATABASE REMOVE FILE

    • DROP DATABASEDROP DATABASE

  • Função de manutenção do administrador de banco de dadosMaintenance Role of the Database Administrator

    Os administradores de banco de dados são responsáveis por gerenciar a tabela, principalmente excluindo linhas antigas.Database administrators are responsible for managing the table, primarily by deleting old rows. A tabela suspect_pages é limitada em tamanho e, quando está cheia, os erros novos não são registrados.The suspect_pages table is limited in size, and if it fills, new errors are not logged. Para impedir que a tabela fique cheia, o administrador do banco de dados ou do sistema deve limpar manualmente as entradas antigas dessa tabela excluindo as linhas.To prevent this table from filling up, the database administrator or system administrator must manually clear out old entries from this table by deleting rows. Portanto, recomendamos que você exclua periodicamente ou arquive linhas com event_type restaurado ou reparado ou linhas com valor de last_update antigo.Therefore, we recommend that you periodically delete or archive rows that have an event_type of restored or repaired, or rows that have an old last_update value.

    Para monitorar a atividade na tabela suspect_pages, é possível usar a Classe de evento Database Suspect Data Page.To monitor the activity on the suspect_pages table, you can use the Database Suspect Data Page Event Class. Às vezes, são adicionadas linhas à tabela suspect_pages devido a erros temporários.Rows are sometimes added to the suspect_pages table because of transient errors. Contudo, se muitas linhas estiverem sendo adicionadas à tabela, talvez haja um problema com o subsistema de E/S.If many rows are being added to the table, however, a problem probably exists with the I/O subsystem. Se você perceber um aumento repentino no número de linhas que estão sendo adicionadas à tabela, recomendamos que investigue os possíveis problemas em seu subsistema de E/S.If you notice a sudden increase in the number of rows being added to the table, we recommend that you investigate possible problems in your I/O subsystem.

    Um administrador de banco de dados pode também inserir ou atualizar registros.A database administrator can also insert or update records. Por exemplo, a atualização de uma linha pode ser útil quando o administrador do banco de dados sabe que uma determinada página suspeita está realmente intacta, mas quer preservar o registro por algum tempo.For example, updating a row might useful when the database administrator knows that a particular suspect page is actually intact, but wants to preserve the record for a while.

SegurançaSecurity

PermissõesPermissions

Qualquer pessoa com acesso ao msdb pode ler os dados na tabela suspect_pages .Anyone with access to msdb can read the data in the suspect_pages table. Qualquer um com permissão UPDATE na tabela suspect_pages pode atualizar seus registros.Anyone with UPDATE permission on the suspect_pages table can update its records. Os membros da função de banco de dados fixa db_owner no msdb ou da função de servidor fixa sysadmin podem inserir, atualizar e excluir registros.Members the db_owner fixed database role on msdb or the sysadmin fixed server role can insert, update, and delete records.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Para gerenciar a tabela suspect_pagesTo manage the suspect_pages table

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, expanda essa instância e expanda Bancos de Dados.In Object Explorer, connect to an instance of the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, expand that instance, and then expand Databases.

  2. Expanda Bancos de Dados do Sistema, expanda msdb, expanda Tabelas e então expanda Tabelas do Sistema.Expand System Databases, expand msdb, expand Tables, and then expand System Tables.

  3. Expanda dbo.suspect_pages e clique com o botão direito do mouse em Editar 200 Primeiras Linhas.Expand dbo.suspect_pages and right-click Edit Top 200 Rows.

  4. Na janela de consulta, edite, atualize ou exclua as linhas desejadas.In the query window, edit, update, or delete the rows that you want.

Usando o Transact-SQLUsing Transact-SQL

Para gerenciar a tabela suspect_pagesTo manage the suspect_pages table

  1. Conecte-se ao Mecanismo de Banco de DadosDatabase Engine.Connect to the Mecanismo de Banco de DadosDatabase Engine.

  2. Na barra Padrão, clique em Nova Consulta.From the Standard bar, click New Query.

  3. Copie e cole os exemplos a seguir na janela de consulta e clique em Executar.Copy and paste the following examples into the query window and click Execute. Este exemplo exclui algumas das linhas da tabela suspect_pages .This example deletes some of the rows from the suspect_pages table.

-- Delete restored, repaired, or deallocated pages.  
DELETE FROM msdb..suspect_pages  
   WHERE (event_type = 4 OR event_type = 5 OR event_type = 7);  
GO  
  

Este exemplo retorna as páginas incorretas na tabela suspect_pages .This example returns the bad pages in the suspect_pages table.

-- Select nonspecific 824, bad checksum, and torn page errors.  
SELECT * FROM msdb..suspect_pages  
   WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);  
GO  
  

Consulte TambémSee Also

DROP DATABASE (Transact-SQL) DROP DATABASE (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
DBCC (Transact-SQL) DBCC (Transact-SQL)
Restaurar páginas (SQL Server) Restore Pages (SQL Server)
suspect_pages (Transact-SQL)suspect_pages (Transact-SQL)