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 Anywhere Server - Datenbankadministration » Hochverfügbarkeit und Scale-Out-Systeme mit Schreibschutz » Datenbankspiegelung » Praktische Einführung: Datenbankspiegelungssysteme erstellen

 

Lektion 1: Datenbankspiegelungssysteme erstellen

Erstellen Sie ein Spiegelungssystem.

Voraussetzungen

In dieser Lektion wird davon ausgegangen, dass Sie die Rollen und Privilegien haben, die im Abschnitt "Privilegien" am Anfang dieser praktischen Einführung aufgeführt sind: Praktische Einführung: Datenbankspiegelungssysteme mit mehreren Datenbanken und einem gemeinsamen Arbiterserver erstellen.

 Aufgabe
  1. Erstellen Sie folgende Verzeichnisse: c:\server1, c:\server2 und c:\arbiter.

  2. Erstellen Sie eine Datenbank namens mirror_demo.db, die Daten aus der Beispieldatenbank enthält und ein Transaktionslog hat. Datenbanken ohne Transaktionslog können nicht im Spiegelungsmodus gestartet werden. Führen Sie den folgenden Befehl aus:

    newdemo c:\server1\mirror_demo.db
  3. Starten Sie den ersten Datenbankserver. Führen Sie den folgenden Befehl aus:

    dbsrv16 -n mirror_server1 -x "tcpip(PORT=6871)" -su sql "c:\server1\mirror_demo.db" -xp on
    • -n   Benennt den Datenbankserver.

    • -su   Gibt das Kennwort für die Dienstprogrammdatenbank an. Es wird empfohlen, dass Sie die Option -su einbeziehen, um das Kennwort für die Dienstprogrammdatenbank anzugeben. Auf diese Weise können Sie ggf. eine Verbindung mit der Dienstprogrammdatenbank herstellen, um den Datenbankserver herunterzufahren.Siehe Einen Datenbankserver in einem Spiegelungssystem stoppen und Fehlerbehandlung: Primärserver kann nicht neu gestartet werden.

    • -x   Gibt den Port an, auf dem der Datenbankserver läuft

    • -xp on   Gibt an, dass der Datenbankserver für die Beteiligung an einem Datenbankspiegelungssystem zur Verfügung steht.

  4. Stellen Sie über Interactive SQL eine Verbindung mit der Datenbank her. Führen Sie den folgenden Befehl aus:

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server1"
  5. Definieren Sie die Partnerserver und den Arbiterserver für die Datenbank mithilfe der CREATE MIRROR SERVER-Anweisung.

    Führen Sie die folgenden Anweisungen aus, um mirror_server1 und mirror_server2 als Partnerserver im Datenbankspiegelungssystem zu definieren:

    CREATE MIRROR SERVER mirror_server1
    AS PARTNER
    connection_string='SERVER=mirror_server1;host=localhost:6871'
    state_file='c:\\server1\\server1.state';
    
    CREATE MIRROR SERVER mirror_server2
    AS PARTNER
    connection_string='SERVER=mirror_server2;host=localhost:6872'
    state_file='c:\\server2\\server2.state';

    Mit den nachstehenden Anweisungen wird Folgendes definiert:

    • mirror_demo_primary als alternativer Servername für mirror_server1. mirror_demo_primary ist der Name, unter dem sich Clients mit dem als Primärserver fungierenden Datenbankserver verbinden.

    • mirror_demo_mirror als alternativer Servername für mirror_server2. mirror_demo_mirror ist der Name, unter dem sich Clients mit dem als Spiegelserver fungierenden Datenbankserver verbinden.

    Die Rollen des Primär- und des Spiegelservers sind zum Konfigurieren der Datenbankserver im System erforderlich: Die Namen, die Sie diesen Servern geben, werden als alternative Servernamen benutzt, wenn Clients eine Verbindung zu den Datenbankservern herstellen. Jeder der beiden Partnerserver kann als Primär- oder Spiegelserver agieren.

    CREATE MIRROR SERVER mirror_demo_primary
    AS PRIMARY
    connection_string='SERVER=mirror_demo_primary;HOST=localhost:6871,localhost:6872';
    CREATE MIRROR SERVER mirror_demo_mirror
    AS MIRROR
    connection_string='SERVER=mirror_demo_mirror;HOST=localhost:6871,localhost:6872';

    Führen Sie die folgende SQL-Anweisung aus, um den Arbiterserver für das Datenbankspiegelungssystem zu definieren:

    CREATE MIRROR SERVER demo_arbiter
    AS ARBITER
    connection_string ='SERVER=demo_arbiter;HOST=localhost:6870';
  6. Legen Sie die Authentifizierungszeichenfolge für die Datenbank fest. Führen Sie die folgende Anweisung aus:

    SET MIRROR OPTION authentication_string='abc';
  7. Verwenden Sie das Sicherungsdienstprogramm (dbbackup), um die Datenbankdatei und das Transaktionslog aus c:\server1 in c:\server2 zu kopieren. Führen Sie den folgenden Befehl aus:

    dbbackup -c "UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=mirror_demo" c:\server2
  8. Starten Sie den zweiten Partnerserver. Führen Sie den folgenden Befehl aus:

    dbsrv16 -n mirror_server2 -x "tcpip(PORT=6872;DOBROAD=no)" -su sql "c:\server2\mirror_demo.db" -xp on
  9. Starten Sie den Arbiterserver. Führen Sie den folgenden Befehl aus:

    dbsrv16 -n demo_arbiter -su sql -x "tcpip(PORT=6870;DOBROAD=no)" -xf "c:\arbiter\arbiter.state" -xa "AUTH=abc;DBN=mirror_demo"
    • -xf   Gibt den Speicherort der Statusinformationsdatei für den Arbiterserver an

    • -xa   Gibt den Namen der gespiegelten Datenbank(en) und die Authentifizierungszeichenfolge (in diesem Fall abc) für den Arbiterserver an. Diese Authentifizierungszeichenfolge muss in einem Datenbankspiegelungssystem von allen Servern (Arbiter-, Primär- und Spiegelserver) verwendet werden.

  10. Starten Sie Interactive SQL und stellen Sie eine Verbindung mit dem Primärserver her, indem Sie den alternativen Servernamen für den Primärserver verwenden. Führen Sie den folgenden Befehl aus:

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary;HOST=localhost:6871,localhost:6872"
  11. Fügen Sie Daten zur Datenbank hinzu. Führen Sie die folgenden Anweisungen aus:

    CREATE TABLE test (col1 INTEGER, col2 CHAR(32));
    INSERT INTO test VALUES(1, 'Hello from server1');
    COMMIT;
  12. (Optional) Wenn Sie den Namen des Datenbankservers ermitteln möchten, mit dem Sie verbunden sind, verwenden Sie die ServerName-Datenbankservereigenschaft. Führen Sie die folgende Anweisung aus:

    SELECT PROPERTY( 'ServerName' );
  13. Schließen Sie alle Interactive SQL-Fenster.

Ergebnisse

Das Datenbankspiegelungssystem läuft.

 Siehe auch