2014年6月12日木曜日

SQL Server ミラーリング

SQL Server ミラーリングについて、サーバー間の通信を設定する概念を書いておきます。

まず、(A)発信側サーバーでの処理
1.マスターキーを作る(パスワードを設定)
  CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'pass';
  という感じ。
2.証明書を作成する。
  CREATE CERTIFICATE ~
3.エンドポイントを作成する。(エンドポイントには2の証明書が関連付けする)
  CREATE ENDPOINT Endpoint_Mirroring
     STATE = STARTED
     AS TCP (
      LISTENER_PORT=●●●●
      , LISTENER_IP = ALL
     )
     FOR DATABASE_MIRRORING (
        AUTHENTICATION = CERTIFICATE 証明書名
       , ENCRYPTION = REQUIRED ALGORITHM AES
       , ROLE = ALL
   );
このALGORITHMの「AES」の部分はサーバー全てで同じでなければならないらしい(?)
ミラーリング用のエンドポイントは一つしか作れないので、送受信の相互にこのエンドポイントを使う事になるのだと思います。このため、暗号化のアルゴリズムが同じ無ければならないのだと思いますが、本当なら送受信で別々のエンドポイントを作れるようにしておいた方がスマートだと思いますが、どうでしょうか?
何か理由があるのだと思いますが、どうもこの辺りの設計思想が分かりにくくて、設定時に悩んでしまいます。


4.証明書をファイルに書き出して、それを受信側サーバーに移しておく。

次に(B)受信サーバー側での処理です。
1.ログインを作成する(パスワードを設定)。
2.そのログイン に対してユーザーを作る。
3.発信側の証明書ファイルからログイン用の証明書を作る。
  その時に2のユーザーに関連付けしておく。
4.エンドポイントにログインをGRANTしておく。

以上にて通信が行えるようになるはずです。
監視サーバーを設置する場合は、プリンシパル、ミラー、監視のそれぞれで相互に通信できるようにしなければなりませんので、以上のような処理をそれぞれのサーバーで行う事になります。



0 件のコメント:

コメントを投稿