- ベストアンサー
複数のSQLサーバから、SQLサーバにデータを取得する方法
3台のSQLサーバのデータを、1台のSQLサーバで日々自動で取得するにはどういう方法が良いでしょうか 3台のSQLサーバからは、同じ属性のテーブル情報を1つのテーブルに取得したい(更新日が前日分) PGはVB.netで考えています ご指導お願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もちろんREAD_ONLYも可能です。 リンクサーバは各サーバにあるログインを使って参照するわけなので、各サーバに参照専用ユーザを作成してあげる必要があります。 (既存のログインを使えるならば特別な追加設定は何もいりませんが) なお、SQL ServerはSELECTでも共有ロックがかかりますので、それすら避けたい場合はダーティリード(WITH (NOLOCK)を付けてSELECT)も検討する必要があるかもしれません。 (まあでも1日1回なんですよね?) 他の方法としてはスナップショットレプリケーションやSSISも可能ですが、メンテナンスを考えるとリンクサーバ+タスクが一番いいような気がします。
その他の回答 (1)
- jamshid6
- ベストアンサー率88% (591/669)
その内容であれば、VBなど使わず、 ・データを集めるSQL Serverから3台のSQL Serverにリンクサーバを設定する ・データを集めるSQL ServerのSQL Server Agentにタスクを登録し、デイリー実行にスケジュールする ここにはDELETE/INSERT(もしくはMERGE)を使ったSQL文、もしくは、ストアドプロシージャを登録する でどうでしょうか。
補足
jamshid6さんご回答ありがとうございます。 リンクサーバでREAD ONLYでのアクセスを行う事は可能なのでしょうか? 又、データ元のサーバ側で特別な設定が必要でしょうか? 3台のSQL Serverは絶えずトランザクションが発生しています(取得する側のSQL Serverではデータ取得時以外基本的にトランザクションは発生しません) よろしくお願いします
お礼
jamshid6様 度々ありがとうございます 各SQLサーバにRead用のユーザを作成する事は可能のようですので、リンクサーバで考えてみます。 ご回答、ありがとうございました。