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 Remote » SQL Remote-Referenz » SQL Remote-Dienstprogramme und Optionen

 

Extraktionsdienstprogramm (dbxtract)

Eine entfernte Datenbank aus einer konsolidierten SQL Anywhere-Datenbank extrahieren.

Extraktionsdienstprogramm (dbxtract)

Syntax
dbxtract [ Optionen ] [ Verzeichnis ] Subskribent
Option Beschreibung
@data

Parameter aus einer Konfigurationsdatei einlesen. Weitere Hinweise finden Sie unter Serveroption @data.

Verwenden Sie diese Option, um Optionen aus der angegebenen Umgebungsvariablen oder Konfigurationsdatei einzulesen. Wenn beide mit demselben Namen vorhanden sind, wird die Umgebungsvariable verwendet. 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).

-ac "Schlüsselwort=Wert; ..."

Verbindung mit der in der Verbindungszeichenfolge angegebenen Datenbank zum Neuladen herstellen

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:

dbxtract -c "UID=DBA;PWD=sql;DBF=c:\cons.db" 
-ac "UID=DBA;PWD=sql;DBF=c:\field.db" field_user

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 Dateiname Geben Sie den Namen der Transaktionslogdatei für die neue Datenbank an, falls die Befehlszeilenoption -an verwendet wird.
-an Datenbank

Eine Datenbankdatei mit denselben Einstellungen wie die Datenbank erstellen, die extrahiert wird, und sie automatisch neu laden

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:

dbxtract -c "UID=DBA;PWD=sql;DBF=c:\cons.db" 
-an c:\field.db field_user

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 Größe

Die Seitengröße der neuen Datenbank festlegen. 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. 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. Weitere Hinweise finden Sie unter Serveroption -gp.

-b

Keine Subskriptionen starten. 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. Weitere Hinweise finden Sie unter START SUBSCRIPTION-Anweisung [SQL Remote].

-c "Schlüsselwort=Wert; ..."

Parameter für die Datenbankverbindung in einer Zeichenfolge angeben

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.

dbxtract -c "ENG=sample_server;DBN=demo;
UID=DBA;PWD=sql" c:\extract joe_remote

Wenn keine Verbindungsparameter angegeben sind, werden die Verbindungsparameter aus der SQLCONNECT-Umgebungsvariablen verwendet, falls diese eingestellt ist.

-d

Nur Daten extrahieren. 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 Algorithmus

Verschlüsselungsalgorithmus für die neue Datenbank angeben. Mit dieser Option können Sie bestimmen, dass ein starker Verschlüsselungsalgorithmus zum Verschlüsseln Ihrer neuen Datenbank verwendet werden soll. Sie können AES (Standard) oder AES_FIPS für den FIPS-genehmigten Algorithmus 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-bestätigte 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:

  • -ea none, wenn -ek, -ep oder -et nicht angegeben ist
  • -ea AES, wenn -ek oder -ep angegeben ist (mit oder ohne -et)
  • -ea simple, wenn -et ohne -ek oder -ep verwendet wird

Algorithmusnamen berücksichtigen die Groß- und Kleinschreibung nicht.

Erforderliche getrennt lizenzierbare Komponenten

ECC-Verschlüsselungen und FIPS-zertifizierte Verschlüsselungen erfordern eine getrennte Lizenz. Alle Technologien für starke Verschlüsselungen unterliegen Exportbestimmungen.

Weitere Hinweise finden Sie unter Getrennt lizenzierbare Komponenten.

-ek Schlüssel

Chiffrierschlüssel für die neue Datenbank angeben. 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.

Achtung

Bei 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

Zur Eingabe des Chiffrierschlüssels für die neue Datenbank auffordern. 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. Weitere Hinweise finden Sie unter Starke Verschlüsselung.

-er

Verschlüsselung aus verschlüsselten Tabellen während eines Entladevorgangs entfernen.

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 entlädt 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:

dbxtract -an c:\field.db -er -c "UID=DBA;PWD=sql;DBF=c:\cons.db;DBKEY=29bN8cj1z field_user"
-et

Datenbanktabellen-Verschlüsselung in der neuen Datenbank aktivieren (-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 (cons.db), die Tabellen hat, die mit dem Algorithmus für einfache Verschlüsselung chiffriert sind, in eine neue Datenbank (field.db), bei der die Tabellenverschlüsselung aktiviert ist, und verwendet AES_FIPS-Verschlüsselung mit dem Schlüssel 34jh:

dbxtract -an c:\field.db -et -ea AES_FIPS -ek 34jh -c "UID=DBA;PWD=sql;DBF=c:\cons.db field_user"
-f

Voll qualifizierte Publikationen extrahieren. In den meisten Fällen 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.

-ii

Ein internes Entladen und ein internes Neuladen durchführen. Diese Option zwingt das Neulade-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 nehmen den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver nehmen.

-ix

Ein internes Entladen und ein externes Neuladen durchführen. Diese Option zwingt das Neulade-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 nehmen den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver nehmen.

-l Stufe

Alle Extraktionsvorgänge auf der angegebenen Isolationsstufe ausführen. 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. Weitere Hinweise finden Sie unter Extraktionsdienstprogramm (dbxtract).

-n

Nur die Schemadefinition extrahieren. 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. Publikationen, Subskriptionen sowie PUBLISH- und SUBSCRIBE-Berechtigungen sind Teil des Schemas.

dbxtract -c "UID=DBA;PWD=sql;DBF=c:\remote\cons\cons.db" -n "c:\remote\reload.sql" UserName
-nl

Die Struktur extrahieren (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 dbxtract -d -e Tabellenname verwendet wird.

-o Datei

Nachrichten in eine Ausgabelogdatei ausgeben.

-p Zeichen

Escapezeichen angeben. Der Standardwert für das Escapezeichen (\) kann mit dieser Option durch ein anderes Zeichen ersetzt werden.

-q

Dialogfreier Modus: keine Nachrichten ausgeben oder Fenster anzeigen. 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 Datei

Den Namen der generierten Neulade-Befehlsdatei von Interactive SQL angeben

Der Standardname der Neulade-Befehlsdatei ist reload.sql im aktuellen Verzeichnis. Sie können mit dieser Option einen anderen Dateinamen angeben.

-u

Daten während des Entladungsprozesses nicht sortieren. 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

Ausführliche Meldungen anzeigen. Der Name der Tabelle, die entladen wird, die Anzahl der entladenen Zeilen und die verwendete SELECT-Anweisung.

-xf

Fremdschlüssel ausschließen. Diese Option kann verwendet werden, wenn eine entfernte Datenbank eine Teilmenge des Schemas der konsolidierten Datenbank enthält und einige Fremdschlüssel-Referenzen nicht in der entfernten Datenbank vorhanden sind.

-xh Prozedur-Hooks ausschließen
-xi

Ein externes Entladen und ein internes Neuladen durchführen. 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 nehmen den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver nehmen.

-xp

Keine gespeicherte Prozedur aus der Datenbank extrahieren.

-xt

Keine Trigger aus der Datenbank extrahieren

-xv

Keine Ansichten aus der Datenbank extrahieren.

-xx

Ein externes Entladen und ein externes Laden durchführen. 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 nehmen den Pfad der Datendateien relativ zum aktuellen Arbeitsverzeichnis von dbxtract, während interne Anweisungen den Pfad relativ zum Datenbankserver nehmen.

-y

Befehlsdatei ohne Bestätigung überschreiben. Wenn diese Option nicht angegeben wird, werden Sie aufgefordert, das Ersetzen einer bestehenden Befehlsdatei zu bestätigen.

Verzeichnis Das Verzeichnis angeben, in das die Dateien geschrieben werden. Nicht erforderlich, wenn Sie -an oder -ac verwenden.
Subskribent Den Subskribenten angeben, für den die Datenbank extrahiert wird
Bemerkungen

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 Befehlsdatei und eine Reihe von dazugehörenden Datendateien. Die Befehlsdatei kann mit einer neu initialisierten 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.

Siehe auch