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 und der konsolidierten Datenbank als Nachrichtenserver über Relay Server

 

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. Für diese praktische Einführung lautet der Name des Computers, auf dem der konsolidierten Datenbank und damit die Nachrichtenserver läuft, machine_cons.

 Erstellen der konsolidierten Datenbank und der Verzeichnisse für die praktische Einführung
  1. Erstellen Sie die folgenden Verzeichnisse für die konsolidierte Datenbank und die entfernte Datenbank:

    • c:\tutorial
    • c:\tutorial\cons
    • c:\tutorial\rem
  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. Starten Sie die konsolidierte Datenbank:

    dbsrv12 -n cons c:\tutorial\cons\cons.db -xs http(port=8033)

    -xs http(8033) ist in der Befehlszeile erforderlich, da dieser Datenbankserver HTTP-Anforderungen aus der entfernten Datenbank akzeptiert und auf die Nachrichtendateien im Verzeichnis c:\tutorial\messages zugreift. Beim Start des Datenbankservers sind keine Webdienste definiert, sie werden in der nächsten Lektion erstellt. In dieser Lektion starten Sie nur den Personal Datenbankserver, sodass nur SQL Remote-Prozesse auf diesem Computer über HTTP mit dem Nachrichtenserver kommunizieren können. In einer Produktionsumgebung wird gewöhnlich der Netzwerkserver verwendet, sodass SQL Remote-Prozesse auf anderen Computern ebenfalls Zugriff auf die Webdienste haben. In dieser Lektion haben Sie einen Netzwerkserver gestartet und ihm den Namen "cons" gegeben. Wenn in Ihrem Netzwerk bereits ein anderer Datenbankserver mit diesem Namen läuft, müssen Sie einen anderen Namen für den Netzwerkserver wählen und die Verbindungszeichenfolgen im Rest dieser praktischen Einführung so ändern, dass der andere Name verwendet wird. Weitere Hinweise zur Verwendung der Option -xs finden Sie unter -xs - dbeng12/dbsrv12-Serveroption.

  5. Verbinden Sie sich über Interactive SQL als Benutzer mit DBA-Berechtigung mit der konsolidierten Datenbank (cons):

    dbisql -c "UID=DBA;PWD=sql;SERVER=cons;DBN"
    
  6. 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;
  7. Das Schema für die Datenbank in dieser praktischen Einführung besteht aus einer einzelnen Tabelle 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
    );
  8. 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;
  9. 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
  10. In dieser praktischen Einführung werden dem Publikationseigentümer und dem entfernten Benutzer Kennwörter zugeordnet, da die konsolidierte Datenbank als Nachrichtenserver für das HTTP-Nachrichtensystem fungiert. 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;
  11. 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'; 
  12. 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 IDENTIFIED BY rem;
    GRANT REMOTE TO rem TYPE FILE ADDRESS 'rem';
  13. 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;
  14. Trennen Sie die Verbindung zu Interactive SQL.

  15. Fahren Sie fort mit Lektion 2: Konfigurieren des Relay Servers.