搜尋本站文章

2009-12-26

認識「資料庫鏡像(Database Mirroring)」所支援的作業模式(Operation mode)



適用的版本:
SQL Server 2005 & SQL Server 2008


在 SQL Server 2005 RTM版本上,「資料庫鏡像」技術可以分成為三種模式:「高可用性」、「高保護性」、「高效能」等模式。
到了 SQL Server 2005 SP1 版本,則依據資料同步的作業模式來分類,可以分成兩種:「同步資料庫鏡像」與「非同步資料庫鏡像」;
其中「同步資料庫鏡像」,又可以稱為「高安全性模式」,其資料庫屬性「SAFETY」是設定為「FULL」,而「非同步資料庫鏡像」則稱為「高效能模式」,其資料庫屬性「SAFETY」設定為「OFF」。


在「同步資料庫鏡像」作業模式下,在依據是否需要自動容錯移轉的功能,再區分兩種模式:「具有自動容錯移轉的高安全性模式」與「不具有自動容錯移轉的高安全性模式」,相對於 SQL Server 2005 RTM 版本來討論,就是對應為「高可用性」與「高保護性」模式。



比較混亂的是,這些專有名詞,混雜在新舊版本的文件說明中,但在管理工具SSMS內,看到的都是 SQL Server 2005 SP1 版本的新名詞,本文也採取新版本的名詞做為說明,這部份要請各位讀者多加留意,並請參考下圖所示:

2009-12-15

小技巧:刪除登入帳戶(Logins,伺服器層級),也一併刪除資料庫使用者(DB Users,資料庫層級)



在 SQL Server 2005/2008 版本,若是要刪除登入帳戶(Login,伺服器層級),在管理工具 SSMS 上會出現以下的警告訊息:
刪除伺服器登入不會刪除與登入相關聯的資料庫使用者。
若要完成處理序,請刪除每個資料庫中的使用者。可能必須先將結構描述的擁有權轉移給新使用者。



也就是說,刪除了登入帳戶(Login,伺服器層級),但是在資料庫內仍然有此資料庫使用者(DB Users,資料庫層級)。
可能需要額外再到此資料庫內,刪除此資料庫使用者(DB Users,資料庫層級)。




若僅是一兩個資料庫,這種手動逐一刪除資料庫使用者的方式,或許還可以接受。
假若此登入帳戶(Login,伺服器層級),可以進入到多個資料庫呢?




這種手動逐一刪除資料庫使用者的方式,可能就十分吃力了。

建議的作法是:
1. 先選取要被刪除的登入帳戶,滑鼠右鍵,選擇「屬性」。
2. 在「登入屬性」視窗,在左邊的「選取頁面」窗格,點選「使用者對應」頁籤。
3. 在右邊的「已對應到此登入的使用者」區域,取消勾選先前所允許登入的資料庫。




4. 點選「確定」。
5. 再刪除此登入帳戶。


經由上述的作法,可以達成:刪除登入帳戶(Logins,伺服器層級),也一併刪除資料庫使用者(DB Users,資料庫層級)之需求。