none
Microsoft SQL 2005(Express Edition)へのローカル接続時のエラーについて RRS feed

  • 質問

  • お世話になります。初心者です。 

    【構成】
    OS:Windows Server 2003 R2 SE SP2
    Active Directory ドメイン メンバーサーバ
    SQL Server 2005 Exeress Edition

    SQL Server 2005 Express EditionでいつくかのDATABASE を自動バックアップ処理する必要があり、SQL Server 2005 Express Editionへローカル接続するバッチ*1 と、
    DATABASE バックアップ処理をスクリプト化したsqlファイル*2を組み合わせて、
    サーバ上で処理を行おうとしております。

    ---
    *1
    sqlcmd -S.\SQLEXPRESS -E -iD:\TEMP\model.sql >> %LOG%
     
    *2
    BACKUP DATABASE [model] TO  DISK = N'E:\databk\model' WITH NOFORMAT, NOINIT,  NAME = N'model-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10, CHECKSUM
    GO
    declare @backupSetId as int
    select @backupSetId = position from msdb..backupset where database_name=N'model' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'model' )
    if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''model'' not found.', 16, 1) end
    RESTORE VERIFYONLY FROM  DISK = N'E:\databk\model' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
    GO

    ---

    その際、まずバッチ処理段階で、以下の通り、SQL Server 2005 Express Editionへのローカル接続時エラーとなります。

    ---
    Sqlcmd: エラー: Microsoft SQL Native Client: サーバーへの接続確立時にエラーが発
    生しました。接続先が SQL Server 2005 である場合は、既定の設定では SQL Server が
    リモート接続を許可していないことが原因である可能性があります。。
    Sqlcmd: エラー: Microsoft SQL Native Client: ログイン タイムアウトが時間切れになりました。
    ---

    当フォーラムでの関連トピックでは、インスタンス名不正等いくつかの原因が指摘されておりましたので、

    以下の通り幾つかの切り分けを行いましたが、いずれの場合もエラー改善はなく、またエラー内容は同じです。

    1.ローカル接続の指定を以下の通り変更する。
     sqlcmd -S (local)\SQLEXPRESS
      sqlcmd -S (local)\SQLEXPRESS

    2.ウイルスバスターサービスの停止
    3.Windowsファイアウォールサービスの停止

    4.saアカウントは混合モードで設定済みですが、
     ローカル接続の都度、Window認証設定を入れ込む
     sqlcmd -S.\SQLEXPRESS -Usa -Ppassword -iD:\TEMP\master.sql >> %LOG%

    5.SQL Server セキュリティ構成ツール設定確認
     [データベース エンジン]-[リモート接続]-[ローカル接続およびリモート接続] チェック。[TCP/IP 及び名前付きパイプを使用する] チェック。

    その他、考えられる問題点はございますでしょうか?
    何卒、ご教示の程、宜しくお願い致します。

    2012年5月2日 13:01

回答

  • ワンパターンな回答で申し訳ないのですが、パーソナルファイアーウォールの類が邪魔していませんか?
    ローカルと言ってもプロセス間の通信でもパーソナルファイアーウォールが動作するので侮れません。
    インスタンスが起動していることは確認済みでしょうか?
    たとえば、TCP/IPを利用されているとすると、netstatコマンドを実行したときに1434/tcpは出てきますか?
    もし出てこなければ、SQL Browserサービスが止まっているか、ファイアウォールか何かの影響で動作ができない状態になっていることが考えられます。
    パイプを使いたいのでしたらいわゆるマイクロソフトネットワーク(135,137,139,445の類)はnetstatで出てきますか?

    あとは、各クライアントプロトコル用の接続形式を指定して接続してみてください。

    sqlcmd.exe を使用してデータベース エンジンを接続する方法」
    http://msdn.microsoft.com/ja-jp/library/ms188247(v=sql.100).aspx

    • 回答の候補に設定 山本春海 2012年5月16日 7:56
    • 回答としてマーク 山本春海 2012年5月18日 8:31
    2012年5月8日 4:54
  •  

     有難うございました。

     sqlcmd -H ホスト名とし、接続ができました。

     頂いた内容は、試させて頂きましたが、該当しませんでした。

     今後とも、何卒、宜しくお願い致します。

     

    • 回答としてマーク qss100 2012年5月28日 11:18
    2012年5月28日 11:18

すべての返信

  • ワンパターンな回答で申し訳ないのですが、パーソナルファイアーウォールの類が邪魔していませんか?
    ローカルと言ってもプロセス間の通信でもパーソナルファイアーウォールが動作するので侮れません。
    インスタンスが起動していることは確認済みでしょうか?
    たとえば、TCP/IPを利用されているとすると、netstatコマンドを実行したときに1434/tcpは出てきますか?
    もし出てこなければ、SQL Browserサービスが止まっているか、ファイアウォールか何かの影響で動作ができない状態になっていることが考えられます。
    パイプを使いたいのでしたらいわゆるマイクロソフトネットワーク(135,137,139,445の類)はnetstatで出てきますか?

    あとは、各クライアントプロトコル用の接続形式を指定して接続してみてください。

    sqlcmd.exe を使用してデータベース エンジンを接続する方法」
    http://msdn.microsoft.com/ja-jp/library/ms188247(v=sql.100).aspx

    • 回答の候補に設定 山本春海 2012年5月16日 7:56
    • 回答としてマーク 山本春海 2012年5月18日 8:31
    2012年5月8日 4:54
  • こんにちは、qss100 さん。

    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
    しばらく経ちましたが、その後いかがでしょうか。

    参考になる情報をいただいているかと思われましたので、勝手ながら私の方で一旦回答としてマークさせていただきました。
    Chuki さん、情報ありがとうございます。

    いただいた情報の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
    今後、同じ問題でこのスレッドを参照される方にも、有効な情報を活用いただけるかと思いますので、ご協力よろしくお願いいたします。

    もしまだ問題が解決していないようであれば、試したことや現在の状況などとともに情報更新してみてくださいね。よろしくお願いいたします。
    _____________________
    日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2012年5月18日 8:30
  •  

     有難うございました。

     sqlcmd -H ホスト名とし、接続ができました。

     頂いた内容は、試させて頂きましたが、該当しませんでした。

     今後とも、何卒、宜しくお願い致します。

     

    • 回答としてマーク qss100 2012年5月28日 11:18
    2012年5月28日 11:18