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

In dieser Lektion erstellen Sie die Verzeichnisse, die benötigt werden, um die Datenbanken und deren Transaktionslogs zu speichern, sowie die Verzeichnisstruktur für die Nachrichten. 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. 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.

 Erstellen der konsolidierten Datenbank und der Verzeichnisse für die praktische Einführung
  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 cons.db
  4. Verbinden Sie sich über Interactive SQL als Benutzer mit DBA-Berechtigung 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 Berechtigungen 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-Berechtigungen 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.

  14. Fahren Sie fort mit Lektion 2: Erstellen des Nachrichtenservers.