Validiert die Indizes und Schlüssel in einigen oder allen Tabellen bzw. materialisierten Ansichten in einer Datenbank.
dbvalid [ options ] [ object-name, ... ]
Option | Beschreibung | ||
---|---|---|---|
@data |
Liest Optionen aus der angegebenen Umgebungsvariablen oder Konfigurationsdatei ein. Siehe Konfigurationsdateien. Wenn Sie Kennwörter oder andere Informationen in einer Konfigurationsdatei schützen möchten, können Sie das Dienstprogramm zum Verschleiern von Dateien (dbfhide) verwenden. Siehe Dienstprogramm zum Verschleiern von Dateien (dbfhide). |
||
-c "keyword=value; ..." |
Gibt Datenbank-Verbindungsparameter an. Hinweise zu den Verbindungsparametern finden Sie unter Verbindungsparameter. Der Benutzer muss DBA-Berechtigung oder VALIDATE-Berechtigung haben. Der folgende Befehl validiert die Datenbank einschließlich aller Tabellen und materialisierten Ansichten für c:\salesdata.db, wobei sich ein Benutzer namens DBA mit dem Kennwort sql verbindet:
|
||
-d |
Prüft, ob alle Seiten in der Datenbank dem richtigen Objekt gehören, und führt eine Prüfsummenvalidierung durch. Die Option -d validiert die Korrektheit von Indizes. Die Option -d kann nicht mit den Optionen -i, -s oder -t verwendet werden. Siehe VALIDATE-Anweisung. |
||
-fx | Deaktiviert die referenzielle Integritätsprüfung von Primärschlüssel-/Fremdschlüssel. | ||
-i | Definiert object-name als Liste von Indizes. | ||
-o filename | Schreibt Meldungen in die angegebene Datei. | ||
-q | Ausgabemeldungen werden beim Client nicht angezeigt. Sie können jedoch die Meldungen weiterhin in einer Datei protokollieren, indem Sie die Option -o verwenden. | ||
-s | Validiert die Datenbank mithilfe von Prüfsummen. Mit Prüfsummen kann festgestellt werden, ob eine Datenbankseite auf der Festplatte geändert wurde. Bei der Prüfsummenvalidierung wird jede einzelne Seite aus der Datenbank von der Festplatte gelesen und ihre Prüfsumme berechnet, falls die Seite über eine Prüfsumme verfügt. Wenn die berechnete Prüfsumme nicht gleich der für die Seite gespeicherten Prüfsumme ist, wurde die Seite auf der Festplatte geändert und es wird eine Fehlermeldung zurückgegeben. Die Seitennummern ungültiger Seiten erscheinen im Meldungsfenster des Datenbankservers. Die Option -s darf nicht zusammen mit den Optionen -d, -i, -t bzw. einer der -fx-Optionen verwendet werden. | ||
-t |
Definiert object-name als Liste von Tabellen oder materialisierten Ansichten. |
||
object-name |
Gibt den Namen der Tabelle oder der materialisierten Ansicht an, die zu validieren ist. Wenn die Option -i verwendet wird, bezieht sich object-name stattdessen auf einen zu validierenden Index. |
Mit dem Validierungs-Dienstprogramm können Sie die Indizes und Schlüssel in einigen oder allen Tabellen bzw. materialisierten Ansichten in einer Datenbank validieren. Sie können das Validierungs-Dienstprogramm auch zur Prüfung der Datenbankdateistruktur verwenden, um zu überprüfen, dass alle Seiten in der Datenbank dem korrekten Objekt gehören und die Seitenprüfsummen korrekt sind. Standardmäßig validiert dbvalid alle Tabellen, materialisierten Ansichten und Indizes in der Datenbank sowie die Datenbankdateistruktur selbst.
Bei der Validierung einer Tabelle validiert dbvalid auch alle Tabellenindizes, um zu überprüfen, ob die Menge der Zeilen und Werte in der Tabelle mit der Menge der Zeilen und Werte in jedem Index übereinstimmt. Alle BLOBs in der Tabelle werden auch durchsucht, BLOB-Zuordnungstabellen werden überprüft und verwaiste BLOBs werden erkannt. Das Validierungs-Dienstprogramm prüft auch die physische Struktur aller Indexseiten, die Reihenfolge der Index-Hash-Werte und die Eindeutigkeit des Indexes (falls diese Anforderungen vorgegeben wurden). Wenn die Option -fx nicht angegeben ist, wird der Wert der einzelnen Fremdschlüssel in der entsprechenden Primärschlüsseltabelle gesucht, um zu überprüfen, ob Integritätsregeln zur Erhaltung der referenziellen Integrität eingehalten wurden.
Wenn die Option -i angegeben wird, validiert dbvalid jeden Index in der Objektliste. Das Validieren eines Indexes funktioniert genauso wie das Validieren einer Tabelle, außer dass nur der festgelegte Index und die zugrunde liegende Tabelle validiert werden. Wenn der Index ein Fremdschlüssel ist, wird jeder Wert in der Primärschlüsseltabelle gesucht, außer wenn die Option -fx angegeben ist.
Wenn Sie die Datenbankvalidierung starten, während der Datenbankaufräumvorgang ausgeführt wird, kann die Validierung erst ausgeführt werden, wenn der Aufräumvorgang abgeschlossen ist. Siehe sa_clean_database-Systemprozedur.
Um das Validierungs-Dienstprogramm auszuführen, müssen Sie DBA- oder VALIDATE-Berechtigung haben.
Sie können das Validierungs-Dienstprogramm auch folgendermaßen starten:
In Sybase Central verwenden Sie den Assistenten zum Validieren einer Datenbank. Siehe Datenbank validieren.
Von Interactive SQL aus verwenden Sie die VALIDATE-Anweisung. Siehe VALIDATE-Anweisung.
Das Validierungs-Dienstprogramm kann in Verbindung mit regulären Sicherungen verwendet werden, um Ihnen Vertrauen in die Integrität der Daten in Ihrer Datenbank zu geben. Wenn Sie eine Sicherungskopie Ihrer Datenbank validieren möchten, wird empfohlen, eine Kopie der Sicherung zu erstellen und die Kopie zu validieren. Damit stellen Sie sicher, dass Sie keine Änderungen an der Datei vornehmen, die zur Wiederherstellung verwendet wird. Siehe Sicherung und Datenwiederherstellung.
Sicherungskopien der Datenbank und des Transaktionslogs dürfen auf keinen Fall geändert werden. Wenn während der Sicherung keine Transaktionen aktiv waren oder Sie BACKUP DATABASE WITH CHECKPOINT LOG RECOVER oder WITH CHECKPOINT LOG NO COPY angegeben haben, können Sie die Validität der Sicherungsdatenbank im Schreibschutzmodus prüfen, oder indem Sie eine Kopie der Sicherungsdatenbank validieren.
Wenn jedoch Transaktionen aktiv waren oder Sie BACKUP DATABASE WITH CHECKPOINT LOG COPY angegeben haben, muss der Datenbankserver eine Wiederherstellung der Datenbank bei ihrem Start durchführen. Die Wiederherstellung verändert die Sicherungskopie, womit verhindert wird, dass nachfolgende Transaktionslogdateien aus der Originaldatenbank angewendet werden.
Wenn durch das Validierungs-Dienstprogramm eine Datenbank automatisch gestartet wird, läuft sie im schreibgeschützten Modus. Damit wird verhindert, dass Änderungen an der Datenbank vorgenommen werden, falls die Validierung Teil eines Sicherungs- oder Wiederherstellungsplans ist.
Wenn sich das Validierungs-Dienstprogramm mit einer laufenden Datenbank verbindet, die nicht im schreibgeschützten Modus gestartet wurde, gibt das Dienstprogramm eine Warnmeldung aus. Diese Warnung erinnert daran, dass die validierte Datenbank nicht in einem Wiederherstellungsplan verwendet werden kann. Aufgrund der Methode, nach der Sicherungen erstellt werden, werden die meisten, von dbbackup erstellten Datenbanken als "Wiederherstellung erforderlich" markiert. Wenn die von Ihnen zu validierende Datenbank Wiederherstellung erfordert und Sie erzwingen wollen, dass sie im schreibgeschützten Modus startet, können Sie entweder die Datenbank starten, bevor Sie dbvalid ausführen, oder einen gültigen Wert für den DBS-Verbindungsparameter angeben. Siehe Verbindungsparameter DatabaseSwitches (DBS).
Mit den beiden nachfolgenden Befehlen kann dbvalid ausgeführt werden, wenn die mycopy.db-Datenbank wiederhergestellt werden muss:
dbvalid -c "UID=DBA;PWD=sql;DBF=mycopy.db;DBS=-n mycopy" |
dbvalid -c "UID=DBA;PWD=sql;DBF=mycopy.db;DBS=-dh" |
Die Validierung einer Tabelle oder einer ganzen Datenbank darf nur durchgeführt werden, wenn keine Verbindungen Änderungen in der Datenbank durchführen, weil sonst möglicherweise Fehler über eine Datenbankbeschädigung gemeldet werden, obwohl eine solche nicht vorliegt.
Das Validierungs-Dienstprogramm kann Warnungen über Prüfsummenverletzungen für Datenbanken ausgeben, bei denen keine globalen Prüfsummen aktiviert sind. Dies liegt daran, dass der Datenbankserver trotzdem automatisch Prüfsummen für kritische Datenbankseiten berechnet, gleichgültig ob Prüfsummen aktiviert sind oder nicht. Eine Datenbank kann auch Prüfsummen für einige Seiten haben, weil sie mit Schreib-Prüfsummen gestartet wurde.
Der Datenbankserver erstellt Prüfsummen auch automatisch für Datenbanken, die auf Windows Mobile und auf Speichermedien laufen, die nicht so zuverlässig sind, z.B. auf Wechseldatenträgern. Siehe Erkennung von Beschädigungen mithilfe von Prüfsummen.
Bei der Validierung wird kein exklusiver Zugriff auf die zu validierende Tabelle angefordert und es können Fehler gemeldet werden, wenn die Datenbank während der Validierung geändert wird. Aus diesem Grund wird die Validierung sinnvollerweise dann durchgeführt, wenn keine anderen Aktivitäten in der Datenbank laufen.
Beendigungscodes sind 0 (Erfolg) oder eine von 0 verschiedene Zahl (Fehlschlag).
Weitere Hinweise über die einzelnen während einer Validierung durchgeführten Prüfungen finden Sie unter VALIDATE-Anweisung.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |