web-dev-qa-db-fra.com

Page de corruption de la page PFS et question

Nous avons récemment rencontré la corruption de la page PFS dans notre DB de production. Nous sommes en train de vérifier les vieilles sauvegardes pour trouver lesquelles sont propres, mais je me demandais si un processus différent fonctionnerait pour raccourcir le temps nécessaire pour résoudre ce problème. Jusqu'à présent, nous n'avons rencontré aucun problème de client, et la DB reste utilisable, mais il est évident nécessaire de résoudre le problème. Je sais que nous ne pouvons pas réparer les pages PFS individuelles, mais le travail ci-dessous?

Msg 8948, Sev 16, State 6, Line 1 : Database error: Page (8:15390050) is marked with the wrong type in PFS page (8:15383376). PFS status 0x40 expected 0x60. [SQLSTATE 42000]
Msg 8948, Sev 16, State 1, Line 1 : Database error: Page (8:15390051) is marked with the wrong type in PFS page (8:15383376). PFS status 0x40 expected 0x60. [SQLSTATE 42000]
Msg 8948, Sev 16, State 1, Line 1 : Database error: Page (8:15390052) is marked with the wrong type in PFS page (8:15383376). PFS status 0x40 expected 0x60. [SQLSTATE 42000]
Msg 8948, Sev 16, State 1, Line 1 : Database error: Page (8:15390053) is marked with the wrong type in PFS page (8:15383376). PFS status 0x40 expected 0x60. [SQLSTATE 42000]
Msg 8948, Sev 16, State 1, Line 1 : Database error: Page (8:15390054) is marked with the wrong type in PFS page (8:15383376). PFS status 0x40 expected 0x60. [SQLSTATE 42000]
Msg 8948, Sev 16, State 1, Line 1 : Database error: Page (8:15390055) is marked with the wrong type in PFS page (8:15383376). PFS status 0x40 expected 0x60. [SQLSTATE 42000]

J'ai utilisé la page DBCC et découvert et toutes les 6 pages appartiennent à 1 table, alors j'espère que cela fonctionnera, nous n'avons pas besoin de restaurer de vieilles sauvegardes, mais tout ce que j'ai lu dit sa restauration à partir de la sauvegarde ou de la réparation perte de données. En outre, quel est le statut 0x60? L'utilisation de la page DBCC affiche l'état 0x40 est attribué, donc je suis curieux de savoir quel est le statut de 0x60. Que pensent les gens de ce processus? Cela fonctionnerait-il pour effacer la corruption?

  1. Copier toutes les données à une table de sauvegarde - Les nouvelles pages de données doivent être attribuées, ce qui signifie que les entrées de la page PFS pour ces pages doivent être propres.
  2. Supprimer la table source - Je suppose que cela supprime les entrées de la page Bad PFS puisque la table n'est plus là ... mais SQL Server supprimer les erreurs du tout si les pages PFS sont corrompues ou resteraient-elles même après avoir supprimé la table?
  3. Renommez la table Retour à la table source - Espérons que cela résoudra le problème depuis les nouvelles pages de données et les nouvelles entrées de la page PFS ont été créées à l'étape 2.

Quelqu'un a-t-il tenté cela ou entendu parler de façons de faire face à la corruption de la page PFS sans retourner dans une vieille sauvegarde?

enter image description hereenter image description here

4
DBA Greg14

Vous avez des dommages à quelques pages PFS. Ce type de corruption est irréparable.

Prenez une sauvegarde queue-journal (si vous le pouvez), puis restaurez votre sauvegarde complète, toutes les sauvegardes de journal suivies de la sauvegarde de la queue de journal que vous avez prise. Vous devriez être capable de restaurer sans perte de données puisque vous avez un bon ensemble de sauvegardes.

Vous devez faire une analyse de la cause de la racine. Regardez dans le journal des événements Windows, SAN, journaux RAID, etc. Il s'agit généralement d'un problème IO, vous devez identifier le cause ou cela peut arriver à nouveau.

0