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 1: Erstellen der konsolidierten Datenbank

Erstellen Sie die Verzeichnisse, die benötigt werden, um die Datenbanken und ihre Transaktionslogs sowie die Verzeichnisstruktur für die Nachrichten zu speichern. Außerdem legen Sie das Schema der konsolidierten Datenbank fest, einschließlich der Erstellung des entfernten Benutzers sowie der Publikation und der Subskription, die für die Replikation der Daten benötigt werden.

Voraussetzungen

Sie müssen die SYS_REPLICATION_ADMIN_ROLE-Systemrolle haben.

Kontext und Bemerkungen

Wenn SQL Remote in der konsolidierten Datenbank ausgeführt wird, verwendet es das FILE-Nachrichtensystem, um Nachrichten zu senden und zu empfangen, aber die entfernte Datenbank verwendet das HTTP-Nachrichtensystem.

 Aufgabe
  1. Erstellen Sie die folgenden Verzeichnisse für die konsolidierte Datenbank, die entfernte Datenbank und die Nachrichtenserver-Datenbank:

    • c:\tutorial
    • c:\tutorial\cons
    • c:\tutorial\rem
    • c:\tutorial\msgsrv
  2. Erstellen Sie die folgenden Verzeichnisse für die von der konsolidierten Datenbank und der entfernten Datenbank generierten Nachrichtendateien:

    • c:\tutorial\messages
    • c:\tutorial\messages\cons
    • c:\tutorial\messages\rem
  3. Führen Sie im Verzeichnis c:\tutorial\cons den folgenden Befehl aus, um die konsolidierte Datenbank (cons) zu erstellen:

    dbinit -dba DBA,sql cons.db
  4. Verbinden Sie sich über Interactive SQL als Benutzer mit der SYS_REPLICATION_ADMIN_ROLE-Systemrolle mit der konsolidierten Datenbank (cons) und stellen Sie beim Trennen der Verbindung sicher, dass Sie die Datenbank laufen lassen, indem Sie für den AutoStop-Verbindungsparameter "AutoStop=NO" angeben:

    dbisql -c "UID=DBA;PWD=sql;SERVER=cons;DBF=c:\tutorial\cons\cons.db;autostop=no"
    
  5. Führen Sie die folgende Anweisung aus, um die globale Datenbank-ID für die konsolidierte Datenbank (cons) festzulegen (die benötigt wird, damit bei Verwendung des GLOBAL AUTOINCREMENT-Standardwerts für alle Datenbanken unterschiedliche Primärschlüssel gewählt werden):

    SET OPTION public.global_database_id=0;
  6. Das Schema für die Datenbank in dieser praktischen Einführung besteht aus einer einzelnen Tabelle, die repliziert wird, und alle Spalten und Zeilen aus der Tabelle werden für jeden entfernten Benutzer repliziert. Führen Sie die folgenden Anweisungen in der konsolidierten Datenbank (cons) aus, um die einzelne Tabelle in der Datenbank zu erstellen:

    CREATE TABLE employees (
         employee_id BIGINT NOT NULL DEFAULT GLOBAL AUTOINCREMENT(1000000) PRIMARY KEY,
         first_name VARCHAR(128) NOT NULL,
         last_name VARCHAR(128) NOT NULL,
         hire_date TIMESTAMP NOT NULL DEFAULT TIMESTAMP
    );
  7. Führen Sie die folgenden Anweisungen in der konsolidierten Datenbank (cons) aus, um der employees-Tabelle Beispieldaten hinzuzufügen:

    INSERT INTO employees (first_name, last_name) VALUES ('Kelly', 'Meloy');
    INSERT INTO employees (first_name, last_name) VALUES ('Melisa', 'Boysen');
    COMMIT;
    
  8. Führen Sie die folgende Anweisung in der konsolidierten Datenbank (cons) aus, um zu bestätigen, dass die Tabelle erstellt und mit Daten gefüllt wurde:

    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
  9. In dieser praktischen Einführung werden dem Publikationseigentümer und dem entfernten Benutzer keine Kennwörter zugeordnet. Solange die Benutzer in der Datenbank vorhanden sind, können Sie also für diese Benutzer keine Verbindung zur Datenbank herstellen. Führen Sie die folgende Anweisung aus, um den Benutzer cons mit den Privilegien CONNECT und PUBLISH zu erstellen:

    GRANT CONNECT TO cons;
    GRANT PUBLISH TO cons;
  10. Aus Gründen der Performance kann das HTTP-Nachrichtensystem nur in der entfernten Datenbank verwendet werden und nicht in der konsolidierten Datenbank. Die folgenden Anweisungen konfigurieren die Verwendung des FILE-basierten Nachrichtensystems in der konsolidierten Datenbank:

    CREATE REMOTE MESSAGE TYPE FILE ADDRESS 'cons';
    SET REMOTE FILE OPTION public.directory='c:\\tutorial\\messages';
    SET REMOTE FILE OPTION public.debug='yes'; 
  11. Führen Sie die folgenden Anweisungen aus, um den entfernten Benutzer rem ohne Kennwort zu erstellen und ihm REMOTE-Privilegien zu erteilen, während Sie die Adresse des Benutzers im FILE-Nachrichtensystem festlegen:

    GRANT CONNECT TO rem;
    GRANT REMOTE TO rem TYPE FILE ADDRESS 'rem';
  12. Eine Publikation beschreibt die Datenmenge, die repliziert werden soll. Erstellen Sie eine Publikation namens pub_employees, die alle Zeilen der employees-Tabelle repliziert. Sie subskribieren einen Benutzer für eine Publikation, indem Sie eine Subskription erstellen.

    CREATE PUBLICATION pub_employees ( TABLE employees );
    CREATE SUBSCRIPTION TO pub_employees FOR rem;
  13. Trennen Sie die Verbindung zu Interactive SQL.

Ergebnisse

In dieser Lektion erstellen Sie die Verzeichnisse, die benötigt werden, um die Datenbanken und deren Transaktionslogs sowie die Verzeichnisstruktur für die Nachrichten zu speichern. Das Schema der konsolidierten Datenbank wird definiert, einschließlich der Erstellung des entfernten Benutzers sowie der Publikation und der Subskription, die für die Replikation der Daten benötigt werden.

Nächste Schritte

Gehen Sie weiter zu Lektion 2: Erstellen des Nachrichtenservers.