Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの保守 » SQL Anywhere の高可用性 » データベース・ミラーリングの設定

 

ミラー・サーバで実行されているデータベースへの読み込み専用アクセスの設定

データベース・ミラーリングを使用するときは、読み込み専用の接続を使用して、ミラー・サーバ上で実行されているデータベースにアクセスできます。この機能は、このデータベースへの読み込み専用アクセスを必要とするレポートなどの操作の負荷を軽減したい場合に役立ちます。

ミラーリング・システムでは、どのデータベースがプライマリ・サーバで、どのデータベースがミラー・サーバとして動作しているかが不明なこともあります。ミラー・サーバ上で実行されているデータベースに接続できるようにするには、データベース・サーバの起動時に -sm サーバ・オプションを指定してください。このオプションで、読み込み専用のミラー・データベースへのアクセスに使用するサーバ名を指定すると、接続がミラー・サーバを見つけられるようになります。-sm オプションで指定したサーバ名は、そのデータベース・サーバがデータベースのミラーとして動作している場合のみアクティブになります。プライマリ・サーバやミラー・サーバとして動作しているサーバがどれかはわからないので、通常は両方のデータベース・サーバに対して -sm オプションを指定します。たとえば、次のコマンドでは、ミラー・サーバ上で実行されているデータベースに接続するときに、データベース・サーバで mysamplemirror を代替サーバ名として使用するように、-sm オプションで指示します。

dbsrv11 -n myserver satest.db sample.db -sn mysampleprimary 
-sm mysamplemirror
-xp "partner=( ENG=server2;LINKS=TCPIP( PORT=2637;TIMEOUT=1 ) );auth=abc;
arbiter=( ENG=arbiter;LINKS=TCPIP;( PORT=2639;TIMEOUT=1 ) );mode=sync"

データベースに変更を加えようとするとエラーが発生します。これは、-r オプションを使用して読み込み専用でデータベースを起動した場合と同じ動作です。テンポラリ・テーブルに対して操作を実行することはできますが、ミラー・データベース上ではイベントは起動しません。イベントの起動は、プライマリ・サーバからミラー・サーバへのフェールオーバが発生するまで始まりません。DatabaseStart と MirrorFailover のイベントは (定義されている場合)、その時点で起動します。詳細については、システム・イベントの概要を参照してください。

フェールオーバが発生してミラー・サーバがプライマリ・サーバになっても、ミラー・データベースへの接続は維持されます。フェールオーバ後は、接続によってデータベースに変更を加えることができます。接続先のデータベースが更新可能かどうかを確認するには、ReadOnly データベース・プロパティの値を問い合わせてください。

SELECT DB_PROPERTY( 'ReadOnly' );
参照

ミラー・データベースに対するクエリの実行