何らかの理由で、SQLServer2012の動的ポートのリッスンポート番号の設定が勝手に変更されるという事象があるということで、ちょっと調べました。そもそもSQLサーバーの知識があんまりないので、いい時間になりましたが、これについてはすでに過去の情報が明らかになっていました。
TCP動的ポートのポート番号が変わる?
SQL Server > SQL Server
情報がちょっと古いですが、質問事項の抜粋です。図的に設定を変更する以外で動的ポートのリッスンポート番号の設定が変わるというものです。
質問事項
意図的に設定を変更する以外で動的ポートのリッスンポート番号の設定が変わる可能性についてご存じないでしょうか。(パッチ適用、他のアプリとの関係、SQLServerの何らかの設定変更が影響など)環境について
OS:Windows2003Server(Intel X86)
バージョン:SQL Server2005 Standerd Edtion(9.00.3042.00)現象
アプリケーションから動的ポート1048に接続しておりましたが、ある日サーバ(OS)を再起動するとそのポート設定が1049に変わって起動しており、クライアントから接続できない状態となっていました。(人的変更の可能性は可能な限り消去しました)
ポートは動的になっている場合の回答がとても分かりやすいです。
SQL Server Browser サービス
http://msdn.microsoft.com/ja-jp/library/ms181087(SQL.90).aspx
上記の「SQL Server Browser のしくみ」にも以下の記載がありますように、再起動すると変わります。
(もちろん、偶然同じポート番号が確保された場合は、変わらなかったように見えます。)● SQL Server の起動時に使用可能なポートが割り当てられます。
● ポートが動的に割り当てられる場合は、SQL Server が再起動されるたびにポート番号が変わる可能性があるので、クライアントは正しいポート番号を特定できません。ですので、ポート番号が変わったのは仕様どおりということになるかと思います。
再起動すると動的ポートの場合はポート番号が変わるのが仕様ということで、動的ポートに直接接続しようとるうと、当然、接続できなくなることがあります。
その為、SQL Server Browser Serviceなどのサービスがあるようです。また、動的ポートは固定にすることもできます。たまに、設定方法を間違えることがあって、意図せず動的にポートが変わることがあるようなので、設定方法には注意してください。
ちなみに、動的ポートを固定にする設定は以下が参考になります。
特定の TCP ポートで受信待ちするようにサーバーを構成する - SQL Server | Microsoft Docs
こちらの記事では、SQL Server 構成マネージャーを使用して、 SQL Server データベース エンジン のインスタンスが特定の固定ポートで受信待ちするように構成する方法について書かれています。 詳しい設定方法は上記URLを参考にしてみてください。