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: Einrichten eines Replikationssystems unter Verwendung des HTTP-Nachrichtensystems

 

Lektion 4: Hinzufügen und Replizieren von Daten in konsolidierter und entfernter Datenbank

Fügen Sie Daten zur konsolidierten und entfernten Datenbank hinzu, führen Sie SQL Remote aus, um die Änderungen zu replizieren, und bestätigen Sie anschließend, dass die Daten in beiden Datenbanken konsistent sind.

Voraussetzungen

Sie müssen die SYS_REPLICATION_ADMIN_ROLE-Systemrolle haben.

 Aufgabe
  1. Wenn Sie derzeit nicht mit der konsolidierten Datenbank (cons) verbunden sind, führen Sie folgenden Befehl aus:

    dbisql -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql"
  2. Führen Sie die folgenden Anweisungen in der konsolidierten Datenbank (cons) aus, um der employees-Tabelle zusätzliche Beispieldaten hinzuzufügen:

    INSERT INTO employees (first_name, last_name) VALUES ('Javier', 'Spoor');
    COMMIT;
  3. Führen Sie die folgenden Anweisungen in der entfernten Datenbank (rem) aus, um der employees-Tabelle zusätzliche Beispieldaten hinzuzufügen:

    INSERT INTO employees (first_name, last_name) VALUES ('Nelson', 'Kreitzer');
    COMMIT;
  4. Führen Sie in der konsolidierten Datenbank (cons) den Nachrichtenagenten aus:

    dbremote -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql" -qc -v -o c:\tutorial\cons1.txt

    Dieser durchsucht das Transaktionslog der konsolidierten Datenbank (cons) und generiert mit dem FILE-Nachrichtensystem eine Nachricht für die entfernte Datenbank (rem). Da der Systemparameter für Fehlerbehebungsmeldungen in der konsolidierten Datenbank auf das FILE-Nachrichtensystem eingestellt wurde, können Sie die Datei c:\tutorial\cons1.txt auf Fehlerbehebungsmeldungen überprüfen, die anzeigen, dass Meldungen in das Verzeichnis c:\tutorial\messages\rem geschrieben werden. Beispiel:

    I. 2011-03-25 11:03:31. Processing transactions from active transaction log
    I. 2011-03-25 11:03:31. Sending message to "rem" (0-0000000000-0000550994-0)
    I. 2011-03-25 11:03:31. sopen "c:\tutorial\messages\rem\cons.0"
    I. 2011-03-25 11:03:31. write " c:\tutorial\messages\rem\cons.0"
    I. 2011-03-25 11:03:31. close " c:\tutorial\messages\rem\cons.0"
  5. Führen Sie in der entfernten Datenbank (rem) den Nachrichtenagenten aus:

    dbremote -c "SERVER=rem;DBN=rem;UID=DBA;PWD=sql" -qc -v -o c:\tutorial\rem.txt

    Unter Verwendung des HTTP-Messaging-Systems wird durch diesen Befehl die soeben von der konsolidierten Datenbank generierte Nachricht empfangen und übernommen. Danach wird das Transaktionslog durchsucht und eine Nachricht mit der neuen Zeile, die in der entfernten Datenbank hinzugefügt wurde, wird an die konsolidierte Datenbank zurückgesendet. Da der Systemparameter für Fehlerbehebungsmeldungen in der konsolidierten Datenbank auf das HTTP-Nachrichtensystem eingestellt wurde, können Sie die Datei c:\tutorial\rem.txt auf Fehlerbehebungsmeldungen überprüfen, die anzeigen, dass das HTTP-Nachrichtensystem verwendet wird. Beispiel:

    I. 2011-03-25 11:10:02. Sending message to "cons" (0-0000000000-0000557411-0)
    I. 2011-03-25 11:10:02. HTTPWriteMessage "rem.0"
    I. 2011-03-25 11:10:02. HTTPWriteMessage: success -- filename  "rem.0"
    I. 2011-03-25 11:10:02. HTTPDisconnect
  6. Führen Sie in der konsolidierten Datenbank (cons) den Nachrichtenagenten aus:

    dbremote -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql" -qc -v -o c:\tutorial\cons2.txt

    Unter Verwendung des FILE-basierten Nachrichtensystems wird durch diesen Befehl die soeben von der entfernten Datenbank generierte Nachricht empfangen und übernommen.

  7. Um zu überprüfen, ob die konsolidierte Datenbank alle vier Datenzeilen enthält, können Sie die folgende Anweisung ausführen und den Inhalt der employees-Tabelle anzeigen:

     SELECT * FROM employees;

    Die Abfrage gibt die folgenden Daten aus der employees-Tabelle zurück, obwohl die hire_date-Spalte die Uhrzeit enthält, zu der Sie die Zeile eingefügt haben, und nicht die in der folgenden Tabelle aufgeführten Werte:

    employee_id first_name last_name hire_date
    1 Kelly Meloy 2011-03-25 08:27:56.310
    2 Melisa Boysen 2011-03-25 08:27:56.310
    3 Javier Spoor 2011-03-25 08:30:26.110
    102000001 Nelson Kreitzer 2011-03-25 08:31:51.970
  8. Überprüfen Sie, ob die entfernte Datenbank (rem) alle vier Datenzeilen enthält, indem Sie die folgende Anweisung ausführen, um den Inhalt der employees-Tabelle anzuzeigen:

    SELECT * FROM employees;

    Die Abfrage gibt die folgenden Daten aus der employees-Tabelle zurück, obwohl die hire_date-Spalte die Uhrzeit enthält, zu der Sie die Zeile eingefügt haben, und nicht die in der folgenden Tabelle aufgeführten Werte:

    employee_id first_name last_name hire_date
    1 Kelly Meloy 2011-03-25 08:27:56.310
    2 Melisa Boysen 2011-03-25 08:27:56.310
    3 Javier Spoor 2011-03-25 08:30:26.110
    102000001 Nelson Kreitzer 2011-03-25 08:31:51.970
  9. Trennen Sie die Verbindung zu Interactive SQL.

Ergebnisse

Die Daten werden der konsolidierten und der entfernten Datenbank hinzugefügt, die Änderungen werden repliziert, und die Datenkonsistenz wurde überprüft.

Nächste Schritte

Gehen Sie weiter zu Lektion 5: Aufräumen.