2013年8月27日星期二

SQL Server Replication - 遠端TCP/IP連線解決方法

若設定SQL Server Replication,照著Wizard指示,Step-by-Step做設定,問題應該不大。
若Publisher跟Subscriber在同一個網絡,相方都可以用電腦名稱或Instance Name去連接 (e.g. SQLPC\SQLSERVER)。

但若果任何一方是在遠極端(Remote),當你一如正常使用IP做伺服器位置時,SQL Server便會出現錯誤訊息。
Sql Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address or any other alternate name are not supported. specify the actual server name


正如訊息所說,設定Replication連接必須要電腦實名。
以我的情況為例,SYSERP這部Publisher電腦IP是10.128.88.5,Dynamic Port : 49304
但怎樣設定才能令本機電腦(Subscriber)知道SYSERP的IP是10.128.88.5呢?
修改電腦System中的Host檔案?

若你第一時間上Google Search,其中一個解決方法是叫你修改SQL SERVERNAME。
例如 : http://ramymahrous.wordpress.com/2010/02/25/replication-error-sql-server-is-unable-to-connect-to-server/

因為SQL Server不會自動去更新本機名稱,所以使用這個方法,只有因曾經人手修改電腦名稱。
我個人建議不要使用這種做法。

最安全和無風險的做法就是隱藏在SQL Server Configuration Manager,平時最不起眼的Aliases


Aliases就是讓你設定別名,以IP對行Mapping。

以下圖為例,就可以把SYSERP主機換算成10.128.88.5:49304。


之後返回設定Subscriber時,輸入"SYSERP\SQLEXPRESS"就可以了。

若反來是Publisher連不到Subscriber,亦可以照著這方法去做。

沒有留言:

發佈留言