2009-03-18 7 views
0

私たちは本社と私たちのコロケーションされたWebサーバーに2つのSQL Serverインスタンスを持っています。 Webサーバーとメインオフィスサーバー間のデータ交換を処理する複製がいくつかあります。IP変更後にsqlcmdを使用してSSMSを使用せずにSQL Server 2005インスタンスに接続できるのはなぜですか?

本日、私たちのメインオフィスでISPを切り替えました。私たちは宿題をして、スイッチの準備ができました(ホストファイルの変更など...)。新しい接続に切り替えると、すべての複製が完全に破棄されました。 SSMSを使用してメインオフィスサーバーに接続しようとしましたが、クッキーはありません。 Webサーバーのサーバー名を使用してホームオフィスサーバーにpingとftpを実行できます。私はポート1433と1434が新しいISPによってブロックされ、適切な人々に通知したことを知りました。彼らは現在ブロックされていないはずです。 SMSSのダイスはまだありません。

その後、私は驚くほど効果的なsqlcmdで接続しようとしました。 SMSSはサーバーに接続しませんが、sqlcmdはサーバーに接続します。どうしてこれなの? ISPスイッチの前にすべてが魅力的だった。

 
ping homeserver 
    success! 
ftp homeserver 
    success! 
sqlcmd -S homeserver\instance -U user -P pass 
    success! 
- Trying to connect using SSMS, using the same homeserver\instance and user/pass combo 
    Provider: SQL Network Interfaces, error: 26 - Error locating server/instance specified) 
+0

ISPのstilが1434をブロックしたことが判明しました。/facepalm –

答えて

1

SQL TCP 1434でリッスンしません。UDP 1434でリッスンします。telnetを使用してUDPポートをテストすることはできません。あなたのISPにUDP 1434を開きます。

サーバー上のクライアント接続の順序を確認すると、名前付きパイプがTCP/IPより上になりますが、何らかの理由でSSMSが名前付きパイプを使用しません。

名前付きインスタンスを使用している場合は、使用しているTCPポートがコロケーションとオフィスの間で開いていることをSQL Serverに確認してください。

オフィスとコロの間にVPNを設置して、2つのファイアウォールの間のファイアウォールを気にする必要がないようにすることができます。

+0

+1教えていただき、VPNの提案をいただきありがとうございます。私のコメントで言ったように、彼らはポートをブロックしていましたが、私たちは物事を解決し、複製は現在強くなっています。今は1週間で解決されていますが、これが問題だったので、私は先に進んで答えを出します。 –

0

インスタンスでなければならない:自宅サーバ\インスタンス(バックスラッシュではなくスラッシュ)

+0

申し訳ありません、これはタイプミスでした。私は実際にこのことを試しているときに\を使用しています。 –

+0

ポート1433/34にtelnetで接続しようとしましたが、ポートがブロックされていないことを確認しましたか? – Henryk

+0

ええ、それは最初の場所でブロックされていることがわかったのです。1433私は確認できましたが、1434 LAN内のマシンからでも接続できませんでしたので、私はまだ分かりませんが、前回と比べてどのくらい速く失敗するかに基づいてうまくいくと思います。 –

0

推測のビットが、SQLは、ネットワークプロトコルの異なるオプションがあり、共有メモリ、TCP/IP、名前付きパイプ、VIAなどがあります。 SQL Server Configuration Managerを使用して、サーバーとクライアントの両方(適切なマシン上)の構成を設定できます。 ネイティブクライアントでは、ネームパイプを使用することがよくあります。名前付きパイプは、名前解決にブロードキャストを使用してWANを介して機能しないことがよくあります(さらにポートを開く必要があります)。したがって、SSMSが名前付きパイプ経由で接続しようとすると、サーバー名を解決できない可能性があります。一方、sqlcmdがTCP/IPを使用すると、それは可能になります。

言い換えれば、まず、サーバーとクライアントの両方でSQL Server Configuration Manager が表示されます。。 TCP/IP以外のすべてを無効にするか、プロバイダーの順序を変更して、TCP/IPが一番上になるようにしてください。共有メモリは一番上に置いておき、必要に応じて有効にすることができます。ローカルマシンの接続には便利です。

+0

良い推測ですが、私はすでにこれを実際に試しました。私はどこかでTCP:server \ instanceを使用してプロトコルに強制することもできます。クライアントとサーバーの両方の順序は、SM、TCPIP、NPのようになります。 –

0

サーバーでSQLブラウザーサービスを有効にすることもできます。これにより、サーバーインスタンスの名前が実際に表示されます。

関連する問題