摘要:MSSQL複寫注意項目
這幾天,在幫公司內部資料庫做備援的工作,原先主管想要利用「鏡像」的方式,讓正式機資料同步備援機,
一旦正式機資料庫無法正常運行時,則修改資料庫連線,即可達到備援資料庫的機制。
但實際操作了兩天,一直出現「TCP:\XXX.XXX.XXX.XXX 5023 無法登入……」的錯誤訊息。
後來查了一些資料後,決定打算使用MSSQL 2005以後版本的新功能「複寫」。
「複寫」故名思義,就是將資料抄寫至指定的資料庫,以達到資料同步的目的。
在設定複寫上,其實把觀念搞懂後,就很簡單,但常常都是一個步驟設定錯誤,導致無法同步,正所謂一步錯,步步錯。
首先要搞懂「複寫」運行的架構。可以參考jason 的SQL 2008複寫實作
要註意以下幾點:
一、在新增SQL登入時,登入名稱必須選擇先前已設定的WINDOWS帳號,若是選擇SQL驗證身份的話,在啟動SQL Agent服務時,會無法正常啟動
二、不論在發行或是訂閱伺服器,都必須在同一網域中,才有辦法以伺服器名稱方式搜尋,因複寫功能,不提供以IP的方式搜尋。
三、在訂閱時,會主動驗證所有被勾選的複寫項目的正確性,比較常見的問題有:
1、發行端的資料表中,存在著未設定索引值的資料表
2、發行端的預存程序中,新增的語法錯誤,最常見到的錯誤如:Insert Table1 values(@Col1,@Col2)...(資料欄位數量與參數數量不符合的錯誤)