windows2012 下sqlserver2012 AwaysOn 集群環境虛擬機下載

本博主配置好的windows2012 下sqlserver2012 AwaysOn 集群環境虛擬機下載,鏈接:https://pan.baidu.com/s/1KS5P8XFUsCj-t2rjHqO9sA
提取碼:gpn3 下載後,用Vmware workstation打開 即可以使用。

SQL Server2012所支持的AlwaysOn技術集中了故障轉移群集、數據庫鏡像和日誌傳送三者的優點,但又不相同。故障轉移群集的單位是SQL實例,數據庫鏡像和日誌傳送的單位是單個用戶數據庫,而AlwaysOn支持的單位是可用性組,每個組中可以包括一個或者是多個用戶數據庫。也就是說,一旦發生切換,則可用性組中的所有數據組會作為一個整體進行切換。

AlwaysOn底層依然採用Windows 故障轉移群集的機制進行監測和轉移,因此也需要先建立Windows Cluster,只不過可用性組中的數據庫不一定非要再存放在共享存儲上了。可以是存儲在本地磁盤上。

下面,先看一下AlwaysOn的關鍵特性:

1. 同故障轉移群集一樣,也需要一個虛擬網絡名稱用於客戶端的統一連接。

2.一個主服務器可以最多對應四個輔助服務器,總數達到五個,而且輔助服務器支持只讀功能。

3.輔助服務器可以獨立執行備份和DBCC維護命令。通過配置,可以實現客戶端的只讀請求可以被自動定向到輔助服務器。

4.主服務器和輔助服務器之間的數據會被加密和壓縮,以提高安全性和網絡傳輸效率。

5..支持自動、手動和強制三種故障轉移方式。

6.有儀錶盤用於監控AlwaysOn的運行狀態。

7.可以實現多站點的部署,即主站點和輔助站點可以跨物理網絡。

AlwaysOn的基本架構

在Windows MSCS故障轉移群集的基礎上部署AlwaysOn高可用組,用戶可以在群集節點上安裝SQL Server單機實例,也可以安裝SQL Server群集實例,AlwaysOn僅要求所有SQL Server實例都運行在同一個MSCS中,但SQL Server實例本身是不需要群集模式的,這與SQL Server2008 群集的實例完全不同。在此推薦使用單機模式的SQL Server,好處是:可用性副本是個單機實例,那麼數據庫副本就存放在該運行該實例節點的本地磁盤上;如果可用性副本是個群集實例,那麼數據庫副本就存放在共享磁盤上。

可用性組從Windows群集角度來看,就是一個群集資源,其中的所有數據庫作為一個整體在節點間進行故障轉移,當然這不包括系統數據庫,系統數據庫是不能加入高可用性組中的。

因為需要藉助Windos群集實現監控和轉移,所以AlwaysOn會受到一些限制:

一個可用性組中的所有可用性副本必須運行在單一的Windows群集上,跨不同Windows群集的SQL Server實例不能配置成一個AlwaysOn可用性組。

一個可用性組的所有可用性副本必須運行在Windows群集的不同節點上。運行在同一個節點上的兩個不同實例不能用作同一個可用性組的副本。

如果某個可用性副本實例是一個SQL群集實例,那同一個SQL群集的其他非活躍節點上安裝的任何其他SQL實例都不能作為它的輔助副本。

一個數據庫只能屬於一個可用性組。

AlwaysOn最多可以支持五個副本,但只有一個可用性副本上運行的數據庫是處於可讀寫狀態。這個可讀寫的數據庫被稱為主數據庫(PrimaryDatabase),同時這個可用性副本被稱為主副本(primaryreplica)。其餘的副本都被稱為輔助副本(secondaryreplica),輔助副本上的數據庫可能是不可訪問的,或者是只能接受只讀操作(取決於可用性組的配置),這些數據庫被稱為輔助數據庫。一但發生故障轉移,任何一個輔助副本都可以成為新的主副本實例。主副本會不斷地將主數據庫上的數據變化發送到輔助副本,來實現副本間的數據庫同步。下圖就顯示了一個可用性組中各副本之間的關係。

p_w_picpath

本博主配置好的windows2012 下sqlserver2012 AwaysOn 集群環境虛擬機下載,鏈接:https://pan.baidu.com/s/1KS5P8XFUsCj-t2rjHqO9sA
提取碼:gpn3 下載後,用Vmware workstation打開 即可以使用。

下面,咱們再通過一個圖看 一下AlwaysOn可用性組與Windows故障轉移群集之間的關係,在這個圖中,Windows的故障轉移群集使用到了兩個子網,在左邊的子網裡,有兩個節點 ;右邊的子網裡有三個節點,其中最右邊兩個節點上創建了一個SQL Server的群集實例,存放於共享存儲;其他三個節點安裝的是單機實例,存放於本地存儲;一共四個實例組成了一個AlwaysOn可用性組,其中一個主副本,其他的都是輔助副本。

p_w_picpath

偵聽器

AlwaysOn創建後,客戶端就需要進行連接,為了讓應用程序能夠透明地連接到主副本而不受故障故障轉移的影響,我們需要創建一個偵聽器,偵聽器就是一個虛擬的網絡名稱,可以通過這個虛擬網絡名稱訪問可用性組,而不用關心連接的是哪一個節點,它會自動將請求轉發到主節點,當主節點發生故障後,輔助節點會變為主節點,偵聽器也會自動去偵聽主節點。

一個偵聽器包括虛擬IP地址、虛擬網絡名稱、端口號三個元素,一旦創建成功,虛擬網絡名稱會註冊到DNS中,同時為可用性組資源添加IP地址資源和網絡名稱資源。用戶就可以使用此名稱來連接到可用性組中。與故障轉移群集不同,除了使用虛擬網絡名稱之外,主副本的真實實例名還可以被用來連接。

SQL Server2012早期版本的SQL Server只有在實例啟動的時候地會嘗試綁定IP和端口,但是SQL Server2012卻允許在副本實例處於運行狀況的時候隨時綁定新的IP地址、網絡名稱和端口號。因此可以為隨時為為可用性組添加偵聽器,而且這個操作會立即生效。當添加了偵聽器之後,在SQL Server的錯誤日誌中可以看到類似:在虛擬網絡名稱上停止和啟動偵聽器的消息。

要注意的是,SQLBrowser服務是不支持Listener的。這是因為應用程序在使用Listener的虛擬網絡名連接SQLServer時,是以一個默認實例的形式進行訪問的(只有主機名,沒有實例名),因此客戶端根本就不會去嘗試使用SQLBrowser服務。

各副本間的數據同步

AlwaysOn必須要維護各副本間的數據一致性,當主副本上的數據發生變化,會同步到輔助副本上。這裡AlwaysOn通過三個步驟來完成:

步驟1:主副本記錄發生變化的數據;

步驟2:將記錄傳輸到各個輔助副本;

步驟3:把數據變化操作在輔助副本上執行一遍。

具體實現如下:

在主副本和輔助副本上,SQL Server都會啟動相應的線程來完成相應的任務。對於一般的SQL Server服務器,即沒有配置高可用性,會運行Log Writer的線程,當發生數據修改事務時,此線程負責將本次操對應的日誌信息記錄到日誌緩衝區中,然後再寫入到物理日誌文件。但如果配置了AlwaysOny主副本的數據庫,SQL Server會為它建立一個叫Log Scanner的線程,不間斷的工作,負責將日誌從日誌緩衝區或日誌文件里讀出,打包成日誌塊,發送到輔助副本。因此可以保證發生的數據變化,不斷送給各輔助副本。

輔助副本上存在固化和重做兩個線程完成數據更新操作,固化線程會將主副本Log Scanner所發過來的日誌塊寫入輔助副本磁盤上的日誌文件里,因此稱為固化,然後重做線程負責從磁盤上讀取日誌塊,將日誌記錄對應的操作重演一遍,此時主副本和輔助副本上的數據就一致了。重做線程每隔固定的時間點,會跟主副本通信,告知自己的工作進度。主副本由此知道兩邊數據的差距。Log Scanner負責傳送日誌塊,不需要等待Log Writer完成日誌固化;輔助副本完成日誌固化以後就會發送消息到主副本,告知數據傳輸完成,而不需要等待重做完成,這樣各自獨立的設計,是儘可能減少 AlwaysOn所帶來的操作對數據庫性能的影響。

本博主配置好的windows2012 下sqlserver2012 AwaysOn 集群環境虛擬機下載,鏈接:https://pan.baidu.com/s/1KS5P8XFUsCj-t2rjHqO9sA
提取碼:gpn3 下載後,用Vmware workstation打開 即可以使用。

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營

發表評論

您的電子郵箱地址不會被公開。 必填項已用*標註