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.
Erstellen Sie folgende Verzeichnisse: c:\server1, c:\server2 und c:\arbiter.
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 |
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.
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" |
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'; |
Legen Sie die Authentifizierungszeichenfolge für die Datenbank fest. Führen Sie die folgende Anweisung aus:
SET MIRROR OPTION authentication_string='abc'; |
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 |
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 |
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.
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" |
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; |
(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' ); |
Schließen Sie alle Interactive SQL-Fenster.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |