none
[SQL Server] リンクサーバー機能について

    質問

  • 初めてフォーラムを利用させていただきます。
    よろしくお願いいたします。

    LAN内の複数PCにあるMDB(Access)ファイルのデータをSQL Server 2008 R2に集め、別のPCからそのデータを参照したいと思い、Web検索したところ「リンクサーバー」という機能が一番理想に近いカタチであるということがわかりました。
    http://msdn.microsoft.com/ja-jp/library/ms188279(v=sql.105).aspx

    そこでリンクサーバーについてご教示いただきたいのですが、、

    ①リンクサーバーを構築した後、リンク先のPCがシャットダウンすると(あるいは、していると)SQL Server側ではエラー等が表示されるのでしょうか?
     (リンク先がリンクダウンした際の動きについて参考になる資料などありますでしょうか)

    リンクサーバー機能でAccess2003に接続したいのですが、下記URLには注意書きで「パッケージを32ビットモードで…」と記載されていました。
     32ビットモードでというのはどのように実行するということでしょうか?
     実行手順等わかりましたら、よろしくお願いします。

     http://msdn.microsoft.com/ja-jp/library/cc280478(v=sql.105).aspx,

     --追記--

      ②については調べてみたところx64では使えないようですね。 

      現状、x64環境での動作を検証しているため、②は取り消させていただきます。

     --------

    当方、DBシステム構築初心者の為、検討違いの質問をしているかもしれません。
    上記2点について、自分なりに調べてはみたもののどんな検索キーワードで引っかかってくる内容なのかも不明で、結局見つからずフォーラムを利用させていただきました。
    よろしくお願いいたします。


    【環境】
    [Server]
     ・Windows Server 2008 R2 SP1
      SQL Server 2008 R2

    [PC]
     ・Windows XP Pro x86
      MS Access 2003

     ・Windows XP Pro x64
      MS Access 2003

     ・Windows 7 Pro x86
      MS Access 2010

     ・Windows 7 Pro x64
      MS Access 2010


    [ビューアになるPC]
     ・Windows系OS 専用ビューアを開発予定


    • 編集済み lixy 2012年6月5日 13:15
    2012年6月5日 6:25

回答

  • リンクサーバの設定自体難しいものでないと思うので、ためしてみるのが一番だと思います。

    私のところにはシャットダウン出来ないマシンしかないので、mdbファイルのファイル名変えてみたらこんな感じのエラーになりました。
    -------------------------------------
    リンク サーバー "TEST_MDB" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" から、メッセージ "ファイル 'C:\Users\mars12\Desktop\db1.mdb' が見つかりませんでした。" が返されました。
    メッセージ 7303、レベル 16、状態 1、行 1
    リンク サーバー "TEST_MDB" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" のデータ ソース オブジェクトを初期化できません。
    -------------------------------------

    それとも、お聞きになりたいことはSQL文実行前にリンク先が生きてるか死んでるか判断したいということでしょうか。
    であれば
    http://social.msdn.microsoft.com/Forums/ja/sqlserverja/thread/acb466f0-6c2c-41c7-beaf-c6353cded26c
    このへんが参考になるかと思います。接続テストのことについても記載があります。
    が、リンク先がAccessだとできないような気もします。

    追記:接続テストを試した時、リンク先がAccessでもとりあえず例外みたいのは返ってくるので判断できそうです。
    • 編集済み mars12 2012年6月6日 2:17 追記
    • 回答としてマーク lixy 2012年6月6日 12:11
    2012年6月6日 1:06

すべての返信

  • リンクサーバの設定自体難しいものでないと思うので、ためしてみるのが一番だと思います。

    私のところにはシャットダウン出来ないマシンしかないので、mdbファイルのファイル名変えてみたらこんな感じのエラーになりました。
    -------------------------------------
    リンク サーバー "TEST_MDB" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" から、メッセージ "ファイル 'C:\Users\mars12\Desktop\db1.mdb' が見つかりませんでした。" が返されました。
    メッセージ 7303、レベル 16、状態 1、行 1
    リンク サーバー "TEST_MDB" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" のデータ ソース オブジェクトを初期化できません。
    -------------------------------------

    それとも、お聞きになりたいことはSQL文実行前にリンク先が生きてるか死んでるか判断したいということでしょうか。
    であれば
    http://social.msdn.microsoft.com/Forums/ja/sqlserverja/thread/acb466f0-6c2c-41c7-beaf-c6353cded26c
    このへんが参考になるかと思います。接続テストのことについても記載があります。
    が、リンク先がAccessだとできないような気もします。

    追記:接続テストを試した時、リンク先がAccessでもとりあえず例外みたいのは返ってくるので判断できそうです。
    • 編集済み mars12 2012年6月6日 2:17 追記
    • 回答としてマーク lixy 2012年6月6日 12:11
    2012年6月6日 1:06
  • mars12様

    わざわざご確認いただきまして、ありがとうございました。

    > リンクサーバの設定自体難しいものでないと思うので、ためしてみるのが一番だと思います。

    そうですね。  質問後にも、リンクサーバについていろいろ調べているうちに本件の質問の回答がどちらになったとしても、試してみたいと考えるようになりました。 そして現在、検証環境の構築中です。 当方の検証環境では仮想化されている環境がないため、実機の用意からになってしまうのですが、是非とも試してみようと思います。

    > 追記:接続テストを試した時、リンク先がAccessでもとりあえず例外みたいのは返ってくるので判断できそうです。

    私の質問が言葉足らずだったようで、申し訳ないです。。

    しかしながら、接続テストまでしていただき、感謝いたします。 ありがとうございました。

    2012年6月6日 12:10