最近我要在SQL Server 2008上做資料庫複寫的實驗,需要用到兩台伺服器,所以我需要同時開2個虛擬機器(VPC),當然我不可能去單獨安裝2個SQL Server,安裝過程太費時了,所以我是在一個虛擬機器中安裝了SQL2008,然後將該虛擬機器檔案複製了一個出來,然後還原成另外一個虛擬機器,這樣我就可以同時使用2個虛擬機器來做複製的實驗了。我先在虛擬機器SQL2008RC0中安裝了Windows2003作業系統,機器名為MS-ZY,然後安裝SQL Server 2008,所以資料庫的伺服器名也就是MS-ZY。
接下來複製過去還原成虛擬機器SQL2008RC02,當兩個虛擬機器都開啟的情況下,如果都是MS-ZY的伺服器名,那將無法識別,所以我將第二個虛擬機器的機器名修改為MS-ZY2。這個我就可以使用SSMS通過這個名字來訪問第二個資料庫了。
一起看起來都不錯,已經將這兩個伺服器通過名字分開了,而且我們通過SSMS也的確看到了2個不同的伺服器:
但是在配置複製的時候卻出了問題,我在MS-ZY上配置了資料庫分發,配置成功,接下來想在MS-ZY2上配置訂閱,可是卻報錯。於是我就試一下在MS-ZY2上配置分發,同樣報錯,報錯內容為:
顯然,我雖然在作業系統中將機器名修改為MS-ZY2了,但是在資料庫中仍然使用的MS-ZY作為伺服器名。怎麼辦呢?唯一的辦法就是修改資料庫的伺服器名。
請教了一下公司的同事,具體修改過程:
1.使用select @@ServerName可以看到當前資料庫的伺服器名,果然還是MS-ZY!
2.從Sys.SysServers表中可以看到當前的所有伺服器名,也是MS-ZY!
3.使用 sp_dropserver 'MS-ZY' 將這個伺服器名刪除。
4.使用 sp_addserver 'MS-ZY2','LOCAL'將本機伺服器重新添加到伺服器表中,並且命名為MS-ZY2.
5.查詢Sys.SysServers表,果然已經修改了。
6.重啟資料庫服務,修改完成,可以正常使用複製功能了
其實操作還是十分的簡單,但是由於修改伺服器名這種情況實在太少見了,一般都是使用預設的,所以很多人都不知道如果修改,寫下此文,希望對遇到和我相同問題的人有所協助。