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.
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" |
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; |
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; |
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" |
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 |
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.
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 |
Ü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 |
Trennen Sie die Verbindung zu Interactive SQL.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |