2014年7月1日 星期二

如何設定在同一台主機上的 SQL Server 2014 和 SQL Server 2012

當 SQL Server 2014 和 SQL Server 2012 被安裝在同一台 Windows Server 2012 伺服器上時,其中一個資料庫實體可能會發生無法從遠端連線的狀況,其實 SQL Server 2014 的連線方式和之前的版本並無不同,都要啟用 TCP/IP 的通訊協定,由於預設是不啟用的,這便是造成多數遠端 Client 無法連線的主因。然而,當在同一台主機上安裝了多種版本的資料庫之後,情況又會變得更複雜,我們必須啟動 SQL Browser 服務,讓 SQL Browser 能幫助 Client 連線到正確的資料庫,此時防火牆可能又跑出來攪局,讓人更加摸不著頭緒,不知無法遠端連線的問題究竟出在哪裡?

以下的說明,希望能有助於類似問題的解決。

1. 開啟 TCP/IP 通訊協定
下圖上方是 SQL Server 2014 的組態管理畫面,下方是  SQL Server 2012 的組態管理畫面,我們可以發現 SQL Server 2014 的組態管理竟然少了 SQL Server 2012 的網路組態設定,必須啟用二者的 TCP/IP 通訊協定,才能讓 Client 遠端連線這二種資料庫,所以如果只是使用 SQL Server 2014 的組態管理,將會被誤導而忘記啟用 SQL Server 2012 的 TCP/IP 通訊協定。


2. 確認 TCP/IP 通訊協定內容
下圖上方是 SQL Server 2014 的 TCP/IP 的 IP 位址設定,IP1 ~ IP9 皆可不啟用(預設),我們只要記住 IPALL 的 TCP 動態通訊埠的值即可(可自設),此例為:49204,下圖下方是 SQL Server 2012 的 TCP/IP 的 IP 位址設定,同樣保留 IP1 ~ IP9 不啟用(預設),記住 IPALL 的 TCP 動態通訊埠的值,此例為:49205,這二個 Port 值之後必須在防火牆中開啟。

 SQL Server 2014 的 TCP/IP 的 IP 位址設定


 SQL Server 2012 的 TCP/IP 的 IP 位址設定

3. 確認 SQL Server Browser 正在執行
由組態管理員的 SQL Server 服務確認 SQL Server Browser 是否正在執行,若無法在組態管理員中啟動,請自行至 Windows 服務中啟動。


4. 確認 SQL Server Browser 可通過防火牆
1. 確認防火牆輸入規則已啟用 SQL Browser Service EXE 的 TCP 及 UDP

2. 確認防火牆已允許 SQL Browser Service EXE 通過

5. 新增輸入規則,以開啟資料庫連接埠



經由以上設定,遠端 Client 便可正確連線到這台 Windows Server 2012 上的任何一個 SQL Server 了。