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 » SQL Anywhere サーバ データベース管理 » 高可用性と読み込み専用のスケールアウトシステム » SQL Anywhere の読み込み専用スケールアウト

 

チュートリアル:1 台のサーバをコピーノードと監視サーバとして兼用する方法

1 台のサーバを監視サーバとコピーノードの両方として実行するように設定します。このチュートリアルでは、読み込み専用スケールアウトにも関与するミラーリングシステムの設定方法について説明します。

前提条件

MANAGE ANY MIRROR SERVER システム権限が必要です。

このタスクでは、データベースのコピーのバックアップを作成しました。選択するバックアップ方法に応じて、その方法に対して適切な権限を参照してください。

内容と備考

ミラーリングシステム内の監視サーバを他のサーバから物理的に分離されたコンピュータで実行することをおすすめしますが、必ずしもそのようにできるとは限りません。

このチュートリアルでは、すべてのデータベースサーバが同じコンピュータ上で実行されていることを想定しています。ただし、運用環境では、各データベースサーバを別々のコンピュータにインストールする必要があります。

異なるコンピュータで実行されているデータベースサーバでこのチュートリアルを使用する場合は、接続文字列内の localhost への参照を実際のコンピュータ名に変更する必要があります。

 ♦ タスク
  1. ディレクトリ c:\server1c:\server2c:\arbiter を作成します。

  2. サンプルデータベースのデータを格納し、トランザクションログを持つ、mirror_demo.db というデータベースを作成します。トランザクションログを持っていないデータベースをミラーリングモードで起動することはできません。次のコマンドを実行します。

    newdemo c:\server1\mirror_demo.db
  3. 1 つ目のデータベースサーバを起動します。次のコマンドを実行します。

    dbsrv16 -n mirror_server1 -x "tcpip(PORT=6871)" -su sql "c:\server1\mirror_demo.db" -xp on
  4. mirror_demo データベースに接続します。たとえば、次のコマンドを実行します。

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server1" 
  5. ミラーサーバ定義を作成します。たとえば、次の SQL 文を実行します。

    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_primary;HOST=localhost:6871,localhost:6872';
        
    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';
  6. CREATE MIRROR SERVER 文を使用して管理サーバ定義を作成します。監視サーバの mirror-server-name は、接続文字列で指定されたサーバ名とは別の名前にする必要があります。

    CREATE MIRROR SERVER demo_arbiter AS ARBITER
     connection_string='SERVER=demo_server3;HOST=localhost:6870';
  7. ミラーリングシステムのミラーリングオプションを設定します。認証文字列を指定し、auto_add_server オプションにプライマリサーバの名前を設定する必要があります。次の文を実行します。

    SET MIRROR OPTION auto_add_server='mirror_demo_primary'; 
    SET MIRROR OPTION authentication_string='abc';

    監視サーバ定義の arbiter-server-name は、監視サーバの実際のサーバ名とは別の名前にする必要があります。監視サーバのクライアント接続文字列には、ServerName [SERVER] 接続パラメータと実際のサーバ名を含める必要があります。

  8. ミラーサーバを作成します。

    1. c:\server1 にあるデータベースファイルとトランザクションログのコピーを作成し、c:\server2 と c:\arbiter に追加します。次のコマンドを実行します。

      dbbackup -c "UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=mirror_demo" server2
      dbbackup -c "UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=mirror_demo" arbiter
    2. ミラーサーバを起動します。

      dbsrv16 -n mirror_server2 -x "tcpip(port=6872)" server2\mirror_demo.db -su sql -xp on
  9. -xa、-xp、-xf サーバオプションを指定して、監視サーバをコピーノードおよび監視サーバとして起動します。

    dbsrv16 -n demo_server3 -x "tcpip(port=6870)" arbiter\mirror_demo.db -xp on -xf arbiter\arbiter.state -xa "AUTH=abc;DBN=mirror_demo" -su sql
  10. dbping ユーティリティを使用して、いつ高可用性構成の準備が整ったかを判断します。

     dbping -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary"  -pd Mirrorstate,PartnerState,ArbiterState
     SQL Anywhere Server Ping Utility Version 16.0.4157 
    Type       Property                  Value 
    ---------  ----------------          ------------------------------ 
    Database   MirrorState               synchronized 
    Database   PartnerState              connected 
    Database   ArbiterState              connected 
    Ping database successful.   
  11. 次のクエリを使用して、この高可用性システムでモニタしているノードを表示します。

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server1" "SELECT server_name,state FROM sa_mirror_server_status()"
  12. SYSMIRRORSERVER テーブルの内容を調べて、demo_server3 が「コピー」ノードであることと、監視サーバが接続していることを確認します。

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary" "SELECT  server_name, server_type FROM SYSMIRRORSERVER" 

結果

サーバで、監視サーバとコピーノードの両方が実行されています。