應用維護:SQL Server 2008高可用性
博客園 發(fā)表于:12年09月05日 10:48 [原創(chuàng)] DOIT.com.cn
數(shù)據(jù)庫鏡像
數(shù)據(jù)庫鏡像與日志傳送非常相似,即事務日志記錄是從源數(shù)據(jù)庫發(fā)送到目標數(shù)據(jù)庫。不過,和基于文件復制的事務日志不同的是,單獨的日志記錄是基于事務發(fā)送的。盡管數(shù)據(jù)庫鏡像也是一個數(shù)據(jù)庫級別的冗余解決方案,但它依賴于服務間不斷通信來維護事務完整性。數(shù)據(jù)庫鏡像還提供了一個在配置了另外一個見證服務器時自動并且?guī)缀跛矔r故障轉移的額外好處。數(shù)據(jù)庫鏡像的配置是通過在駐留主體數(shù)據(jù)庫的服務器和主流鏡像數(shù)據(jù)庫的服務器之間建立合作關系完成的。兩者之間的通信通過使用SQL Server端點建立和維護,而不是使用文件系統(tǒng)作為維護兩個服務器之間的一致性方法。日志傳送和數(shù)據(jù)庫鏡像的另外一個主要區(qū)別是,數(shù)據(jù)庫鏡像限制每個數(shù)據(jù)庫智能有一個主題服務器和一個鏡像服務器。
數(shù)據(jù)庫鏡像配置中的3個服務器角色如下:主體服務器、鏡像服務器、見證服務器(可選)。在使用數(shù)據(jù)庫鏡像時,客戶端請求無法直接訪問鏡像數(shù)據(jù)庫,因為它一直處于恢復事務日志記錄的狀態(tài)下。但是,可以通過創(chuàng)建鏡像數(shù)據(jù)庫的數(shù)據(jù)庫快照配置間接訪問。還要注意,數(shù)據(jù)庫鏡像不能與啟用了FILESTREAM 存儲的數(shù)據(jù)庫一起使用。
客戶端重定向:數(shù)據(jù)庫鏡像的優(yōu)勢之一是如果主體數(shù)據(jù)庫出現(xiàn)故障,客戶端可以被自動重定向到鏡像服務器。然而,自動重定向不是基于服務器的功能。通過添加Failover Partner屬性,可以將客戶端的聯(lián)接字符串配置為與鏡像的數(shù)據(jù)庫一起工作,如果聯(lián)接Server屬性標識的服務器失敗,那么它會嘗試連接由 Failover Partner屬性標識的數(shù)據(jù)庫,反之亦然,如果聯(lián)接故障轉移伙伴不可用,就會嘗試連接原服務器
Server=AughtEight;Failover Partner=Dagobah;Database=AdventureWorks2008
數(shù)據(jù)庫鏡像模式:數(shù)據(jù)庫可以被配置為使用高性能模式、不支持自動故障轉移的高安全性模式以及支持故障轉移的高安全性模式。高性能模式使用異步處理,當主體服務器把事務日志記錄發(fā)送到鏡像服務器之后,會立刻向客戶端應用程序發(fā)送一個事務成功的確認,但是不會等待鏡像服務器確認接收日志記錄。在高性能模式下,不存在自動故障轉移也不需要見證服務器,因為主題服務器出現(xiàn)故障時仍然會要求強制執(zhí)行鏡像服務器上的數(shù)據(jù)庫服務。一旦原來的主主體服務器恢復服務,它會配置自身為鏡像服務器,但是鏡像會話仍然會處于SUSPENDED狀態(tài),除非管理員明確要求恢復。不支持自動故障轉移的高安全性模式中,在鏡像服務器確認收到了相應的事務日志記錄之前,主體服務器不會給客戶端發(fā)送事務成功的確認消息。該模式中沒有自動故障轉移,也沒有見證服務器,主體數(shù)據(jù)庫出現(xiàn)故障后要求手動強制見證服務器上的服務器提升其主體。在鏡像服務器出現(xiàn)故障的情況下,客戶端仍然可以使用主體服務器,但是鏡像會話會處于斷開連接的狀態(tài)。支持自動故障轉移的高安全性模式中,見證服務器用于提供自動故障轉移。見證服務器不直接參與鏡像過程,而是作為兩個服務器之間的監(jiān)督員,只要三個參與此模式的服務器中有兩個能夠保證連接性,那么數(shù)據(jù)庫就會對客戶端請求可用。當兩個服務器就鏡像會話的狀態(tài)取得一致時,這就被叫做仲裁,如果鏡像或主體服務器丟失了仲裁,鏡像配置也會相應的改變。
使用SQL Server Management Studio配置數(shù)據(jù)庫鏡像:打開數(shù)據(jù)庫屬性-鏡像頁面,或者從任務-鏡像菜單打開這個頁面,單擊配置安全性按鈕啟動向導,要求為主體、鏡像和見證服務器端點提供聯(lián)接選項。單擊下一步進入下一頁面,向導會詢問是否要配置一個見證服務器;向導的下一頁面要求標識在這個向導里要配置的服務器,您需要檢查所有參與的服務器,包括見證服務器(如果使用了的話)。進入下一頁面,配置主體服務器的選項;接下來需要為鏡像服務器配置同樣的信息,注意,擋在每個服務器上創(chuàng)建端點時,必須有在端點上創(chuàng)建和配置安全性的適當權限;如果配置了見證服務器,下一頁面要求為見證服務器提供服務器名稱和端點配置,其中需要注意一點,即如果同一物理服務器上有多個角色,那么端口號必須butong.youyu數(shù)據(jù)庫鏡像起作用的條件中并不要求所有的及其都采用相同的配置,甚至不要求他們是同一個域中的成員,所以向導允許為每個服務器指定賬戶信息。輸入這些信息后,就可以通過向導的摘要頁面查看配置。如果對設置感到滿意,可以單擊完成按鈕來創(chuàng)建端點,如有必要,應用合適的權限。在完成向導后,SQL Server會提示立刻開始鏡像還是延遲鏡像。如果確定配置是正確的,并且鏡像服務器和主體服務器時一致的,那么就可以單擊按鈕開始鏡像。
在主體服務器和鏡像服務器上執(zhí)行此語句會創(chuàng)建可用于鏡像的同樣的端點。如果只是測試鏡像,并且沒有使用一個單獨的物理服務器,那么只要這些端點使用不同的端口號,就可以安裝另一個實例來鏡像數(shù)據(jù)庫。在使用一個見證服務器時,在見證實例上執(zhí)行下列命令來創(chuàng)建合適的端點:
- -- Create Witness Endpoint
- USE Master;
- GO
- CREATE ENDPOINT WitnessEndPoint
- STATE = STARTED
- AS TCP ( LISTENER_PORT = 5024 )
- FOR DATABASE_MIRRORING (ROLE=WITNESS)
- GO