SQL Server Express を使ったレプリケーション

モバイル環境が、社内ネットワークに常時接続できない場合に、SQL Server Expressをサブスクライバーとして、マージレプリケーションでモバイルアプリの要求により同期をとる方法がある。

ここでは、ネットワーク共有を使ったマージレプリケーションの構築について一通りの手順をまとめておく。

ネットワーク共有を使うということは、サーバーとクライアント間の信頼関係が無いことを意味する。よってセキュリティーの落としどころを見極めなくてはならい。

インフラ環境

  • 社内にSQL Server がある。レプリケーションのパブリッシャーとして稼働できるエディションであること。
  • サーバーと各クライアントPCは、ネットワーク共有を使ってお互いのフォルダーをアクセスできること。
  • クライアントPCには、SQL Server Expressをインストールする。このとき、レプリケーションを行うSQL Serverのバージョンを統一すること。
この記事のポイントは、ネットワーク共有を使うということ。つまりSQL Serverとの接続は、全てSQL認証を行う。Windows認証を使う場合は、MicroSoft DOCにあるレプリケーションチュートリアルの通りに全てを構築すればよい。

パブリッシャーとなるSQL Serverに、SQL認証のログインを作成する

クライアントPC(サブスクライバー)からサーバー(パブリッシャー)への接続を目的とするログインを作成する。

マージレプリケーションの構築

レプリケーションチュートリアルに従ってひと通り(トランザクションレプリケーションの構築は除く)構築する。相違点をまとめておく。

サブスクライバーのローカルアカウントは作成しない

SQL Server Expressには、SQLサーバーエージェントが実装されていないため、作成する意味がない。この記事では、その代替方法であるRMO(Replication Management Objects)を使う。

チュートリアルで出てくるコンピューター名NODE2 のアカウント(NODE2\repl_distribution, NODE2\repl_merge)を指す。

疲れたので寝る!続きはまたの機会にorz