Konvertiert ein Transaktionslog in eine SQL-Skriptdatei.
Mit einem Datenbankserver ausführen:
dbtran [ options ] -c { connection-string } -n SQL-script-file
Mit einem Transaktionslog ausführen:
dbtran [ options ] [ transaction-log ] [ SQL-script-file ]
Option | Beschreibung | ||
---|---|---|---|
@data |
Liest Optionen aus der angegebenen Umgebungsvariablen oder Konfigurationsdatei ein. Siehe Konfigurationsdateien. 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. Siehe Dienstprogramm zum Verschleiern von Dateien (dbfhide). |
||
-a |
Steuert, ob nicht festgeschriebene Transaktionen im Transaktionslog erscheinen. Standardmäßig enthält das Transaktionslog nur Änderungen, die festgeschrieben wurden. Änderungen, die zurückgesetzt oder nach dem letzten COMMIT durchgeführt wurden, sind nicht im Transaktionslog enthalten. Wenn die Option -a angegeben ist, werden alle im Transaktionslog gefundenen, nicht festgeschriebenen Transaktionen ausgegeben, gefolgt von einer ROLLBACK-Anweisung. |
||
-c "keyword=value; ..." | 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 key |
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 Audit-Daten 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 Ausgangspunkten aus. | ||
-is source,... |
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 owner.table,... | Gibt die Vorgänge in der angegebenen kommagetrennten Liste von Tabellen aus. Jede Tabelle muss im folgenden Format angegeben werden: owner.table. | ||
-j date/time | 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. Das folgende Format ist für Datum und Uhrzeit akzeptabel: "JJJJ/MMM/TTHH: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 directory | Gibt das Verzeichnis an, das Transaktionslogs enthält. Verwenden Sie die Option -m, wenn Transaktionen sich möglicherweise über mehrere Transaktionslogdateien erstrecken. Diese Option erfordert die Option -n. | ||
-n filename | Gibt die SQL-Ausgabedatei an. | ||
-o filename | Schreibt Ausgabemeldungen in die benannte Datei. | ||
-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 Dienstprogramm zur Logkonvertierung 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 die Skriptdatei einbezogen werden. Standardmäßig werden von Triggern ausgeführte Aktionen nicht in die Skriptdatei einbezogen. Wenn die Skriptdatei in einer Datenbank ausgeführt wird und der entsprechende Trigger in der Datenbank vorhanden ist, 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 Skriptdatei ausgeführt werden soll. | ||
-u userid,... | Begrenzt die Ausgabe aus dem Transaktionslog auf die angegebenen Benutzer. | ||
-x userid,... | Begrenzt die Ausgabe aus dem Transaktionslog, indem die angegebenen Benutzer ausgeschlossen werden. | ||
-y | Ersetzt vorhandene Skriptdateien, 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. | ||
transaction-log | Gibt die zu konvertierende Logdatei an. Kann nicht zusammen mit den Optionen -c oder -m verwendet werden. | ||
SQL-file | Benennt die Ausgabedatei, die die konvertierten Informationen enthält. Nur zur Verwendung mit Transaktionslog. |
Sie müssen das BACKUP DATABASE-Systemprivileg haben, um dbtran auf einem Datenbankserver ausführen zu können. Privilegien sind nicht erforderlich, um dbtran auf eine Transaktionslogdatei anzuwenden.
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.
Der folgende Befehl übersetzt die Transaktionslogdaten des Servers demo16 und setzt die Ausgabe in eine Datei namens demo.
dbtran -c "Server=demo16;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. Schützen Sie die Transaktionslogdatei gegen allgemeinen Zugriff, damit Benutzer nicht die Möglichkeit haben, diesen Befehl 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
). Verwenden Sie die Option -m, um vollständige Transaktionen zu generieren, wenn Transaktionen sich möglicherweise über mehrere
Logdateien erstrecken. Durch die Option -m wird dbtran angewiesen, eine einzelne SQL-Datei zu generieren (benannt durch -n),
die alle Transaktionen aus den Logs im angegebenen Verzeichnis enthält. Siehe Datenbankwiederherstellung mit mehreren Transaktionslogs.
Sie können das Dienstprogramm zur Logkonvertierung folgendermaßen starten:
In Sybase Central verwenden Sie den Assistenten zum Übersetzen einer Logdatei.
An einer Eingabeaufforderung benutzen Sie den Befehl "dbtran". Das ist zum Integrieren in SQL-Skript- oder Befehlsdateien nützlich.
Beendigungscodes sind 0 (Erfolg) oder eine von 0 verschiedene Zahl (Fehlschlag). Siehe Exit-Codes der Softwarekomponenten.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |