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 mit mehreren Datenbanken und einem gemeinsamen Arbiterserver erstellen

 

Lektion 1: Datenbankspiegelungssysteme mit drei Datenbanken und einem Arbiterserver erstellen

Erstellen Sie ein Spiegelungssystem mit drei gespiegelten Datenbanken, die alle denselben Arbiterserver verwenden.

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
    • c:\arbiter
  2. Erstellen Sie Kopien der SQL Anywhere 16-Beispieldatenbank (demo.db) mithilfe der Datei newdemo.bat. Führen Sie den folgenden Befehl aus:

    newdemo.bat c:\server1\one.db
  3. Führen Sie den folgenden Befehl aus:

    newdemo.bat c:\server1\two.db
  4. Führen Sie vom Verzeichnis c:\server1 aus den folgenden Befehl aus:

    newdemo.bat c:\server1\three.db
  5. Starten Sie den Datenbankserver namens server_1:

    dbsrv16 -n server1 -x tcpip(PORT=6871) -su sql c:\server1\one.db -xp on c:\server1\two.db -xp on c:\server1\three.db -xp on

    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.

  6. Stellen Sie von Interactive SQL aus eine Verbindung zur Datenbank "one" her und definieren Sie die erforderlichen Spiegelungsobjekte:

    dbisql -c "UID=DBA;PWD=sql;SERVER=server1;DBN=one"
    1. Definieren Sie server1 als Partnerserver für Datenbank "one":

      CREATE MIRROR SERVER server1
      AS PARTNER
      connection_string='SERVER=server1;host=localhost:6871'
      state_file='c:\\server1\\server1state.txt';
    2. Definieren Sie den Datenbankserver primary_one als logischen Primärserver für Datenbank "one":

      CREATE MIRROR SERVER primary_one
      AS PRIMARY
      connection_string='SERVER=primary_one;host=localhost:6871,localhost:6872';
    3. Definieren Sie server2 als Partnerserver für Datenbank "one":

      CREATE MIRROR SERVER server2
      AS PARTNER
      connection_string='SERVER=server2;host=localhost:6872'
      state_file='c:\\server2\\server2state.txt';
    4. Definieren Sie den Datenbankserver mirror_one als logischen Spiegelserver für die Datenbank "one":

      CREATE MIRROR SERVER mirror_one
      AS MIRROR
      connection_string='SERVER=mirror_one;host=localhost:6871,localhost:6872';
    5. Definieren Sie den Arbiterserver:

      CREATE MIRROR SERVER arbiter
      AS ARBITER
      connection_string='SERVER=arbiter;HOST=localhost:6870';
    6. Setzen Sie die Spiegelungsoptionen für das Datenbankspiegelungssystem:

      SET MIRROR OPTION authentication_string='abc';
    7. Trennen Sie die Verbindung zu Interactive SQL.

    8. Erstellen Sie eine Sicherungskopie der Datenbank im Verzeichnis c:\server2:

      dbbackup -c "UID=DBA;PWD=sql;SERVER=server1;DBN=one" c:\server2
  7. Stellen Sie von Interactive SQL aus eine Verbindung zur Datenbank "two" her und definieren Sie die erforderlichen Spiegelungsobjekte:

    dbisql -c "UID=DBA;PWD=sql;SERVER=server1;DBN=two"
    1. Definieren Sie server1 als Partnerserver für Datenbank "two":

      CREATE MIRROR SERVER server1
      AS PARTNER
      connection_string='SERVER=server1;host=localhost:6871'
      state_file='c:\\server1\\server1state.txt';
    2. Definieren Sie den Datenbankserver primary_two als logischen Primärserver für Datenbank "two":

      CREATE MIRROR SERVER primary_two
      AS PRIMARY
      connection_string='SERVER=primary_two;host=localhost:6871,localhost:6872';
    3. Definieren Sie server2 als Partnerserver für Datenbank "two":

      CREATE MIRROR SERVER server2
      AS PARTNER
      connection_string='SERVER=server2;host=localhost:6872'
      state_file='c:\\server2\\server2state.txt';
    4. Definieren Sie den Datenbankserver mirror_two als logischen Spiegelserver für die Datenbank "two":

      CREATE MIRROR SERVER mirror_two
      AS MIRROR
      connection_string='SERVER=mirror_two;host=localhost:6871,localhost:6872';
    5. Definieren Sie den Arbiterserver:

      CREATE MIRROR SERVER arbiter
      AS ARBITER
      connection_string='SERVER=arbiter;HOST=localhost:6870';
    6. Setzen Sie die Spiegelungsoptionen für das Datenbankspiegelungssystem:

      SET MIRROR OPTION authentication_string='def';
    7. Trennen Sie die Verbindung zu Interactive SQL.

    8. Erstellen Sie eine Sicherungskopie der Datenbank im Verzeichnis c:\server2:

      dbbackup -c "UID=DBA;PWD=sql;SERVER=server1;DBN=two" c:\server2
  8. Stellen Sie von Interactive SQL aus eine Verbindung zur Datenbank "three" her und definieren Sie die erforderlichen Spiegelungsobjekte:

    dbisql -c "UID=DBA;PWD=sql;SERVER=server1;DBN=three"
    1. Definieren Sie server1 als Partnerserver für Datenbank "three":

      CREATE MIRROR SERVER server1
      AS PARTNER
      connection_string='SERVER=server1;host=localhost:6871'
      state_file='c:\\server1\\server1state.txt';
    2. Definieren Sie den Datenbankserver primary_three als logischen Primärserver für Datenbank "three":

      CREATE MIRROR SERVER primary_three
      AS PRIMARY
      connection_string='SERVER=primary_three;host=localhost:6871,localhost:6872';
    3. Definieren Sie server2 als Partnerserver für Datenbank "three":

      CREATE MIRROR SERVER server2
      AS PARTNER
      connection_string='SERVER=server2;host=localhost:6872'
      state_file='c:\\server2\\server2state.txt';
    4. Definieren Sie den Datenbankserver mirror_three als logischen Spiegelserver für die Datenbank "three":

      CREATE MIRROR SERVER mirror_three
      AS MIRROR
      connection_string='SERVER=mirror_three;host=localhost:6871,localhost:6872';
    5. Definieren Sie den Arbiterserver:

      CREATE MIRROR SERVER arbiter
      AS ARBITER
      connection_string='SERVER=arbiter;HOST=localhost:6870';
    6. Setzen Sie die Spiegelungsoptionen für das Datenbankspiegelungssystem:

      SET MIRROR OPTION authentication_string='ghi';
    7. Trennen Sie die Verbindung zu Interactive SQL.

    8. Erstellen Sie eine Sicherungskopie der Datenbank im Verzeichnis c:\server2:

      dbbackup -c "UID=DBA;PWD=sql;SERVER=server1;DBN=three" c:\server2
  9. Starten Sie den Datenbankserver namens server_2:

    dbsrv16 -n server2 -x tcpip(PORT=6872) -su sql c:\server2\one.db -xp on c:\server2\two.db -xp on c:\server2\three.db -xp on
  10. Starten Sie den Arbiterserver.

    dbsrv16 -n arbiter -su sql -x tcpip(port=6870) -xf c:\arbiter\arbiterstate.txt -xa "AUTH=abc,def,ghi;DBN=one,two,three"

Ergebnisse

Nach dem Starten von server2 wird im Meldungsfenster des Datenbankservers server1 angezeigt, dass server1 der Primärserver im Spiegelungssystem für die Datenbanken one, two und three ist. Außerdem wird im Meldungsfenster angezeigt, dass die Spiegeldatenbanken für one, two und three (Partner) mit server1 verbunden sind.

Im Meldungsfenster des Arbiterdatenbankservers wird angezeigt, dass server1 und server2 verbunden sind.