Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Verwaltung Ihrer Datenbank » Dienstprogramme für die Datenbankadministration

 

Dienstprogramm zur Logkonvertierung (dbtran)

Übersetzt ein Transaktionslog in eine SQL-Befehlsdatei

Syntax

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. Weitere Hinweise finden Sie unter 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 verwenden. Weitere Hinweise finden Sie unter 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. Weitere Hinweise finden Sie unter 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 enc.db vom Server sample und speichert seine Ausgabe in log.sql.

dbtran -n log.sql -c "ENG=sample;DBF=enc.db;
UID=DBA;PWD=sql;DBKEY=mykey"
-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 enc.db vom Server sample und speichert seine Ausgabe in log.sql.

dbtran -n log.sql -c "ENG=sample;DBF=enc.db;
UID=DBA;PWD=sql;DBKEY=mykey"
-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. Weitere Hinweise finden Sie unter auditing-Option [Datenbank].

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:

  • All   Alle Zeilen. Dies ist die Standardeinstellung.

  • SQLRemote   Nur Zeilen einbeziehen, die mithilfe von SQL Remote geändert wurden. Sie können auch das kurze Format SR verwenden.

  • RepServer   Nur Zeilen einbeziehen, die mithilfe von Replication Agent (LTM) und Replication Server geändert wurden. Sie können auch das kurze Format RS verwenden.

  • Local   Nur Zeilen einbeziehen, die nicht repliziert werden.

-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 Teil-.sql-Dateien 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 Teil-.sql-Datei 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.
-n Dateiname 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.
-rsu Benutzername,... Gibt eine kommagetrennte Liste von Benutzernamen an, die die Standard-Benutzernamen des Replication Servers außer Kraft setzen. Standardmäßig geht die Option -is von den Replication Server-Standardbenutzernamen dbmaint und sa aus.
-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 is, 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.
Bemerkungen

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 demo11 und setzt die Ausgabe in eine Datei namens demo.SQL.

    dbtran -c "ENG=demo11;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. Weitere Hinweise finden Sie unter 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). Weitere Hinweise finden Sie unter Beendigungscodes der Softwarekomponenten.