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 Umgebungsvariable oder Konfigurationsdatei ein. Wenn Sie Kennwörter oder andere Informationen in der Konfigurationsdatei schützen möchten, können Sie das Dienstprogramm zum Verschleiern von Dateien auf die Konfigurationsdatei anwenden. |
||
-c "keyword=value; ..." |
Gibt Datenbank-Verbindungsparameter an. 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. |
||
-fx | Deaktiviert die referenzielle Integritätsprüfung von Primärschlüssel/Fremdschlüssel. Die Option -fx kann nicht mit der Option -i verwendet werden. | ||
-i | Definiert object-name als Liste von Indizes. | ||
-o filename | Schreibt Ausgabemeldungen in die benannte 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 der Option -d, -i, -t bzw. -fx 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. |
Sie müssen das VALIDATE ANY OBJECT-Systemprivileg haben. Wenn ein bestimmter Index angegeben wird, müssen Sie der Eigentümer der Tabelle sein, für die der Index erstellt wird, oder das VALIDATE ANY OBJECT-Systemprivileg haben.
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 Basistabelle 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.
Sie können das Validierungs-Dienstprogramm auch folgendermaßen starten:
In Sybase Central verwenden Sie den Assistenten zum Validieren einer Datenbank.
Von Interactive SQL aus verwenden Sie die VALIDATE-Anweisung.
Das Validierungsdienstprogramm kann in Verbindung mit regelmäßigen 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.
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.
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.
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).
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |