Übersetzt ein Transaktionslog in eine SQL-Befehlsdatei
Mit einem Datenbankserver ausführen:
dbtran [ Optionen ] -c { Verbindungszeichenfolge } -n SQL-Datei
Mit einem Transaktionslog ausführen:
dbtran [ Optionen ] [Transaktionslog ] [ SQL-Datei ]
Option | Beschreibung | ||
---|---|---|---|
@data |
Liest Optionen aus der angegebenen Umgebungsvariablen oder Konfigurationsdatei ein. Siehe Konfigurationsdateien verwenden. 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). |
||
-a |
Steuert, ob nicht festgeschriebene Transaktionen im Transaktionslog erscheinen. Das Transaktionslog enthält Änderungen, die vor dem letzten COMMIT von allen Transaktionen durchgeführt wurden. Änderungen, die nach dem letzten COMMIT durchgeführt wurden, sind nicht im Transaktionslog enthalten. Wenn die Option -a nicht angegeben ist, werden in der Ausgabedatei nur festgeschriebene Transaktionen angezeigt. Wenn die Option -a angegeben ist, werden alle im Transaktionslog gefundenen, nicht festgeschriebenen Transaktionen ausgegeben, gefolgt von einer ROLLBACK-Anweisung. |
||
-c "Schlüsselwort=Wert; ..." | Gibt die Verbindungszeichenfolge an, wenn das Dienstprogramm in einem Datenbankserver läuft. Siehe Verbindungsparameter. | ||
-d | Gibt an, dass die Transaktionen in der Reihenfolge von frühester bis letzter Transaktion geschrieben werden. Diese Funktion wird hauptsächlich dann verwendet, wenn ein Auditing der Datenbankaktivität durchgeführt wird. Die Ausgabe von dbtran darf nicht in einer Datenbank angewendet werden. | ||
-ek Schlüssel |
Gibt den Chiffrierschlüssel für stark verschlüsselte Datenbanken an. Wenn Sie mit einer stark verschlüsselten Datenbank arbeiten, müssen Sie den Chiffrierschlüssel angeben, bevor Sie die Datenbank oder das Transaktionslog verwenden können. Bei stark verschlüsselten Datenbanken müssen Sie entweder -ek oder -ep, dürfen aber nicht beide angeben. Der Befehl schlägt fehlt, wenn Sie nicht den richtigen Chiffrierschlüssel angeben. Wenn Sie dbtran auf einem Datenbankserver unter Verwendung der Option -c ausführen, achten Sie darauf, dass Sie den Schlüssel mit einem Verbindungsparameter und nicht mit der Option -ek festlegen. Beispiel: Der folgende Befehl holt Transaktionslogdaten über die Datenbank myenc.db vom Server sample und speichert seine Ausgabe in log.sql.
|
||
-ep |
Fordert zur Eingabe des Chiffrierschlüssels auf. Diese Option öffnet ein Fenster, in das Sie den Chiffrierschlüssel eingeben. Diese zusätzliche Sicherheitsmaßnahme verhindert, dass der Chiffrierschlüssel in lesbarer Form angezeigt wird. Bei stark verschlüsselten Datenbanken müssen Sie entweder -ek oder -ep, dürfen aber nicht beide angeben. Der Befehl schlägt fehlt, wenn Sie nicht den richtigen Chiffrierschlüssel angeben. Wenn Sie dbtran auf einem Datenbankserver unter Verwendung der Option -c ausführen, achten Sie darauf, dass Sie den Schlüssel mit einem Verbindungsparameter und nicht mit der Option -ep festlegen. Beispiel: Der folgende Befehl holt Transaktionslogdaten über die Datenbank myenc.db vom Server sample und speichert seine Ausgabe in log.sql.
|
||
-f | Gibt nur Transaktionen aus, die seit dem letzten Checkpoint abgeschlossen wurden. | ||
-g |
Fügt Auditinginformationen dem Transaktionslog hinzu, wenn die Auditing-Datenbankoption aktiviert ist. Sie können diese Informationen mit dieser Option in die Ausgabedatei als Kommentare eintragen. Siehe auditing-Option. Die Option -g impliziert die Optionen -a, -d und -t. |
||
-ir Offset1,Offset2 | Gibt einen Teil des Transaktionslogs zwischen zwei angegebenen Offsets aus. | ||
-is Quelle,... |
Gibt Vorgänge in Zeilen aus, die durch Vorgänge von einer oder mehreren der folgenden Quellen geändert wurden. Angabe in einer durch Kommas unterteilten Liste:
|
||
-it Eigentümer.Tabelle,... | Gibt die Vorgänge in der angegebenen, durch Kommas getrennten Liste von Tabellen aus. Jede Tabelle muss in der Form Eigentümer.Tabelle angegeben werden. | ||
-j Datum/Zeit | Konvertiert nur Transaktionen vom letzten Checkpoint vor einem angegebenen Datum und/oder einer angegebenen Uhrzeit. Das vom Benutzer angegebene Argument kann ein Datum, eine Zeit oder eine in Anführungszeichen eingeschlossene Angabe von Datum und Zeit sein. Wenn die Zeit nicht angegeben ist, wird die Zeit zu Beginn des Tages angenommen. Wenn das Datum nicht angegeben ist, wird der aktuelle Tag angenommen. Dies ist ein für Datum und Zeit akzeptables Format: "JJJJ/MMM/TT HH:NN". | ||
-k | Verhindert, dass .sql-Teildateien gelöscht werden, wenn ein Fehler erkannt wird. Wenn während der Ausführung von dbtran ein Fehler erkannt wird, wird die bis dahin erstellte .sql-Teildatei normalerweise gelöscht, um sicherzugehen, dass nicht irrtümlich eine Teildatei verwendet wird. Diese Option kann nützlich sein, wenn Sie versuchen, Transaktionen aus einem beschädigten Transaktionslog zu retten. | ||
-m | Gibt ein Verzeichnis an, das Transaktionlogs enthält. Diese Option muss zusammen mit der Option -n verwendet werden. | ||
-nDateiname | Gibt die Ausgabedatei an, die die SQL-Anweisungen enthält, wenn Sie das Dienstprogramm dbtran auf einem Datenbankserver ausführen. | ||
-o Dateiname | Schreibt Meldungen in die angegebene Datei aus. | ||
-q | Läuft im stillen Modus - Meldungen werden nicht angezeigt. | ||
-r | Entfernt alle Transaktionen, die nicht festgeschrieben sind. Dies ist die Standardeinstellung. | ||
-s | Steuert, wie UPDATE-Anweisungen generiert werden. Wenn die Option nicht verwendet wird und weder ein Primärschlüssel noch ein eindeutiger Index für die Tabelle vorhanden ist, generiert das Logkonvertierungsprogramm im Fall von Duplikatzeilen UPDATE-Anweisungen mit einem nicht standardmäßigen FIRST-Schlüsselwort. Wird die Option angegeben, dann wird das FIRST-Schlüsselwort für die Kompatibilität mit dem SQL-Standard weggelassen. | ||
-sr | Schreibt generierte Kommentare, die beschreiben, wie SQL Remote Vorgänge an entfernte Standorte verteilt, in die Ausgabedatei. | ||
-t | Steuert, ob Trigger in einer Befehlsdatei enthalten sind. Standardmäßig werden Aktionen, die von Triggern ausgeführt werden, nicht in die Befehlsdatei aufgenommen. Wenn die Befehlsdatei in einer Datenbank ausgeführt wird und der entsprechende Trigger in der Datenbank vorkommt, führt der Trigger die Aktionen automatisch aus. Trigger-Aktionen müssen einbezogen werden, wenn der entsprechende Trigger nicht in der Datenbank vorhanden ist, in der die Befehlsdatei ausgeführt werden soll. | ||
-u Benutzer-ID,... | Begrenzt die Ausgabe aus dem Transaktionslog auf die angegebenen Benutzer. | ||
-x Benutzer-ID,... | Begrenzt die Ausgabe aus dem Transaktionslog, indem die angegebenen Benutzer ausgeschlossen werden. | ||
-y | Ersetzt bestehende Befehlsdateien, ohne Sie zur Bestätigung aufzufordern. Wenn Sie -q angeben, müssen Sie auch die Option -y angeben, sonst schlägt der Vorgang fehl. | ||
-z | Bezieht Transaktionen, die von Triggern generiert wurden, nur als Kommentare in die Ausgabedatei ein. | ||
Transaktionslog | Gibt die zu konvertierende Logdatei an. Kann nicht zusammen mit den Optionen -c oder -m verwendet werden. | ||
SQL-Datei | Benennt die Ausgabedatei, die die konvertierten Informationen enthält. Nur für die Verwendung mit Transaktionslog. |
Das Dienstprogramm dbtran übernimmt die Daten aus einem Transaktionslog und setzt sie als SQL-Anweisungen und Kommentare in eine Ausgabedatei. Das Dienstprogramm kann auf folgende Arten ausgeführt werden:
Mit einem Datenbankserver Wenn dbtran auf einem Datenbankserver ausgeführt wird, ist das Dienstprogramm eine Standard-Clientanwendung. Es stellt über eine Verbindungszeichenfolge eine Verbindung mit dem Datenbankserver her, die nach der Option -c angegeben wird, und schreibt die Ausgabe in eine Datei, die mit der Option -n festgelegt wird. Die DBA-Datenbankberechtigung ist erforderlich, um das Programm auf diese Weise auszuführen.
Der folgende Befehl übersetzt die Transaktionslogdaten des Servers demo12 und setzt die Ausgabe in eine Datei namens demo.sql.
dbtran -c "Server=demo12;DBN=demo;UID=DBA;PWD=sql" -n demo.sql |
Mit einer Transaktionslogdatei Wenn dbtran mit einem Transaktionslog ausgeführt wird, agiert das Dienstprogramm direkt mit der Transaktionslogdatei. Sie müssen die Transaktionslogdatei gegen allgemeinen Zugriff schützen, damit Benutzer nicht die Möglichkeit haben, diese Anwendung auszuführen.
dbtran demo.log demo.sql |
Wenn das Dienstprogramm dbtran läuft, zeigt es das früheste Log-Offset im Transaktionslog an. Mit dieser Methode kann die Reihenfolge, in der mehrere Logs erstellt wurden, wirksam ermittelt werden.
Wenn die Option -c verwendet wird, versucht dbtran, die Online-Transaktionslogdatei und alle Offline-Transaktionslogdateien in demselben Verzeichnis wie die Online-Transaktionslogdatei zu konvertieren. Wenn das Verzeichnis Transaktionslogdateien für mehr als eine Datenbank enthält, gibt dbtran eventuell eine Fehlermeldung aus. Dieses Problem lässt sich vermeiden, indem darauf geachtet wird, dass jedes dieser Verzeichnisse jeweils nur Transaktionslogdateien einer Datenbank enthält.
Eine Transaktion kann mehrere Transaktionslogs umfassen. Wenn Transaktionslogdateien Transaktionen enthalten, die sich über
mehrere Logdateien erstrecken, können diese aufgeteilten Transaktionen verloren gehen, wenn nur eine Transaktionslogdatei
konvertiert wird (zum Beispiel dbtran demo.log
). Damit dbtran vollständige Transaktionen erzeugt, verwenden Sie die Optionen -c oder -m mit den Transaktionslogdateien im
Verzeichnis. Siehe Datenbank mit mehreren Transaktionlogs wiederherstellen.
Sie können das Logkonvertierungs-Dienstprogramm folgendermaßen starten:
In Sybase Central verwenden Sie den Assistenten zum Übersetzen einer Logdatei.
An einer Eingabeaufforderung benutzen Sie den Befehl 'dbtran'. Das ist beim Einbau in Batch- oder Befehlsdateien nützlich.
Beendigungscodes sind 0 (Erfolg) oder eine von 0 verschiedene Zahl (Fehlschlag). Siehe Beendigungscodes der Softwarekomponenten.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |