最近我要在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.重新開機資料庫服務,修改完成,可以正常使用複制功能了 :)
其實操作還是十分的簡單,但是由于修改伺服器名這種情況實在太少見了,一般都是使用預設的,是以很多人都不知道如果修改,寫下此文,希望對遇到和我相同問題的人有所幫助。