ミラーリングシステムを作成します。
前提条件
このレッスンでは、このチュートリアルの開始時に、権限のセクションで一覧されているロールと権限を持っていることを前提としています。 チュートリアル:監視サーバを共有している複数データベースでデータベースミラーリングシステムを作成する
次のディレクトリを作成します。c:\server1、c:\server2、c:\arbiter。
サンプルデータベースのデータを格納し、トランザクションログを持つ、mirror_demo.db というデータベースを作成します。トランザクションログを持っていないデータベースをミラーリングモードで起動することはできません。次のコマンドを実行します。
newdemo c:\server1\mirror_demo.db |
1 番目のデータベースサーバを起動します。次のコマンドを実行します。
dbsrv16 -n mirror_server1 -x "tcpip(PORT=6871)" -su sql "c:\server1\mirror_demo.db" -xp on |
-n データベースサーバに名前を付けます。
-su ユーティリティデータベースにパスワードを指定します。-su オプションを含めてユーティリティデータベースのパスワードを指定することをおすすめします。そうすることで、必要に応じてユーティリティデータベースに接続してデータベースサーバをシャットダウンできるようになります。ミラーリングシステムのデータベースサーバの停止とトラブルシューティング:プライマリサーバが起動できないを参照してください。
-x データベースサーバが実行されているポートを指定します。
-xp on データベースサーバがデータベースミラーリングシステムに参加可能であることを示します。
Interactive SQL からデータベースに接続します。次のコマンドを実行します。
dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server1" |
CREATE MIRROR SERVER 文を使用して、データベースのパートナサーバと監視サーバを定義します。
次の文を実行して、mirror_server1 と mirror_server2 を データベースミラーリングシステムにおけるパートナサーバとして定義します。
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'; |
次の文を実行して定義します
mirror_demo_primary は mirror_server1 の代替サーバ名として定義し、mirror_demo_primary はプライマリサーバとして動作するデータベースサーバに接続するためにクライアントが使用する名前です。
mirror_demo_mirror は mirror_server2 の代替サーバ名として定義し、mirror_demo_mirror はミラーサーバとして動作するデータベースサーバに接続するためにクライアントが使用する名前です。
プライマリとミラーのロールは、システム内のデータベースサーバを設定する場合に必要です。これらのサーバに付けた名前は、クライアントがデータベースサーバに接続するときに代替サーバ名として使用されます。どちらか一方のパートナサーバは、プライマリサーバまたはミラーサーバとして動作できます。
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'; |
次の SQL 文を実行し、データベースミラーリングシステムの監視サーバを定義します。
CREATE MIRROR SERVER demo_arbiter AS ARBITER connection_string ='SERVER=demo_arbiter;HOST=localhost:6870'; |
データベースの認証文字列を設定します。次の文を実行します。
SET MIRROR OPTION authentication_string='abc'; |
バックアップユーティリティ (dbbackup) を使用して、c:\server1 にあるデータベースファイルとトランザクションログを c:\server2 にコピーします。次のコマンドを実行します。
dbbackup -c "UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=mirror_demo" c:\server2 |
2 番目のパートナサーバを起動します。次のコマンドを実行します。
dbsrv16 -n mirror_server2 -x "tcpip(PORT=6872;DOBROAD=no)" -su sql "c:\server2\mirror_demo.db" -xp on |
監視サーバを起動します。次のコマンドを実行します。
dbsrv16 -n demo_arbiter -su sql -x "tcpip(PORT=6870;DOBROAD=no)" -xf "c:\arbiter\arbiter.state" -xa "AUTH=abc;DBN=mirror_demo" |
-xf arbiter のステータス情報ファイルのロケーションを指定します。
-xa ミラーリング対象のデータベースの名前と、監視サーバに対する認証文字列 (ここでは abc) を指定します。この認証文字列を、データベースミラーリングシステムのすべてのサーバ (監視サーバ、プライマリサーバ、ミラーサーバ) で使用する必要があります。
Interactive SQL を起動し、プライマリサーバの代替サーバ名を使用してプライマリサーバに接続します。次のコマンドを実行します。
dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary;HOST=localhost:6871,localhost:6872" |
データベースにデータを追加します。次の文を実行します。
CREATE TABLE test (col1 INTEGER, col2 CHAR(32)); INSERT INTO test VALUES(1, 'Hello from server1'); COMMIT; |
(省略可) 接続先のデータベースサーバの名前を決定するには、ServerName データベースサーバプロパティを使用します。次の文を実行します。
SELECT PROPERTY( 'ServerName' ); |
すべての Interactive SQL ウィンドウを閉じます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |