Verwalten der suspect_pages-Tabelle (SQL Server)
In diesem Thema wird beschrieben, wie Sie die suspect_pages Tabelle in SQL Server 2014 mithilfe von SQL Server Management Studio oder Transact-SQL verwalten. Die suspect_pages -Tabelle, die zum Verwalten von Informationen über fehlerverdächtige Seiten verwendet wird, ist hilfreich für die Entscheidung, ob eine Wiederherstellung erforderlich ist. Die suspect_pages -Tabelle befindet sich in der msdb-Datenbank.
Eine Seite wird als "fehlerverdächtig" betrachtet , wenn das SQL Server-Datenbank-Engine bei dem Versuch, eine Datenseite zu lesen, einen der folgenden Fehler findet:
Ein Fehler 823 , der durch eine vom Betriebssystem ausgegebene zyklische Redundanzprüfung (CRC) verursacht wurde, z. B. ein Datenträgerfehler (bestimmte Hardwarefehler)
Ein Fehler 824, z. B. eine abgerissene Seite (beliebiger logischer Fehler)
Die Seiten-ID jeder fehlerverdächtigen Seite wird in der suspect_pages -Tabelle aufgezeichnet. Das Datenbank-Engine zeichnet alle fehlerverdächtigen Seiten auf, die während der regulären Verarbeitung auftreten, z. B. bei folgenden Vorgängen:
Eine Abfrage muss eine Seite lesen.
Während eines DBCC CHECKDB-Vorgangs.
Während eines Sicherungsvorgangs.
Die suspect_pages -Tabelle wird ggf. auch während eines Wiederherstellungsvorgangs, eines DBCC-Reparaturvorgangs oder eines Datenbanklöschvorgangs aktualisiert.
In diesem Thema
Vorbereitungen:
So verwalten Sie die "suspect_pages"-Tabelle mit
Vorbereitungen
Empfehlungen
In der suspect_pages-Tabelle aufgezeichnete Fehler
Die suspect_pages -Tabelle enthält eine Zeile für jede Seite mit einem Fehler vom Typ 824 (maximal 1.000 Zeilen). Die folgenden Tabellen enthalten Fehler, die in der event_type -Spalte der suspect_pages -Tabelle protokolliert werden.
Fehlerbeschreibung event_type -Wert 823 Fehler, der durch einen CRC-Fehler des Betriebssystems oder 824-Fehler verursacht wird, der nicht eine fehlerhafte Prüfsumme oder eine abgerissene Seite (z. B. eine ungültige Seiten-ID) 1 Fehlerhafte Prüfsumme 2 Zerrissene Seite 3 Wiederhergestellt (die Seite wurde wiederhergestellt, nachdem sie als beschädigt markiert wurde) 4 Repariert (DBCC, AlwaysOn oder Datenbankspiegelung hat die Seite repariert) 5 Zuordnung durch DBCC aufgehoben 7 In der suspect_pages -Tabelle werden auch vorübergehende Fehler aufgezeichnet. Ursachen für vorübergehende Fehler sind beispielsweise E/A-Fehler (z. B. eine fehlende Kabelverbindung) oder eine Seite, die einen wiederholten Prüfsummentest vorübergehend nicht besteht.
Vorgehensweise der Datenbank-Engine beim Aktualisieren der "suspect_pages"-Tabelle
Datenbank-Engine führt folgende Aktionen in der suspect_pages -Tabelle aus:
Wenn die Tabelle nicht voll ist, wird sie für jeden Fehler vom Typ 824 aktualisiert, um anzuzeigen, dass ein Fehler aufgetreten ist, und die Fehleranzahl wird erhöht. Wenn eine Seite einen Fehler aufweist, nachdem sie durch eine Reparatur, eine Wiederherstellung oder das Aufheben einer Zuordnung repariert wurde, wird die zugehörige number_of_errors -Fehleranzahl erhöht, und die zugehörige last_update -Spalte wird aktualisiert.
Nachdem eine aufgelistete Seite durch einen Wiederherstellungs- oder Reparaturvorgang repariert wurde, aktualisiert der Vorgang die suspect_pages -Zeile, um anzuzeigen, dass die Seite repariert (event_type = 5) oder wiederhergestellt (event_type = 4) wurde.
Wenn eine DBCC-Überprüfung ausgeführt wird, markiert die Überprüfung alle fehlerfreien Seiten als repariert (event_type = 5) oder als Seiten, deren Zuordnung aufgehoben wurde (event_type = 7).
Automatische Updates der "suspect_pages"-Tabelle
Die suspect_pages -Tabelle wird von einem Datenbank-Spiegelungspartner oder AlwaysOn-Verfügbarkeitsreplikat aktualisiert, nachdem bei einem Versuch, eine Seite aus einer Datendatei zu lesen, aus einem der folgenden Gründe ein Fehler aufgetreten ist:
Fehler vom Typ 823, der von einem durch das Betriebssystem ausgegebenen CRC-Fehler verursacht wird.
Fehler vom Typ 824 (logische Beschädigung, z. B. eine zerrissene Seite).
Die folgenden Aktionen aktualisieren auch automatisch Zeilen in der suspect_pages -Tabelle.
DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS aktualisiert die suspect_pages -Tabelle, um jede Seite anzugeben, deren Zuordnung aufgehoben wurde oder die repariert wurde.
Eine vollständige, Datei- oder Seitenwiederherstellung markiert die Seiteneinträge als wiederhergestellt.
Die folgenden Aktionen löschen automatisch Zeilen aus der suspect_pages -Tabelle.
ALTER DATABASE REMOVE FILE
DROP DATABASE
Verwaltungsrolle des Datenbankadministrators
Datenbankadministratoren sind zuständig für das Verwalten der Tabelle, insbesondere indem sie alte Zeilen löschen. Die Größe der suspect_pages -Tabelle ist beschränkt, und wenn sie voll ist, werden keine neuen Fehler mehr protokolliert. Um zu verhindern, dass sich diese Tabelle füllt, muss der Datenbankadministrator oder Systemadministrator durch das Löschen von Zeilen die alten Einträge manuell aus der Tabelle löschen. Aus diesem Grund wird empfohlen, Zeilen mit einem wiederhergestellten oder reparierten event_type -Objekt oder Zeilen mit einem alten last_update -Wert regelmäßig zu löschen bzw. zu archivieren.
Sie können die Database Suspect Data Page-Ereignsklasseverwenden, um die Aktivität in der suspect_pages-Tabelle zu überwachen. Der suspect_pages -Tabelle werden aufgrund vorübergehender Fehler manchmal Zeilen hinzugefügt. Wenn der Tabelle viele Zeilen hinzugefügt werden, liegt möglicherweise bereits ein Fehler in Bezug auf das E/A-Subsystem vor. Wenn Sie feststellen, dass die Anzahl der Tabelle hinzugefügter Zeilen plötzlich ansteigt, sollten Sie die möglichen Ursachen hierfür in Ihrem E/A-Subsystem untersuchen.
Ein Datenbankadministrator kann auch Datensätze einfügen oder aktualisieren. Das Aktualisieren einer Zeile ist z. B. sinnvoll, wenn der Datenbankadministrator weiß, dass eine bestimmte fehlerverdächtige Seite tatsächlich intakt ist, den Datensatz jedoch für eine Weile erhalten möchte.
Sicherheit
Berechtigungen
Jeder mit Zugriff auf msdb kann die Daten in der Tabelle suspect_pages lesen. Jeder mit UPDATE-Berechtigung für die suspect_pages-Tabelle kann ihre Datensätze aktualisieren. Mitglieder der festen Datenbankrolle db_owner auf msdb oder der festen Serverrolle sysadmin können Datensätze einfügen, aktualisieren und löschen.
Verwendung von SQL Server Management Studio
So verwalten Sie die "suspect_pages"-Tabelle
Stellen Sie im Objekt-Explorereine Verbindung mit einer Instanz von SQL Server-Datenbank-Engineher, erweitern Sie diese Instanz und dann Datenbanken.
Erweitern Sie Systemdatenbanken, msdb, Tabellenund anschließend Systemtabellen.
Erweitern Sie dbo.suspect_pages , und klicken Sie mit der rechten Maustaste auf Die ersten 200 Zeilen bearbeiten.
Bearbeiten, aktualisieren oder löschen Sie im Abfragefenster die gewünschten Zeilen.
Verwenden von Transact-SQL
So verwalten Sie die "suspect_pages"-Tabelle
Stellen Sie eine Verbindung mit dem Datenbank-Engineher.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie die folgenden Beispiele, fügen Sie sie in das Abfragefenster ein, und klicken Sie auf Ausführen. Im folgenden Beispiel werden einige Zeilen aus der
suspect_pages
-Tabelle gelöscht.
-- Delete restored, repaired, or deallocated pages.
DELETE FROM msdb..suspect_pages
WHERE (event_type = 4 OR event_type = 5 OR event_type = 7);
GO
In diesem Beispiel werden die ungültigen Seiten in der Tabelle suspect_pages
zurückgegeben.
-- 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
Weitere Informationen
DROP DATABASE (Transact-SQL)
RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
DBCC (Transact-SQL)
Wiederherstellung von Seiten (SQL Server)
suspect_pages (Transact-SQL)
MSSQLSERVER_823
MSSQLSERVER_824