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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Remote » Praktische Einführung: SQL Remote-System erstellen

 

Lektion 5: Extrahieren der entfernten Datenbank

Erstellen Sie eine Datenbank für einen entfernten Benutzer, indem Sie die entfernte Datenbank aus der konsolidierten Datenbank (hq) extrahieren.

Voraussetzungen

Sie müssen die SYS_REPLICATION_ADMIN_ROLE-Systemrolle haben.

Kontext und Bemerkungen

Die entfernte Datenbank muss so konfiguriert werden, dass sie Nachrichten senden und empfangen und an einem SQL Remote-System teilnehmen kann. Wie die konsolidierte Datenbank (hq) benötigt auch die entfernte Datenbank einen aktuellen Publikationseigentümer (CURRENT PUBLISHER), um die Quelle der ausgehenden Nachrichten festzulegen. Außerdem muss die konsolidierte Datenbank (hq) als Subskribent gekennzeichnet sein.

Führen Sie das Dienstprogramm dbxtract aus, um eine entfernte Datenbank zu erstellen, die Folgendes enthält:

  • Eine Subskription für die konsolidierte Datenbank

  • Eine Publikation

  • Eine aktuelle Kopie der Daten

 Aufgabe
  1. Extrahieren Sie das Schema der entfernten Datenbank aus der konsolidierten Datenbank (hq) für den Benutzer field_user, indem Sie den folgenden Befehl im Verzeichnis c:\tutorial ausführen:

    dbxtract -v -c "UID=DBA;PWD=sql;SERVER=server_hq;DBF=C:\tutorial\hq.db" c:\tutorial field_user

    Dieser Befehl:

    • Erstellt eine SQL-Skriptdatei namens reload.sql im aktuellen Verzeichnis. Die reload.sql Datei enthält das Schema sowie die notwendigen Anweisungen, um dieses in eine neue Datenbank zu laden.

    • Erstellt eine Datendatei im Verzeichnis c:\tutorial.

    • Startet die Subskriptionen für den entfernten Benutzer.

  2. Führen Sie im Verzeichnis c:\tutorial den folgenden Befehl aus, um die entfernte Datenbank (field) zu erstellen:

    dbinit -dba DBA,sql field.db 
    Vorsicht

    Speichern Sie in einer Produktionsumgebung nicht zwei replizierende Datenbanken in demselben Verzeichnis.

  3. Laden Sie die Datenbankinformationen in die entfernte Datenbank (field).

    Stellen Sie aus Interactive SQL eine Verbindung mit der entfernten Datenbank (field) als Benutzer mit der SYS_REPLICATION_ADMIN_ROLE-Systemrolle her:

    dbisql -c "UID=DBA;PWD=sql;SERVER=server_field;DBF=c:\tutorial\field.db"
  4. Führen Sie die folgende Anweisung aus, um die Datei reload.sql zu lesen:

    READ C:\tutorial\reload.sql;

    Die Skriptdatei reload.sql:

    • Erstellt einen Nachrichtentyp in der entfernten Datenbank (field).

    • Erteilt das PUBLISH-Privileg für die entfernte Datenbank (field).

    • Erstellt die Tabellen SalesReps und Customers in der entfernten Datenbank (field). Diese Tabellen enthalten dieselben Daten wie in der konsolidierten Datenbank (hq).

    • Erstellt eine Publikation, um die Daten zu identifizieren, die repliziert werden.

    • Erstellt die Subskription für die konsolidierte Datenbank (hq) und startet die Subskription.

  5. Führen Sie die folgenden Anweisungen aus, um sicherzustellen, dass die Tabellen erstellt wurden:

    SELECT * FROM SalesReps;

    Die oben stehende Abfrage gibt die folgenden Daten aus der SalesReps-Tabelle zurück:

    rep_key name
    rep1 Field User
    rep2 Another User
    SELECT * FROM Customers;

    Die oben stehende Abfrage gibt die folgenden Daten aus der Customers-Tabelle zurück:

    cust_key name rep_key
    cust1 Ocean Sports rep1

Ergebnisse

Die entfernte Datenbank wird für den entfernten Benutzer erstellt.