若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
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIpJvHh76b-ol4peVFBZ_Ion5fib1t3HizFpgXIXtPZsRHQBh0WAVtgE983ore7xfDbSDsdji6X46KyW2S65hP-HnITufrLZJ3J57G4c7x8go0pLVoM_MhyphenhyphenyAlFSkBfKuaUHYTjRoqUcf4/s288/sql_server_replication_error.png)
正如訊息所說,設定Replication連接必須要電腦實名。
以我的情況為例,SYSERP這部Publisher電腦IP是10.128.88.5,Dynamic Port : 49304
但怎樣設定才能令本機電腦(Subscriber)知道SYSERP的IP是10.128.88.5呢?
修改電腦System中的Host檔案?
若你第一時間上Google Search,其中一個解決方法是叫你修改SQL SERVERNAME。
例如 :
因為SQL Server不會自動去更新本機名稱,所以使用這個方法,只有因曾經人手修改電腦名稱。
我個人建議不要使用這種做法。
最安全和無風險的做法就是隱藏在SQL Server Configuration Manager,平時最不起眼的Aliases
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUXS4sjqug4a9h1dytKXmOIzBNRxZ2fJdqxiRcy7ElUlFUi6MeJ6hSIqsMbWYaGEpKETvsbEFrlYpGTV5alnbKlUtZeHYSDVGXgxhYxjnkMDrgfoiH1meNt-xlBQs3-YK9An7jpx4NV7eT/s800/SQL%2520Server%2520Configuration%2520Manager.png)
Aliases就是讓你設定別名,以IP對行Mapping。
以下圖為例,就可以把SYSERP主機換算成10.128.88.5:49304。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqeL38fDH5FTncq7-QSDCbwdWO5wl9XhhAs41Ost73AbHaTXIjBoMJlR18iqu2iS-jJsgQ8spsG1nilpSnJz60Rit_QdZIEicu8XZq5mX4ySxM9xf_QaLCEZckdYv52AJpgxiNwHDCb3pK/s561/PicPick_20130827_174944.png)
之後返回設定Subscriber時,輸入"SYSERP\SQLEXPRESS"就可以了。
若反來是Publisher連不到Subscriber,亦可以照著這方法去做。
沒有留言:
發佈留言