Step 4: 通知監控服務器角色已變更 SQL Server 2000 的日志傳送會在監控服務器上安裝監控工具程序;最好是在第三台服務器。為了通知監控服務器日志傳送的角色已經過變更,您必須在監控服務器上執行 sp_change_monitor_role 預存程序,如程序代碼列表3所示。盡管名稱內含有 change 字眼,但它並不會變更監控服務器的角色。相反地,此預存程序會變更主要/次要服務器內檔案分享所參照(reference)的位置。意思是說:監控服務器 log_shipping_secondaries 資料表內原先參照舊次要服務器的資料會被刪除。而在 log_shipping_primaries 資料表內則是將舊主要服務器名稱更改為新主要服務器名稱。此預存程序並不會將資料新增到 log_shipping_secondarIEs 資料表,因為新的配對服務器目前尚未建置。
程序代碼列表 3: 將角色互換結果通知監控服務器之預存程序。
步驟 5: 在次要服務器上解析登入帳號 您必須先在新主要服務器上解析舊主要服務器登入帳號,使用者才可以存取新主要服務器;方式是使用步驟1所匯出之登入帳號檔案。此匯出檔案可被 sp_resolve_logins 預存程序所讀取,然後解析各服務器間 SID 的差異。舉例來說,程序代碼列表4示范如何在新復原的 Pubscopy 數據庫上執行 sp_resolve_logins 預存程序,去解析原來的登入帳號。BOL文章曾教導您必須在目的數據庫內才能執行該預存程序。事實上,sp_resolve_logins 使用了非完整式參照(unqualifIEd reference)指向 syslogins 視觀表,所以您必須在 master 數據庫內才能執行此預存程序!
程序代碼列表4: 在次要服務器上解析登入帳號的預存程序。
為了達成完整的日志傳送角色互換,您只需在新主要服務器與新次要服務器之間重新設定一次日志傳送即可。因為新主要服務器已內含嶄新的數據庫維護計劃,您將會傾向在維護計劃內直接加入新次要服務器,做為目的服務器。