Entlädt eine Datenbank in eine SQL-Skriptdatei.
dbunload [ options ] [ directory ]
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). |
||||||
-ac "keyword=value; ..." |
Stellt eine Verbindung mit einer bestehenden Datenbank her und entlädt die Daten direkt in sie, wodurch der Vorgang einer Datenbankentladung und des Neuladens der Ergebnisse in eine bestehende Datenbank kombiniert wird. Diese Option wird unter Windows Mobile nicht unterstützt. Sie könnten beispielsweise eine neue Datenbank mit dem Dienstprogramm dbinit erstellen und sie dann mit dieser Option aktualisieren. Diese Methode ist nützlich, wenn Sie Initialisierungsoptionen ändern wolen. Der folgende Befehl (in einer Zeile eingegeben) lädt eine Kopie der Datenbank c:\mydata.db in eine bestehende Datenbankdatei namens c:\mynewdata.db:
Wenn die neue Datenbank denselben Dateinamen wie die ursprüngliche Datenbank haben muss, verwenden Sie den DBN-Verbindungsparameter zur Angabe der richtigen Datenbanknamen. Siehe Verbindungsparameter DatabaseName (DBN). Der folgende Befehl (in einer Zeile eingegeben) lädt eine Kopie der alten Datenbank in eine neue Datenbank mit demselben Dateinamen mydata.db.
Wenn die ursprüngliche Datenbank mit der Version 9 oder früher von SQL Anywhere erstellt wurde und die neue Datenbank noch nicht läuft, müssen Sie den Datenbankservernamen mit der Option -ac angeben. Zum Beispiel:
Wenn Sie diese Option verwenden, wird keine Zwischenkopie der Daten auf der Festplatte angelegt. Sie geben daher im Befehl kein Entladeverzeichnis an. Dies bietet größere Sicherheit für Ihre Daten. |
||||||
-an database |
Kombiniert die Vorgänge "Entladen einer Datenbank", "Erstellen einer neuen Datenbank" und "Laden der Daten" mit dieser Option. Diese Option wird unter Windows Mobile, oder wenn Sie Datenbanken der Version 9 oder früher unter Mac OS X für Intel neu aufbauen, nicht unterstützt. Die Optionen, die Sie bei der Erstellung der Quell-Datenbank angegeben haben, werden verwendet, um die neue Datenbank zu erstellen. Sie können aber die Initialisierungsoptionen ändern, indem Sie andere unterstützte dbunload-Optionen eingeben (wie -ap zum Ändern der Seitengröße oder -et zur Aktivierung der Tabellenverschlüsselung). Mit dem folgenden Befehl (in einer Zeile eingegeben) erstellen Sie beispielsweise eine neue Datenbankdatei namens mydatacopy.db und kopieren das Schema und die Daten von mydata.db hinein:
Wenn Sie diese Option verwenden, wird keine Zwischenkopie der Daten auf der Festplatte angelegt. Sie geben daher im Befehl kein Entladeverzeichnis an. Dies bietet größere Sicherheit für Ihre Daten. Beim Erstellen der neuen Datenbank wird an den DBSpace-Dateinamen ein "R" angehängt, um Dateinamenskonflikte zu vermeiden, wenn die DBSpace-Datei für die neue Datenbank in demselben Verzeichnis wie der DBSpace für die ursprüngliche Datenbank erstellt wird. Beispiel: Wenn eine entladene Datenbank einen DBSpace namens "library" in der Datei library.db hat, lautet der library-DBSpace für die neue Datenbank library.dbR. Die mit der Option -an angegebene Datei ist relativ zum Datenbankserver. |
||||||
-ap size [ k ] | Legt die Seitengröße der neuen Datenbank fest. Diese Option wird ignoriert, wenn nicht auch die Option -an oder -ar verwendet wird. Die Seitengröße für eine Datenbank (in Byte) kann 2048, 4096, 8192, 16384 oder 32768 betragen, wobei der Standardwert die Seitengröße der ursprünglichen Datenbank ist. Verwenden Sie k, um die Einheit in KByte festzulegen (zum Beispiel, -ap 4k). Sie müssen mit dieser Option entweder die Option -an oder -ar angeben. Falls auf dem Datenbankserver bereits Datenbanken ausgeführt werden, muss die Seitengröße des Servers (festgelegt mit der Option -gp) groß genug für diese neue Seitengröße sein. Siehe Datenbankserveroption -gp . | ||||||
-ar [ directory ] |
Erstellt eine neue Datenbank mit denselben Einstellungen wie bei der alten Datenbank, aktualisiert sie und ersetzt die alte Datenbank. Sie können aber die Initialisierungsoptionen ändern, indem Sie andere unterstützte dbunload-Optionen eingeben (wie -ap zum Ändern der Seitengröße oder -et zur Aktivierung der Tabellenverschlüsselung). Wenn Sie diese Option verwenden, darf es keine anderen Verbindungen zu der Datenbank geben und die Datenbankverbindung muss lokal (nicht über ein Netzwerk) aufgenommen werden. Diese Option wird unter Windows Mobile, oder wenn Sie Datenbanken der Version 9 oder früher unter Mac OS X für Intel neu aufbauen, nicht unterstützt. Wenn Sie directory angeben (optional), werden die Transaktionslog-Offsets für Replikationszwecke zurückgesetzt und das Transaktionslog aus der alten Datenbank wird in das angegebene Verzeichnis verschoben. Das benannte Verzeichnis muss das Verzeichnis sein, das die alten Transaktionslogs enthält, die vom Nachrichtenagenten verwendet werden. Die Transaktionslog-Verarbeitung findet nur statt, wenn die Datenbank in einer Replikation verwendet wird: Wenn es keinen SQL Remote-Publikationseigentümer gibt, wird das alte Transaktionslog nicht benötigt und daher gelöscht, anstatt in das angegebene Verzeichnis kopiert zu werden. Siehe Sicherungen von Datenbanken in einer Synchronisations- und Replikationsumgebung. Beim Erstellen der neuen Datenbank wird an den DBSpace-Dateinamen ein "R" angehängt, um Dateinamenskonflikte zu vermeiden, wenn die DBSpace-Datei für die neue Datenbank in demselben Verzeichnis wie der DBSpace für die ursprüngliche Datenbank erstellt wird. Beispiel: Wenn eine entladene Datenbank einen DBSpace namens "library" in der Datei library.db hat, lautet der library-DBSpace für die neue Datenbank library.dbR. Wenn Sie eine verschlüsselte Datenbank neu aufbauen, muss der Chiffrierschlüssel für die ursprüngliche und die neue Datenbank derselbe sein. Wenn Sie die -ar-Option verwenden, werden die Datenbankkürzungspunkt auf Null zurückgesetzt. |
||||||
-c "keyword=value; ..." |
Gibt die Verbindungsparameter für die Quelldatenbank an. Siehe Verbindungsparameter. Die folgende Anweisung entlädt zum Beispiel die Beispieldatenbank und verbindet sich unter Verwendung der Benutzer-ID "DBA" und des Kennworts "sql": Die Daten werden in das Verzeichnis c:\unload entladen.
|
||||||
-cm { sql | dbinit } |
Zeigt die CREATE DATABASE-Anweisung oder den dbinit-Befehl im Meldungsfenster des Servers an, um eine Datenbank zu erstellen, die mit der entladenen Datenbank identisch ist. Wenn auch die Option -an angegeben wird, ist der angezeigte Befehl derjenige mit dem die neue Datenbank erstellt wird.
Wenn die Anweisung oder der Befehl für eine bestehende Datenbank mit starker Verschlüsselung (Option -an ist nicht angegeben) angezeigt wird, kann der Chiffrierschlüssel aus der Datenbank nicht bezogenen werden und daher wird ein Fragezeichen (?) in der ENCRYPTED-Klausel oder der Option -ek angezeigt. Der Befehl oder die Anweisung zum Erstellen wird nicht angezeigt, wenn Sie eine Datenbank entladen, die mit einem Datenbankserver der Version 10 oder früher erstellt wurde. |
||||||
-cp | Komprimiert Tabellendaten-Ausgabedateien, indem das Schlüsselwort COMPRESSED an die ausgeführten UNLOAD TABLE-Anweisungen angehängt wird. Diese Option hat keine Wirkung, wenn sie mit der Option -an oder -ar angegeben wird. | ||||||
-d | Generiert keine der Datenbankdefinitionsanweisungen (CREATE TABLE, CREATE INDEX usw.). Die Datei reload.sql enthält nur Anweisungen zum Aktualisieren der Daten. | ||||||
-dc |
Erzwingt eine Neuberechnung aller berechneten Spalten in der Datenbank. Standardmäßig werden berechnete Spalten nicht neu berechnet. Wenn die Option -dc angegeben ist, wird dem Skript reload.sql ein neuer Abschnitt hinzugefügt, um berechnete Spalten neu zu berechnen. Es werden Anweisungen der folgenden Form hinzugefügt.
Wenn Ihre Tabellen Kontext-abhängige berechnete Werte enthalten, wie z.B. CURRENT DATE, wird empfohlen, dass Sie die ALTER TABLE-Anweisung und nicht die Option -dc verwenden, um berechnete Spaltenwerte neu zu berechnen. Siehe ALTER TABLE-Anweisung. |
||||||
-e table, ... |
Schließt die angegebenen Tabellen aus der Datei reload.sql aus. Tabellennamen berücksichtigen nie die Groß- und Kleinschreibung, auch in Datenbanken, die die Groß- und Kleinschreibung berücksichtigen. Eine Datei reload.sql, die mit der Option -e erstellt wurde, darf nicht benutzt werden, um eine Datenbank neu zu erstellen, weil die Datei nicht alle Tabellen der Datenbank enthält. Wenn eine Tabelle sie referenzierende Fremdschlüssel hat, kann die Datenbank nicht ohne den Inhalt der Tabelle neu aufgebaut werden. Es wird empfohlen, dass Sie die Option -e mit der Option -d nur verwenden, um Daten aus allen Tabellen außer jenen durch -e festgelegten Tabellen zu entladen. |
||||||
-ea algorithm |
Gibt den Verschlüsselungsalgorithmus für die Datenbank- oder Tabellenverschlüsselung an (-et). Geben Sie Um die Sicherheit zu erhöhen, geben Sie AES oder AES256 für starke 128-Bit- bzw. 256-Bit-Verschlüsselung an. Geben Sie AES_FIPS oder AES256_FIPS für FIPS-zertifizierte 128-Bit- bzw. 256-Bit-Verschlüsselung an. Bei starker Verschlüsselung müssen Sie auch die Option -ek oder -ep angeben. Weitere Hinweise zur starken Verschlüsselung finden Sie unter Einfache Verschlüsselung und starke Verschlüsselung. Um eine nicht verschlüsselte Datenbank zu erstellen, geben Sie Wenn Sie die Option -ea nicht angeben, ist das Standardverhalten wie folgt:
Algorithmusnamen berücksichtigen die Groß- und Kleinschreibung nicht. HinweisErforderliche getrennt lizenzierbare Komponenten. FIPS-zertifizierte Verschlüsselung erfordert eine separate Lizenz. Alle Technologien für starke Verschlüsselungen unterliegen Exportbestimmungen. |
||||||
-ek key |
Gibt einen Chiffrierschlüssel im dbunload-Befehl für die neu erstellte Datenbank an, wenn Sie eine Datenbank entladen und erneut laden (unter Verwendung der Option -an). Wenn Sie eine stark verschlüsselte Datenbank erstellen, müssen Sie den Chiffrierschlüssel liefern, um die Datenbank oder das Transaktionslog überhaupt verwenden zu können. Der für die Verschlüsselung verwendet Algorithmus ist der, den Sie mit der Option -ea angeben. Wenn Sie die Option -ek angeben, ohne -ea anzugeben, wird der AES-Algorithmus verwendet. Siehe Einfache Verschlüsselung und starke Verschlüsselung. Achten Sie auf Ihren Schlüssel. Speichern Sie eine Kopie Ihres Schlüssels an einem sicheren Ort. Ein verlorener Schlüssel führt zu einer nicht benutzbaren Datenbank, die sich nicht wiederherstellen lässt. |
||||||
-ep |
Fordert zur Angabe eines Chiffrierschlüssels für die neu erstellte Datenbank auf, wenn Sie Ihre Datenbank entladen und erneut unter Verwendung der Option -an laden. Diese zusätzliche Sicherheitsmaßnahme verhindert, dass der Chiffrierschlüssel in lesbarer Form angezeigt wird. Wenn Sie die Option -ep ohne -an angeben, wird die -ep ignoriert. Wenn Sie die Optionen -ep und -an angeben, müssen Sie den Chiffrierschlüssel zur Bestätigung der Eingabe ein zweites Mal eingeben. Wenn die Eingaben nicht übereinstimmen, schlägt das Entladen fehl. Siehe Einfache Verschlüsselung und starke Verschlüsselung. |
||||||
-er |
Entfernt die Verschlüsselung aus verschlüsselten Tabellen während eines Entladevorgangs. Beim Neuaufbau einer Datenbank mit aktivierter Tabellenverschlüsselung müssen Sie entweder -er oder -et angeben, um anzuzeigen, ob bei der neuen Datenbank die Tabellenverschlüsselung aktiviert ist. Sonst erhalten Sie einen Fehler, wenn Sie versuchen, Daten in die neue Datenbank zu laden. Der folgende Befehl entlädt eine Datenbank (mydata.db) mit verschlüsselten Tabellen in eine neue Datenbank (mydatacopy.db), bei der die Tabellenverschlüsselung nicht aktiviert ist, wobei die Verschlüsselung von verschlüsselten Tabellen entfernt wird:
|
||||||
-et |
Aktiviert die Datenbanktabellen-Verschlüsselung in der neuen Datenbank (-an oder -ar muss auch angegeben sein). Wenn Sie die Option -et ohne die Option -ea angeben, wird der AES-Algorithmus verwendet. Wenn Sie die Option -et angeben, müssen Sie auch die Optionen -ep oder -ek angeben. Sie können die Tabellenverschlüsselungs-Einstellungen für die neue Datenbank ändern, sodass sie sich von den Einstellungen der entladenen Datenbank unterscheiden. Beim Neuaufbau einer Datenbank mit aktivierter Tabellenverschlüsselung müssen Sie entweder -er oder -et angeben, um anzuzeigen, ob bei der neuen Datenbank die Tabellenverschlüsselung aktiviert ist. Sonst erhalten Sie einen Fehler, wenn Sie versuchen, Daten in die neue Datenbank zu laden. Das folgende Beispiel entlädt eine Datenbank (mydata.db), die Tabellen hat, die mit dem Algorithmus für einfache Verschlüsselung chiffriert sind, in eine neue Datenbank (mydatacopy.db), bei der die Tabellenverschüsselung aktiviert ist, und verwendet AES_FIPS-Verschlüsselung mit dem Schlüssel 34jh:
|
||||||
-g |
|
||||||
-ii | Verwendet die UNLOAD-Anweisung, um Daten aus der Datenbank zu extrahieren, und die LOAD-Anweisung in der Datei reload.sql, um die Datenbank wieder mit Daten zu füllen. Dies ist die Standardeinstellung. | ||||||
-ix | Verwendet die UNLOAD-Anweisung, um Daten aus der Datenbank zu extrahieren, und die INPUT-Anweisung von Interactive SQL in der Datei reload.sql, um die Datenbank wieder mit Daten zu füllen. | ||||||
-k |
Fügt Daten in die sa_diagnostic_auxiliary_catalog-Tabelle ein. Diese Tabelle ordnet Objekt-IDs für Tabellen, Benutzer, Prozeduren usw. aus der Quelldatenbank der Protokollierungsdatenbank zu. Es werden auch alle Histogramme entladen/neugeladen. Diese Option wird bei der Erstellung einer Protokollierungsdatenbank verwendet, d.h. eine Datenbank, die Diagnoseprotokollierungsinformationen erhält. Außerdem stellt diese Option sicher, dass Auditing in der Protokollierungsdatenbank deaktiviert ist, auch wenn das Auditing in der Produktionsdatenbank aktiviert ist. Die Tabelle sa_diagnostic_auxiliary_catalog ermöglicht es dem Server, Bedingungen zu simulieren, die vorherrschten, als Protokollierungsdaten aufgezeichnet wurden (z.B. für die Verwendung mit dem Indexberater oder bei einer Anwendungsprofilerstellung). Diese Option ist besonders zusammen mit der Option -n nützlich. Siehe Diagnoseprotokollierung und sa_diagnostic_auxiliary_catalog-Tabelle. |
||||||
-kd |
Lädt die Datenbank erneut in eine einzige DBSpace-Datei. Mit dieser Option können Sie eine Protokollierungsdatenbank erstellen, wenn der Computer, auf dem die Datenbank erstellt wird, nicht dieselbe Verzeichnisstruktur wie die Produktionsdatenbank hat. Siehe Erstellen einer externen Protokollierungsdatenbank (Sybase Central). |
||||||
-l |
Erzwingt, dass der aktuelle Wert von SYSTABCOL.max_identity bei einem Wiederaufbau der Datenbank erhalten bleibt. Standardmäßig gilt: Wenn eine Datenbank mit Tabellen, die AUTOINCREMENT-Spalten enthalten, neu aufgebaut wird, berechnet der Datenbankserver den nächsten verfügbaren Wert für jede AUTOINCREMENT-Spalte anhand des aktuellen Inhalts der Tabellen. In den meisten Fällen ist dies ausreichend. Wenn allerdings Zeilen am Ende des Wertebereichs gelöscht wurden, können Werte wieder verwendet werden, was nicht wünschenswert ist. Wenn Sie die Option -l angeben, werden für jede Tabelle, die einen AUTOINCREMENT-Wert enthält, Aufrufe der sa_reset_identity-Systemprozedur in das generierte Skript reload.sql eingefügt, sodass der aktuelle Wert von SYSTABCOL.max_identity erhalten bleibt. Siehe auch: |
||||||
-m | Behält keine Benutzer-IDs für Datenbanken bei, die in eine Replikation einbezogen sind. | ||||||
-n | Entlädt keine Datenbankdaten. reload.sql enthält SQL-Anweisungen, die nur die Struktur der Datenbank aufbauen. Wenn die Datei reload.sql LOAD TABLE- oder INPUT-Anweisungen enthalten soll, verwenden Sie stattdessen die Option -nl. | ||||||
-nl | Entlädt die Struktur (dasselbe Verhalten wie bei der Option -n), aber die resultierende Datei reload.sql umfasst auch LOAD TABLE- oder INPUT-Anweisungen für jede Tabelle. Wenn diese Option verwendet wird, werden keine Benutzerdaten
entladen. Wenn Sie die Option -nl angeben, müssen Sie auch ein Datenverzeichnis aufnehmen, damit die LOAD/INPUT-Anweisungen
generiert werden können, auch wenn keine Dateien in dieses Verzeichnis geschrieben werden. Mit dieser Option können Sie ein
Entlade-Skript generieren, ohne dass Daten entladen werden. Sie können die Daten entladen, indem Sie die Option -d angeben.
Wenn eine Datenbank eine Tabelle enthält, deren Daten nicht entladen werden sollen, kann das Entladen der Daten bei dieser
Tabelle übersprungen werden, indem dbunload -d -e table-name verwendet wird .
|
||||||
-no |
Entlädt Datenbankobjekte nach Namen geordnet. Standardmäßig generiert dbunload Objekte in der Reihenfolge, in der sie erstellt wurden. Wenn Sie die -no-Option eingeben, können Sie Datenbankschemas vergleichen, wenn die Datenbanken dieselben Objekte enthalten, die aber zu unterschiedlichen Zeitpunkten erstellt wurden. Die Objektdefinitionen sind nach Objekttypen in alphabetischer Reihenfolge in der Datei reload.sql geordnet, wenn -no angegeben wird:
Die Objektdefinitionen werden in der Reihenfolge Eigentümer,Name ausgegeben. Manchmal wird ein drittes Element, wie zum Beispiel einen Fremdschlüssel, Rollenname oder Triggername, in die Reihenfolge aufgenommen. Die Option -no kann mit den Optionen -n, -nl, -ar, -an oder -ac nicht verwendet werden. Zur Vereinfachung von Vergleichen wird empfohlen, dass Sie die Option -no verwenden, wenn Sie die Reload-Skripten für Datenbanken vergleichen, die mit derselben Version des Datenbankservers erstellt wurden, da es bei den Objektdefinitionen kleinere Unterschiede geben kann. VorsichtDie generierte Datei sollte nicht verwendet werden, um eine neue Datenbank zu erstellen, weil die Reihenfolge der Objekterstellung bedeutsam ist. Beispiel: Wenn die Prozedur "p2" die Prozedur "p1" aufruft und "p1" eine Ergebnismenge zurückgibt, kann es wichtig sein, "p1" vor "p2" zu definieren. Wenn versucht wird, eine mit der Option -no erstellte reload.sql-Skriptdatei auszuführen, wird ein Fehler gemeldet. |
||||||
-o filename | Schreibt Ausgabemeldungen in die benannte Datei. Der Standort dieser Datei ist relativ zu dbunload. | ||||||
-p char | Ersetzt bei externen Entladevorgängen (dbunload-Option -x) das Standard-Escapezeichen (\) durch ein anderes Zeichen. Diese Option ist nur verfügbar, wenn Sie dieses Dienstprogramm über eine Eingabeaufforderung ausführen. | ||||||
-q | Läuft im stillen Modus - Meldungen werden nicht angezeigt. Diese Option ist nur verfügbar, wenn Sie dieses Dienstprogramm über eine Eingabeaufforderung ausführen. Wenn Sie die Option -q angeben, müssen Sie auch die Option -y angeben, sonst schlägt das Entladen fehl, wenn reload.sql bereits vorhanden ist. | ||||||
-qc | Schließt das Meldungsfenster, wenn der Entladevorgang abgeschlossen ist. Standardmäßig bleibt das dbunload-Meldungsfenster geöffnet, bis es von einem Benutzer geschlossen wird. Diese Option ist nur unter Windows Mobile verfügbar. | ||||||
-qr | Unterdrückt die Erstellung und Anzeige von Fortschrittsmeldungen beim Laden von Tabellen und Erstellen von Indizes. | ||||||
-r reload-file | Ändert den Namen und das Verzeichnis der generierten Reload-SQL-Skriptdatei. Standardwert ist reload.sql im aktuellen Verzeichnis. Das Verzeichnis ist relativ zum aktuellen Verzeichnis der Clientanwendung und nicht des Servers. | ||||||
-ss | Unterdrückt die Ausgabe von Spaltenstatistiken in die Reload-SQL-Skriptdatei. | ||||||
-t table,... |
Gibt eine Liste von Tabellen zum Entladen an. Standardmäßig werden alle Tabellen entladen. Zusammen mit der Option -n haben Sie die Möglichkeit, nur eine Gruppe von Tabellendefinitionen zu entladen. Tabellennamen berücksichtigen nie die Groß- und Kleinschreibung, auch in Datenbanken, die die Groß- und Kleinschreibung berücksichtigen. Eine Datei reload.sql, die mit der Option -t erstellt wurde, darf nicht benutzt werden, um eine Datenbank neu zu erstellen, weil die Datei nicht alle Tabellen der Datenbank enthält. Wenn eine Tabelle sie referenzierende Fremdschlüssel hat, kann die Datenbank nicht ohne den Inhalt der Tabelle neu aufgebaut werden. Es wird empfohlen, dass Sie die Option -t mit der Option -d nur verwenden, um Daten aus den durch "-t" festgelegten Tabellen zu entladen. |
||||||
-u | Verhindert die Verwendung eines Indexes zur Sortierung von Daten. Verwenden Sie diese Option, wenn Sie eine Datenbank mit einem beschädigten Index entladen, damit der beschädigte Index nicht zum Sortieren der Daten verwendet wird. Normalerweise werden Daten in jeder Tabelle anhand des Primärschlüssels oder Clustered-Indexes sortiert, falls er für die Tabelle definiert ist. | ||||||
-v | Zeigt den Namen der Tabelle an, die entladen wird, sowie die Anzahl der entladenen Zeilen. Diese Option ist nur verfügbar, wenn Sie dbunload über eine Eingabeaufforderung ausführen. | ||||||
-xi | Führt ein externes Entladen durch, indem Daten in den dbunload-Client entladen werden, und verwendet anschließend die LOAD-Anweisung in der generierten Reload-Skriptdatei reload.sql, um die Datenbank wieder mit Daten zu füllen. | ||||||
-xx | Führt ein externes Entladen durch, indem Daten in den dbunload-Client entladen werden, und verwendet anschließend die Interactive SQL-Anweisung INPUT in der generierten Reload-SQL-Skriptdatei reload.sql, um die Datenbank wieder mit Daten zu füllen. | ||||||
-y |
Ersetzt vorhandene Skriptdateien, ohne zur Bestätigung aufzufordern. Wenn Sie die Option -q angeben, müssen Sie auch -y angeben. Andernfalls schlägt das Entladen fehl, wenn dbunload erkennt, dass bereits eine Skriptdatei vorhanden ist. Beim Entladen von Datenbanken, die in ein Replikationssystem eingebunden sind, gibt es besondere Punkte zu beachten. Siehe Extraktion von entfernten Datenbanken und SQL Remote-Upgrades. |
||||||
directory | Gibt das Verzeichnis an, in dem die entladenen Daten gespeichert werden sollen. Die Skriptdatei reload.sql ist immer relativ zum aktuellen Verzeichnis des Benutzers. |
Für einen Entladevorgang ohne Neuladen müssen Sie das SELECT ANY TABLE-Systemprivileg haben.
Für einen Entladevorgang ohne Neuladen müssen Sie die Systemprivilegien SELECT ANY TABLE und SERVER OPERATOR haben.
Stellen Sie sicher, dass keine aktiven Transaktionen (einschließlich DDL) in der Datenbank laufen, wenn Sie das Dienstprogramm dbunload ausführen.
Hinweise zum Neuaufbau einer bestehenden Datenbank in einer Datenbank der Version 16 finden Sie unter SQL Anywhere-Server-Ugrades.
Wenn Sie dbunload mit einer Datenbank der Version 10.0.0 oder höher verwenden, muss die Version von dbunload mit der Version des Datenbankservers übereinstimmen, der für den Zugriff auf die Datenbank verwendet wird. Wenn eine ältere Version von dbunload mit einem neueren Datenbankserver verwendet wird oder umgekehrt, wird ein Fehler gemeldet.
Mit dem Dienstprogramm zum Entladen können Sie eine Datenbank entladen und eine Gruppe von Datendateien in ein genanntes Verzeichnis legen. Das Dienstprogramm Entladen erstellt eine Interactive SQL-Skriptdatei für den Neuaufbau Ihrer Datenbank. Es entlädt ebenfalls alle Daten aus Ihren Tabellen in Dateien im angegebenen Verzeichnis in einem Format mit Kommas als Trennzeichen. Binärdaten werden korrekt durch Escape-Sequenzen repräsentiert.
Ein interner Entlade-/Ladevorgang entlädt Informationen über den aktuellen Status jedes Benutzers durch das Ausführen von UPDATE ISYSUSER-Anweisungen. Externes Entladen/Laden enthält diese Informationen nicht und der Status aller Benutzer wird zurückgesetzt. Siehe Login-Richtlinien.
Wenn Sie eine Datenbank durch Entladen und Neuladen neu aufsetzen, wird die neue Datenbank möglicherweise kleiner sein als die ursprüngliche. Dies kann auf Indexänderungen in SQL Anywhere zurückzuführen sein und weist nicht auf ein Problem oder einen Datenverlust hin.
Wenn Sie den Neuaufbau einer Datenbank der Version 11 oder früher mit dem Dienstprogramm zum Entladen (dbunload) durchführen, sind für die neue Datenbank globale Prüfsummen standardmäßig aktiviert, auch wenn für die ursprüngliche Datenbank Prüfsummen deaktiviert waren. Wenngleich dies nicht empfohlen wird, können Sie globale Prüfsummen für eine Datenbank mit der ALTER DATABASE-Anweisung deaktivieren. Siehe ALTER DATABASE-Anweisung und Erkennung von Beschädigungen mithilfe von Prüfsummen.
Datenbanken bis zur Version 9, für die eine Wiederherstellung erforderlich ist, können ab Version 10 des Dienstprogramms zum Entladen (dbunload) nicht neu geladen werden. Sie müssen die Datenbank mit dbunload Version 9 oder früher neu laden.
Mit dem Dienstprogramm zum Entladen können Sie außerdem eine neue Datenbank direkt aus einer bestehenden erstellen. Dies vermeidet mögliche Sicherheitsprobleme, wenn der Inhalt der Datenbank in eine gewöhnliche Datei geschrieben wird.
Wenn Sie nur Tabellendaten entladen wollen, können Sie das in einem Schritt durchführen, indem Sie das Fenster Daten entladen in Sybase Central verwenden.
Weitere Hinweise finden Sie unter Exportieren von Daten mit dem Fenster Daten entladen.
Beim Entladen von Datenbanken, die in ein Replikationssystem eingebunden sind, gibt es besondere Punkte zu beachten. Siehe Extraktion von entfernten Datenbanken.
Sie können das Dienstprogramm zum Entladen folgendermaßen starten:
In Sybase Central verwenden Sie den Assistenten zum Entladen einer Datenbank. Siehe Tipps zum Exportieren von Daten mit dem Assistenten zum Entladen einer Datenbank.
An der Eingabeaufforderung benutzen Sie den Befehl dbunload. Das ist zum Integrieren in Batch- oder Befehlsdateien nützlich.
Die Option -gl des Datenbankservers steuert die Berechtigungen, die zum Entladen von Daten aus der Datenbank erforderlich sind. Siehe Datenbankserveroption -gl .
Der Benutzer-ID "dbo" gehören eine Reihe von Systemobjekten in einer Datenbank, wie Ansichten und gespeicherte Prozeduren.
Das Dienstprogramm zum Entladen entlädt die für die Benutzer-ID "dbo" während der Erstellung der Datenbank erzeugten Objekte nicht. Änderungen an diesen Objekten, wie das Neudefinieren einer Systemprozedur, gehen beim Entladen der Datenbank verloren. Alle Objekte, die von der Benutzer-ID "dbo" seit der Initialisierung der Datenbank erstellt wurden, werden vom Dienstprogramm zum Entladen entladen und diese Objekte bleiben so erhalten.
Wenn Sie eine Datenbank entladen, werden Änderungen bei Berechtigungen für Systemobjekte nicht entladen. Sie müssen diese Berechtigungen in der neuen Datenbank erneut erteilen bzw. entziehen.
Bevor Sie Ihre Datenbank neu aufbauen, wird empfohlen, dass Sie den Neuladeprozess validieren, indem Sie die Datenbank ohne Daten mit einem Befehl der folgenden Art neu laden:
dbunload -n -an new.db -c "UID=your-user-id;PWD=your-password;DBF=original-database-file" |
Beheben Sie die erkannten Probleme in der ursprünglichen Datenbank, bevor Sie sie neu aufbauen.
Im Standardmodus bzw. wenn -ii bzw. -ix verwendet wird, ist das von dbunload für die Daten verwendete Verzeichnis relativ zum Datenbankserver und nicht zum aktuellen Verzeichnis des Benutzers.
Wenn -xi oder -xx verwendet wird, ist das Verzeichnis relativ zum aktuellen Verzeichnis des Benutzers.
Weitere Hinweise zum Angeben eines Dateinames und Suchpfads in diesem Modus finden Sie unter UNLOAD-Anweisung.
Wenn keine Tabellenliste angegeben ist, wird die gesamte Datenbank entladen. Wenn eine Tabellenliste angegeben wird, werden nur diese Tabellen entladen.
Entladene Daten enthalten die Spaltenliste für die LOAD TABLE-Anweisungen, die in der Datei reload.sql generiert wurden. Das Entladen der Spaltenliste erleichtert die Neuordnung der Spalten in einer Tabelle. Tabellen können gelöscht oder neu erstellt und die Daten anschließend mit reload.sql übernommen werden.
Die von dbunload generierten LOAD TABLE-Anweisungen deaktivieren Prüf-Integritätsregeln und berechnete Spalten.
Beendigungscodes sind 0 (Erfolg) oder eine von 0 verschiedene Zahl (Fehlschlag). Siehe Exit-Codes der Softwarekomponenten.
Es wird empfohlen, dass Sie materialisierte Ansichten in Ihrer Datenbank aktualisieren, nachdem die Datenbank neu aufgebaut wurde. Siehe Materialisierten Ansichten manuell aktualisieren.
Protokollierungsdaten werden nicht als Teil eines Vorgangs zur Datenbank-Entladung oder -Aktualisierung entladen. Wenn Sie Protokollierungsinformationen aus einer Datenbank in eine andere übertragen möchten, müssen Sie dies manuell tun, indem Sie den Inhalt der sa_diagnostic_*-Tabellen kopieren. Dies wird jedoch nicht empfohlen.
Die folgenden Optionen bieten Kombinationen von internem und externem Entladen und Neuladen: -ii, -ix, -xi und -xx. Sie können eine deutliche Performancesteigerung erzielen, indem Sie interne Anweisungen (UNLOAD/LOAD) statt externe Anweisungen (INPUT- und OUTPUT-Anweisungen von Interactive SQL) verwenden. Interne Anweisungen werden jedoch vom Server ausgeführt, sodass Datei- und Verzeichnispfade relativ zum Speicherort des Datenbankservers sind. Wenn externe Befehle verwendet werden, sind Datei- und Verzeichnispfade relativ zum aktuellen Verzeichnis des Benutzers.
In Sybase Central können Sie angeben, ob Sie relativ zum Server oder zum Client entladen wollen. Siehe UNLOAD-Anweisung.
Wenn Sie das externe Entladen und Neuladen verwenden, um eine Datenbank zu entladen, neu zu laden oder neu aufzubauen, und der Zeichensatz der Datenbank inkompatibel mit dem Zeichensatz auf dem Hostsystem ist, auf dem dbunload ausgeführt wird, führt die Zeichensatzkonvertierung möglicherweise zu einer Beschädigung der Daten, da sie zwischen dem Datenbank-Zeichensatz und dem Zeichensatz des Hostsystems konvertiert werden.
Um dieses Problem zu vermeiden, geben Sie den Datenbank-Zeichensatz in der Verbindungszeichenfolge für die Datenbank (Optionen -c und -ac) an. Wenn der Datenbank-Zeichensatz beispielsweise UTF-8 ist, nehmen Sie "charset=utf-8" in die Verbindungszeichenfolgen auf:
dbunload -c UID=user-ID;PWD=password; CHARSET=utf-8;DBF=filename -ac UID=user-ID; PWD=password;CHARSET=utf-8;Host=host-name -xx |
Wenn Sie ein externes Entladen durchführen, enthält der Beginn der Datei reload.sql eine auskommentierte CREATE DATABASE-Anweisung. Diese Anweisung kann verwendet werden, um eine Datenbank zu erstellen, die mit der entladenen Datenbank übereinstimmt.
Wenn die entladene Datenbank mit Version 9 oder einer früheren Version von SQL Anywhere erstellt wurde und eine benutzerdefinierte Kollation hatte, wird die COLLATION-Klausel wie folgt angezeigt:
COLLATION collation-label DEFINITION collation-definition |
Dabei gilt: Kollationsdefinition ist eine Zeichenfolge, die die benutzerdefinierte Kollation angibt.
Die einzige Möglichkeit, eine benutzerdefinierte Kollation beizubehalten, besteht in einem Neuaufbau der Datenbank in einem einzigen Schritt (internes Entladen). Wenn Sie wählen, die Datenbank zu entladen und dann das Schema und die Daten in eine erstellte Datenbank zu laden, müssen Sie eine der unterstützten Kollationen verwenden.
Wenn die entladene Datenbank mit starker Verschlüsselung erstellt wurde, wird der Wert des KEY-Schlüssels in der CREATE DATABASE-Anweisung in Form von drei Fragezeichen angezeigt (???).
Wenn ein Fehler während eines internen Neuaufbaus einer Datenbank unter Verwendung der Option -ar oder -an auftritt, nachdem die Tabellendaten neu geladen und etwaige Indizes auf der Tabelle neu aufgebaut wurden, erstellt dbunload eine Datei namens unprocessed.sql im aktuellen Verzeichnis. Diese Datei enthält alle Anweisungen, die aufgrund des Fehlers nicht ausgeführt wurden, sowie die Anweisung, die den Fehler verursachte, als Kommentar. Das Folgende ist ein Beispiel für die Datei unprocessed.sql:
-- The database reload failed with the following error: -- ***** SQL error: the-SQL-error -- This script contains the statements that were not executed as a -- result of the failure. The statement that caused the failure is -- commented out below. To complete the reload, correct the failing -- statement, remove the surrounding comments and execute this script. /* the failing statement go */ setuser "DBA" go ... the remainder of the statements to be processed |
In dieser Datei können Sie die fehlerhaften Anweisungen korrigieren, entfernen oder verändern. Die Datei unprocessed.sql wird nur erstellt, nachdem alle Tabellendaten und referenziellen Integritätsregeln neu geladen wurden. Über Interactive SQL können Sie sich mit der neuen Datenbank verbinden und die aktualisierte Datei unprocessed.sql ausführen. Damit können Sie den Neuaufbau der Datenbank abschließen, ohne den Neuaufbau mehrfach durchführen zu müssen. Damit sparen Sie möglicherweise viel Zeit.
Wenn die Datei unprocessed.sql generiert wird, stoppt dbunload und gibt einen Fehlercode aus, um andere Tools und Skripten vom fehlgeschlagenen Neuaufbau zu verständigen.
Wenn während eines internen Neuaufbaus einer Datenbank mit der Option -ar ein Fehler auftritt, haben die neue Datenbank und die Transaktionslogdatei die Dateierweiterungen .dbr bzw. .logr. Führen Sie die folgenden Schritte durch, um die Datei unprocessed.sql zu übernehmen und den Neuladevorgang manuell zu beenden:
Starten Sie die neue Datenbank.
Übernehmen Sie die aktualisierte Datei unprocessed.sql.
Fahren Sie die Datenbank herunter.
Verschieben Sie die Dateien original-name.db und original-name.log in ein neues Verzeichnis.
Benennen Sie die Dateien original-name.dbr und original-name.logr in original-name.db bzw. original-name.log um.
Führen Sie den folgenden Befehl aus:
dblog -t original-name.log original-name.db |
Beim Neuaufbau einer Datenbank mit aktivierter Tabellenverschlüsselung müssen Sie entweder -er oder -et angeben, um anzuzeigen, ob bei der neuen Datenbank die Tabellenverschlüsselung aktiviert ist. Andernfalls erhalten Sie einen Fehler, wenn Sie versuchen, Daten in die neue Datenbank zu laden.
Wenn Sie eine stark verschlüsselte Datenbank entladen möchten, müssen Sie den Chiffrierschlüssel angeben. Sie können den DatabaseKey-Verbindungsparameter (DBKEY) verwenden, um den Schlüssel im Befehl anzugeben. Wenn Sie zur Eingabe des Chiffrierschlüssels aufgefordert werden möchten, statt ihn offen in die Befehlszeile eingeben zu müssen, können Sie die Serveroption -ep folgendermaßen verwenden:
dbunload -c "DBF=myenc.db;START=dbeng16 -ep" |
Wenn Sie die Option -an zum Entladen der Datenbank und Neuladen in eine andere Datenbank verwenden und den Chiffrierschlüssel für die neue Datenbank mit den Optionen -ek oder -ep angeben wollen, beachten Sie Folgendes:
Wenn die ursprüngliche Datenbank stark verschlüsselt ist, müssen Sie den Schlüssel für die ursprüngliche Datenbank mit dem Verbindungsparameter DatabaseKey (DBKEY) in der Option -c angeben, und nicht mit der Option -ek oder -ep.
Mit den Optionen -ek und -ep ist es möglich, eine nicht verschlüsselte Datenbank zu entladen und sie wieder in eine neue, stark verschlüsselte Datenbank zu laden. Wenn Sie die Optionen -ep und -an verwenden, müssen Sie den Schlüssel korrekt bestätigen, damit das Entladen nicht fehlschlägt.
Wenn die ursprüngliche Datenbank stark verschlüsselt ist, aber die Optionen -ek und -ep nicht verwendet werden, wird die neue Datenbank mit einfacher Verschlüsselung verschlüsselt.
Die Optionen -ek und -ep werden ignoriert, wenn -an nicht angegeben wird. Die dbunload-Optionen -ek und -ep gelten bei einer neuen Datenbank, während die Optionen der Datenbankserver (dbeng16/dbsrv16) und DBKEY= bei bestehenden Datenbanken gelten.
Wenn Sie an Replikations- oder Synchronisationssystemen beteiligte Datenbanken neu aufbauen, nimmt dbunload an, dass der mit der Option -ek oder -ep angegebene Chiffrierschlüssel der Chiffrierschlüssel der ursprünglichen Datenbank wie auch der Chiffrierschlüssel der neu aufgebauten Datenbank ist.
Weitere Hinweise zur Verschlüsselung finden Sie unter Datenbankserveroption -ep und Verbindungsparameter DatabaseKey (DBKEY).
Führen Sie zum Entladen einer Datenbank dbunload aus, indem Sie einen DBA-Benutzer und ein DBA-Kennwort angeben und die Datenbank mit dem Verbindungsparameter "DBF=" referenzieren.
Um eine Datenbank neu zu laden, erstellen Sie eine neue Datenbank und führen dann die generierte Skriptdatei reload.sql über Interactive SQL aus.
Um die Entlade- und Neulade-Schritte zu kombinieren, befolgen Sie die obenstehenden Anleitungen und fügen die Option -an hinzu, um den Namen der neuen Datenbank anzugeben. Siehe die Beschreibung der Optionen -ac und -an.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |