Dieses Dienstprogramm extrahiert eine entfernte Datenbank aus einer konsolidierten SQL Anywhere-Datenbank.
dbxtract [ options ] [ directory ] subscriber
Option | Beschreibung | ||
---|---|---|---|
@data |
Liest Parameter aus einer Konfigurationsdatei ein. Siehe @data - dbeng12/dbsrv12-Serveroption. Verwenden Sie diese Option, um Optionen aus der angegebenen Umgebungsvariablen oder Konfigurationsdatei einzulesen. Wenn beide mit demselben Namen vorhanden sind, wird die Umgebungsvariable verwendet. Siehe Konfigurationsdateien. Wenn Sie Kennwörter oder andere Informationen in einer Konfigurationsdatei schützen möchten, können Sie das Dienstprogramm zum Verschleiern von Dateien verwenden. Siehe Dienstprogramm zum Verschleiern von Dateien (dbfhide). |
||
-ac "keyword=value; ..." |
Stellt eine Verbindung mit der in der Verbindungszeichenfolge angegebenen Datenbank zum Neuladen her. Sie können die Vorgänge kombinieren, die eine Datenbank entladen und die Ergebnisse in eine vorhandene Datenbank laden, indem Sie diese Option verwenden. Beispiel: Der folgende Befehl (in einer einzigen Zeile eingegeben) lädt eine Kopie der Daten für den field_user-Subskribenten in eine vorhandene Datenbankdatei namens c:\field.db:
Wenn Sie diese Option verwenden, wird keine Zwischenkopie der Daten auf dem Plattenspeicher erstellt, und daher geben Sie kein Entladeverzeichnis in der Befehlszeile ein. Dies bietet größere Sicherheit für Ihre Daten, beeinträchtigt aber die Performance. |
||
-al filename | Gibt den Namen der Transaktionslogdatei für die neue Datenbank an, falls die Befehlszeilenoption -an verwendet wird. | ||
-an database |
Erstellt eine Datenbankdatei mit denselben Einstellungen wie die Datenbank, die extrahiert wird, und lädt sie automatisch neu. Sie können die Vorgänge "Entladen einer Datenbank", "Erstellen einer neuen Datenbank" und "Laden der Daten" mit dieser Option kombinieren. Beispiel: Der folgende Befehl z.B. (in einer einzigen Zeile eingegeben) erstellt eine neue Datenbankdatei namens c:\field.db und kopiert das Schema und die Daten für den field_user-Subskribenten von c:\cons.db hinein:
Wenn Sie diese Option verwenden, wird keine Zwischenkopie der Daten auf dem Plattenspeicher erstellt, und daher geben Sie kein Entladeverzeichnis in der Befehlszeile ein. Dies bietet größere Sicherheit für Ihre Daten, beeinträchtigt aber die Performance. |
||
-ap size [ k ] | Legt die Seitengröße der neuen Datenbank fest. Diese Option wird ignoriert, außer -an wird verwendet. 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 Kilobyte anzugeben (zum Beispiel -ap 4k). 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 -gp - dbeng12/dbsrv12-Serveroption. | ||
-b | Startet keine Subskriptionen. Wenn diese Option angegeben ist, müssen Subskriptionen in der konsolidierten Datenbank (für die entfernte Datenbank) und in der entfernten Datenbank (für die konsolidierte Datenbank) explizit mit der START SUBSCRIPTION-Anweisung gestartet werden, damit die Replikation beginnt. Siehe START SUBSCRIPTION-Anweisung [SQL Remote]. | ||
-c "keyword=value; ..." |
Gibt Parameter für die Datenbankverbindung in einer Zeichenfolge an. Die Benutzer-ID muss über DBA- Berechtigungen verfügen, damit der Benutzer mit Sicherheit die Berechtigungen für alle Tabellen in der Datenbank besitzt. Beispiel: Die folgende Anweisung (in einer einzigen Zeile eingegeben) extrahiert eine Datenbank für die entfernte Benutzer-ID joe_remote von der Beispieldatenbank, die auf dem sample_server-Datenbankserver läuft, indem mit der Benutzer-ID "DBA" und dem Kennwort "sql" eine Verbindung hergestellt wird. Die Daten werden in das Verzeichnis c:\extract entladen.
Wenn keine Verbindungsparameter angegeben sind, werden die Verbindungsparameter aus der SQLCONNECT-Umgebungsvariablen verwendet, falls diese eingestellt ist. |
||
-d | Extrahiert nur Daten. Wenn diese Option angegeben ist, wird die Schemadefinition nicht entladen, und es werden keine Publikationen oder Subskriptionen in der entfernten Datenbank erstellt. Diese Option wird verwendet, wenn bereits eine entfernte Datenbank mit dem richtigen Schema vorhanden ist und nur mit den Daten angefüllt werden muss. | ||
-ea alg |
Gibt Verschlüsselungsalgorithmus für die neue Datenbank an. Mit dieser Option können Sie bestimmen, dass ein starker Verschlüsselungsalgorithmus zum Verschlüsseln Ihrer neuen Datenbank verwendet werden soll. Für den FIPS-zertifizierten Algorithmus können Sie entweder AES (Standard) oder AES_FIPS wählen. AES_FIPS benutzt eine eigene Bibliothek und ist mit AES nicht kompatibel. 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 Starke Verschlüsselung. Um eine nicht verschlüsselte Datenbank zu erstellen, geben Sie die Option -ea none an oder geben Sie weder die Option -ea noch -e, -ep oder -et an. Wenn Sie die Option -ea nicht angeben, ist das Standardverhalten wie folgt:
Algorithmusnamen berücksichtigen die Groß- und Kleinschreibung nicht. HinweisErforderliche getrennt lizenzierbare Komponenten. ECC-Verschlüsselungen und FIPS-zertifizierte Verschlüsselungen erfordern eine getrennte Lizenz. Alle Technologien für starke Verschlüsselungen unterliegen Exportbestimmungen. |
||
-ek key |
Gibt Chiffrierschlüssel für die neue Datenbank an. Mit dieser Option können Sie eine stark verschlüsselte Datenbank erstellen, indem Sie einen Chiffrierschlüssel direkt in die Befehlszeile angeben. Der Algorithmus, der zur Verschlüsselung der Datenbank verwendet wird, ist AES oder AES_FIPS, wie in der Option -ea angegeben. Wenn Sie die Option -ek angeben, ohne -ea anzugeben, wird der AES-Algorithmus verwendet. AchtungBei stark verschlüsselten Datenbanken achten Sie darauf, eine Kopie des Schlüssels an einem sicheren Ort zu verwahren. Wenn Sie den Chiffrierschlüssel verlieren, gibt es keine Möglichkeit, auf die Daten zuzugreifen, auch nicht mit der Unterstützung des technischen Kundendiensts. Die Datenbank muss verworfen und eine neue Datenbank muss erstellt werden. |
||
-ep |
Fordert zur Eingabe des Chiffrierschlüssels für die neue Datenbank auf. Diese Option gibt an, dass Sie eine stark verschlüsselte Datenbank anlegen wollen, wobei der Chiffrierschlüssel in einem Fenster eingegeben wird. Diese zusätzliche Sicherheitsmaßnahme verhindert, dass der Chiffrierschlüssel in lesbarer Form angezeigt wird. Sie müssen den Chiffrierschlüssel ein zweites Mal eingeben, um zu bestätigen, dass die erste Eingabe korrekt war. Wenn die Eingaben nicht übereinstimmen, schlägt die Initialisierung fehl. Siehe Starke Verschlüsselung. |
||
-er |
Entfernt Verschlüsselung aus verschlüsselten Tabellen während eines Entladevorgangs. Beim Extrahieren aus 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. Der folgende Befehl wird komplett auf einer Zeile eingegeben und extrahiert eine Datenbank (cons.db) mit verschlüsselten Tabellen in eine neue Datenbank (field.db), bei der die Tabellenverschlüsselung nicht aktiviert ist, wobei die Verschlüsselung von verschlüsselten Tabellen entfernt wird:
|
||
-et |
Aktiviert 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 muss komplett auf einer Zeile eingegeben werden und extrahiert eine Datenbank (cons.db), die mit dem Algorithmus für einfache Verschlüsselung chiffrierte Tabellen enthält, in eine neue Datenbank (field.db), bei der die Tabellenverschlüsselung aktiviert ist, und verwendet AES_FIPS-Verschlüsselung mit dem Schlüssel 34jh:
|
||
-f |
Extrahiert voll qualifizierte Publikationen. Normalerweise müssen Sie voll qualifizierte Publikationsdefinitionen für die entfernte Datenbank nicht extrahieren, da üblicherweise alle Zeilen in die konsolidierte Datenbank zurück repliziert werden. Es kann allerdings sinnvoll sein, vollqualifizierte Publikationen in mehrstufigen Systemeinrichtungen oder bei Systemeinrichtungen zu verwenden, in denen die entfernte Datenbank Zeilen enthält, die sich nicht in der konsolidierten Datenbank befinden. |
||
-g |
|
||
-ii |
Führt ein internes Entladen und ein internes Neuladen durch. Diese Option zwingt das Reload-Skript, die internen UNLOAD- und LOAD TABLE-Anweisungen an Stelle der Interactive SQL OUTPUT- und INPUT-Anweisungen zu verwenden, um Daten zu entladen bzw. zu laden. Diese Kombination der Vorgänge ist das Standardverhalten. Externe Vorgänge verwenden den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver benutzen. |
||
-ix |
Führt ein internes Entladen und ein externes Neuladen durch. Diese Option zwingt das Reload-Skript dazu, die interne UNLOAD-Anweisung zu verwenden, um Daten zu entladen, und die Interactive SQL INPUT-Anweisung dazu, die Daten in die neue Datenbank zu laden. Externe Vorgänge verwenden den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver benutzen. |
||
-l level | Führt alle Extraktionsvorgänge auf der angegebenen Isolationsstufe aus. Die Standardeinstellung ist die Isolationsstufe 0. Wenn Sie eine Datenbank aus einem aktiven Server extrahieren, sollten Sie dies mit der Isolationsstufe 3 tun, um sicherzustellen, dass die Daten in der extrahierten Datenbank mit den Daten auf dem Datenbankserver konsistent sind. Ein Erhöhen der Isolationsstufe kann zu einer großen Anzahl von Sperren führen, die vom Extraktionsdienstprogramm (dbxtract) verwendet werden. Dies schränkt möglicherweise die Datenbanknutzung für andere Benutzer ein. Siehe Extraktionsdienstprogramm (dbxtract). | ||
-n |
Extrahiert nur die Schemadefinition. Bei dieser Option werden keine Daten entladen. Die Reload-Datei enthält nur SQL-Anweisungen, um das Datenbankschema aufzubauen. Sie können die SYNCHRONIZE SUBSCRIPTION-Anweisung verwenden, um die Daten über das Nachrichtensystem zu laden. Siehe SYNCHRONIZE SUBSCRIPTION-Anweisung [SQL Remote]. Publikationen, Subskriptionen sowie PUBLISH- und SUBSCRIBE-Berechtigungen sind Teil des Schemas.
|
||
-nl |
Extrahiert 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
extrahiert. 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 extrahieren, 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 vermieden werden, indem |
||
-o file | Gibt Nachrichten in eine Ausgabelogdatei aus. | ||
-p character | Gibt ein Escapezeichen an. Der Standardwert für das Escapezeichen (\) kann mit dieser Option durch ein anderes Zeichen ersetzt werden. | ||
-q |
Dialogfreier Modus: Es werden keine Nachrichten ausgegeben oder Fenster angezeigt. Wenn diese Option angegeben ist, muss -y ebenfalls angegeben sein, weil sonst der Vorgang fehlschlägt. Diese Option ist nur im Befehlszeilen-Dienstprogramm verfügbar. |
||
-r file |
Gibt den Namen der generierten Reload-Skriptdatei für Interactive SQL an. Der Standardname der Reload-Skriptdatei ist reload.sql im aktuellen Verzeichnis. Sie können mit dieser Option einen anderen Dateinamen angeben. |
||
-u | Sortiert während des Entladungsprozesses keine Daten. Standardmäßig sind die Daten in jeder Tabelle nach dem Primärschlüssel aufgelistet. Entladungen laufen mit der Option -u schneller ab, zum Laden der Daten in die entfernte Datenbank ist jedoch mehr Zeit erforderlich. | ||
-v | Zeigt Meldungen ausführlich an. Der Name der Tabelle, die entladen wird, die Anzahl der entladenen Zeilen und die verwendete SELECT-Anweisung. | ||
-xf | Schließt Fremdschlüssel aus. Diese Option kann verwendet werden, wenn eine entfernte Datenbank eine Teilmenge des Schemas der konsolidierten Datenbank enthält und einige Fremdschlüsselreferenzen nicht in der entfernten Datenbank vorhanden sind. | ||
-xh | Schließt Prozedur-Hooks aus. | ||
-xi |
Führt ein externes Entladen und ein internes Neuladen durch. Standardmäßig wird beim Entladen der Datenbank die UNLOAD-Anweisung verwendet, die vom Datenbankserver ausgeführt wird. Wenn Sie ein externes Entladen wählen, verwendet dbxtract stattdessen die OUTPUT-Anweisung. Die OUTPUT-Anweisung wird im Client ausgeführt. Externe Vorgänge verwenden den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver benutzen. |
||
-xp | Extrahiert keine gespeicherten Prozeduren aus der Datenbank. | ||
-xt | Extrahiert keine Trigger aus der Datenbank | ||
-xv | Extrahiert keine Ansichten aus der Datenbank. | ||
-xx |
Führt ein externes Entladen und ein externes Laden durch. Verwenden Sie die OUTPUT-Anweisung, um die Daten zu entladen, und die INPUT-Anweisung, um die Daten in die neue Datenbank zu laden. Standardmäßig wird beim Entladen die UNLOAD-Anweisung und beim Laden die LOAD TABLE-Anweisung verwendet. Die internen UNLOAD- und LOAD TABLE-Anweisungen sind schneller als OUTPUT und INPUT. Externe Vorgänge verwenden den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver benutzen. |
||
directory | Gibt das Verzeichnis an, in das die Dateien geschrieben werden. Nicht erforderlich, wenn Sie -an oder -ac verwenden. | ||
subscriber | Gibt den Subskribenten an, für den die Datenbank extrahiert wird. |
Standardmäßig wird das Extraktionsdienstprogramm (dbxtract) mit der Isolationsstufe 0 ausgeführt. Wenn Sie eine Datenbank aus einem aktiven Server extrahieren, sollten Sie dies mit der Isolationsstufe 3 tun, um sicherzustellen, dass die Daten in der extrahierten Datenbank mit den Daten auf dem Datenbankserver konsistent sind. Ein Ausführen mit Isolationsstufe 3 kann möglicherweise den Zugriff auf den Datenbankserver von anderen Benutzern aufgrund der großen Anzahl von Sperren verzögern. Es wird empfohlen, dass Sie das Extraktionsdienstprogramm (dbxtract) ausführen, wenn der Server nicht zu beschäftigt ist, oder dafür eine Kopie der Datenbank verwenden.
Das Extraktionsdienstprogramm (dbxtract) erstellt eine SQL-Skriptdatei und eine Reihe von dazugehörenden Datendateien. Die Skriptdatei kann für eine neu initialisierte Datenbank ausgeführt werden, um die Datenbankobjekte zu erstellen und die Daten für die entfernte Datenbank zu laden.
Standardmäßig heißt die Befehlsdatei reload.sql.
Wenn der entfernte Benutzer eine Gruppe ist, dann werden alle Benutzer-IDs, die Mitglieder dieser Gruppe sind, extrahiert. Das ermöglicht mehrere Benutzer in einer entfernten Datenbank mit unterschiedlichen Benutzer-IDs, ohne eine benutzerdefinierte Extraktion verwenden zu müssen.
Wenn Sie das Extraktionsdienstprogramm (dbxtract) oder den Assistenten zum Extrahieren einer Datenbank mit einer Datenbank der Version 10.0.0 oder später verwenden, muss die Version von dbxtract mit der Version des Datenbankservers übereinstimmen, der für den Zugriff auf die Datenbank verwendet wird. Wenn eine ältere Version von dbxtract mit einem neueren Datenbankserver verwendet wird oder umgekehrt, wird ein Fehler gemeldet.
Das Extraktionsdienstprogramm (dbxtract) und der Assistent zum Extrahieren einer Datenbank entladen nicht die für die Benutzer-ID dbo während der Erstellung der Datenbank erzeugten Objekte. Änderungen an diesen Objekten, wie das Neudefinieren einer Systemprozedur, gehen beim Entladen der Daten verloren. Die von der Benutzer-ID dbo seit der Initialisierung der Datenbank erstellten Objekte werden vom Extraktionsdienstprogramm (dbxtract) entladen und gehen daher nicht verloren.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |