SQL 2005 SP2, Integritätsprüfung Fehler

12/04/2010 - 11:48 von Matthias Sortz | Report spam
Hallo,

ich habe ein Problem mit einem SQL Server 2005 SP2 und dem Backup einer
Datenbank, die von einem SQL Server 2000 in den SQL Server 2005 migriert
wurde.
Mein Problem ist die Datenbankintegritàts-Prüfung als Wartungstask. Ich
erstelle einen neuen Wartungsplan mit dem Assistent und wàhle als
Wartungstask "Datenbankintegritàt überprüfen" und "Datenbank sichern
(vollstàndig)" aus. D.h. zuerst soll die Integritàt überprüft werden und dann
das Backup erfolgen. Führe ich den Task nun aus, erhalte ich bei der
Integritàtsprüfung im LOG den Fehler: (-1073548784) Fehler beim Ausführen der
Abfrage 'DBCC CHECKDB WITH NO_INFOMSGS ...
Als Lösung steht im LOG, dass ich den Befehl "DBCC UPDATEUSAGE" ausführen
soll.
Wie verlàsslich ist es, was im MS SQL Log steht?
Was macht dieser Befehl?
Kann ich diesen Befehl im laufenden Betrieb ausführen oder muss man vorher
(vielleicht auch nachher) etwas beachten?
Wie führe ich den Befehl unter SQL 2005 aus?

Vielen Dank schon mal im voraus.

Matthias Sortz
 

Lesen sie die antworten

#1 Christoph Muthmann
12/04/2010 - 14:10 | Warnen spam
Matthias Sortz wrote:
Hallo,

ich habe ein Problem mit einem SQL Server 2005 SP2 und dem Backup
einer Datenbank, die von einem SQL Server 2000 in den SQL Server 2005
migriert wurde.
Mein Problem ist die Datenbankintegritàts-Prüfung als Wartungstask.
Ich erstelle einen neuen Wartungsplan mit dem Assistent und wàhle als
Wartungstask "Datenbankintegritàt überprüfen" und "Datenbank sichern
(vollstàndig)" aus. D.h. zuerst soll die Integritàt überprüft werden
und dann das Backup erfolgen. Führe ich den Task nun aus, erhalte ich
bei der Integritàtsprüfung im LOG den Fehler: (-1073548784) Fehler
beim Ausführen der Abfrage 'DBCC CHECKDB WITH NO_INFOMSGS ...
Als Lösung steht im LOG, dass ich den Befehl "DBCC UPDATEUSAGE"
ausführen soll.
Wie verlàsslich ist es, was im MS SQL Log steht?
Was macht dieser Befehl?
Kann ich diesen Befehl im laufenden Betrieb ausführen oder muss man
vorher (vielleicht auch nachher) etwas beachten?
Wie führe ich den Befehl unter SQL 2005 aus?

Vielen Dank schon mal im voraus.



Hallo Matthias,
die Meldungen vom DBCC sind schon sehr verlàsslich und andere hast Du ja
auch nicht. Unter SQL Server 2000 galten noch nicht ganz so strenge Regeln
für das dbcc und auch die Statistik-Informationen waren nicht immer ganz
korrekt.

Verwende das Management Studio zum Ausführen der Befehle. Warum migrierst Du
auf 2005 und nicht auf 2008?

Führe also ein DBCC UPDATEUSAGE auf die Datenbank aus und danach ein DBCC
CHECKDB. Beide sind recht ressourcenhungrig und also nicht unbedingt wàhrend
des Betriebs zu empfehlen.

Nach der Migration von einer 2000er Datenbank mache ich immer folgendes:
- exec sp_dbcmptlevel dbname, 90; -- 100 für SQL Server 2008
- ALTER DATABASE [dbname] SET PAGE_VERIFY CHECKSUM WITH NO_WAIT;
- exec sp_updatestats;
- dbcc updateusage ('dbname');



Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen