トップ回答者
SQLServer2005のレプリケーションについて

質問
-
現在地理的に離れた2地点でデータ処理をしているサーバ・クライアント型
のシステムがあります。
A地点
サーバ、クライアント
B地点
クライアント
が存在し、B地点に置かれたクライアントとVPNにてA地点に設置してある
サーバにアクセスして動作しています。
これはシステムとしては1つのようなイメージで運用も楽だったのですが、
B地点のクライアント及びデータ量が増大するにしたがってA-B地点間の
ネットワーク帯域では処理しきれなくなりました。
そこで、B地点にもサーバを設置し、SQLServerのレプリケーション機能を使用
することを考えております。
要件は以下の通りです。
・A地点、B地点では共にデータの参照、更新を行います。
・更新されたデータは共に相手方に伝わる必要があります。
・更新するデータはA地点とB地点のクライアントで同じデータを更新する
可能性があります。
・同期はテーブル単位ではなく、DB単位で行いたい。
・レプリケーションによってテーブルの列数などが変わらない。
このような時、どのようなレプリケーションを選択するのがいいのでしょうか?
いろいろ調べてみるとトランザクション・レプリケーションが該当しそうなのですが、
上記要件を満たすためにこのレプリケーションがどうであるか、また、実際にレプリケーション
を設定するに当たっての注意点などアドバイスをいただければと思っています。
DBサーバはSQLServer StandardEditionです。
回答
-
それは何台のクライアントが、どんなアプリケーションを実行するかによりますね。
この使い方でぱっと思いつくボトルネックは次の3つです。
1. ライセンス数
当然ですがライセンス数以上の端末はターミナル サーバーに接続できません。これが足りなくなったら足すしかありません。
2. CPU
クライアント アプリケーションが重い処理をしているなら、10 人が使えば CPU も一人の時の 10 倍使います。CPU がボトルネックに達したら CPU をアップグレードするか、ターミナル サーバーを増やします。
3. ネットワーク
RDP プロトコルの通信が発生しますからね。これは色数を減らしたり音を再生しないことでネットワーク トラフィックを減らせます。解像度を落とすことも出来ますが、フルスクリーンでないと使用感に違和感が出るのでユーザーには歓迎されないでしょう。
ということで、ネットワークの帯域幅を心配しているのならクライアントの設定を変更して数台のクライアントを用意してみて、どれくらいの帯域を使うのか調べてみてはいかがでしょうか。
特定のポートがどれくらいの帯域を使っているかは、NEGiES で調べることができます。
でもまあ、この方法で問題が解決すると決まったわけではないんで帯域幅の拡大や運用方法の変更もオプションとして提示したほうがよいとは思いますよ。テーブルデザインが変わってはいけないのならトランザクション レプリケーションは使えません。どの方法もメリットとデメリットがありますね。
すべての返信
-
米田さん。ありがとうございます。
レプリケーションは経験がなく、さらに上記のような状況になってから調べ始めているところなので
技術的に不安があります。
そこでご提案いただいたターミナルサービス用サーバを追加する件ですが、
B地点のクライアントはデータの参照、更新に時間がかかっていますが、クライアント端末は
業務アプリとして使用しているため画面の表示も重要になります。
上記のような状態でターミナルサービスとしてB地点からA地点にアクセスした場合に、画面の表示更新は
スムーズに行えるものでしょうか?
流れるデータ量は各端末でアプリを実行した場合より増えたりはしないのでしょうか?
データ更新が終了していても画面の更新が終わらなければユーザーは耐えられないような気がします。 -
それは何台のクライアントが、どんなアプリケーションを実行するかによりますね。
この使い方でぱっと思いつくボトルネックは次の3つです。
1. ライセンス数
当然ですがライセンス数以上の端末はターミナル サーバーに接続できません。これが足りなくなったら足すしかありません。
2. CPU
クライアント アプリケーションが重い処理をしているなら、10 人が使えば CPU も一人の時の 10 倍使います。CPU がボトルネックに達したら CPU をアップグレードするか、ターミナル サーバーを増やします。
3. ネットワーク
RDP プロトコルの通信が発生しますからね。これは色数を減らしたり音を再生しないことでネットワーク トラフィックを減らせます。解像度を落とすことも出来ますが、フルスクリーンでないと使用感に違和感が出るのでユーザーには歓迎されないでしょう。
ということで、ネットワークの帯域幅を心配しているのならクライアントの設定を変更して数台のクライアントを用意してみて、どれくらいの帯域を使うのか調べてみてはいかがでしょうか。
特定のポートがどれくらいの帯域を使っているかは、NEGiES で調べることができます。
でもまあ、この方法で問題が解決すると決まったわけではないんで帯域幅の拡大や運用方法の変更もオプションとして提示したほうがよいとは思いますよ。テーブルデザインが変わってはいけないのならトランザクション レプリケーションは使えません。どの方法もメリットとデメリットがありますね。