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

SQL Anywhere 12.0.1 (Deutsch) » SQL Remote » Praktische Einführung: Einrichten eines Replikationssystems mit dem HTTP-Nachrichtensystem

 

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

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

 Hinzufügen von Daten zur konsolidierten Datenbank
  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. Trennen Sie die Verbindung zu Interactive SQL.

 Hinzufügen von Daten zur entfernten Datenbank
  1. Wenn Sie derzeit nicht mit der entfernten Datenbank (rem) verbunden sind, führen Sie folgenden Befehl aus:

    dbisql -c "SERVER=rem;DBN=rem;UID=DBA;PWD=sql"
  2. 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;
  3. Trennen Sie die Verbindung zu Interactive SQL.

 Replizieren von Änderungen zwischen der konsolidierten Datenbank und der entfernten Datenbank
  1. 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"
  2. 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
  3. 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.

 Überprüfen der Daten in der konsolidierten und der entfernten Datenbank
  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. 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
  3. Trennen Sie die Verbindung zu Interactive SQL.

  4. Wenn Sie derzeit nicht mit der entfernten Datenbank (rem) verbunden sind, führen Sie folgenden Befehl aus:

    dbisql -c "SERVER=rem;DBN=rem;UID=DBA;PWD=sql"

    Ü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
  5. Trennen Sie die Verbindung zu Interactive SQL.

  6. Fahren Sie fort mit Lektion 5: Aufräumen.