推薦閱讀最新的文章集合 http://www.mssqlmct.cn/?post=6sql
SQL Server 2012 新特性(一)管理新特性:AlwaysOn數據庫
1、準備環境安全
一、準備4臺計算機服務器
域控制器DC1,IP地址192.168.1.1網絡
主節點SQL1:IP地址192.168.1.21異步
輔助節點SQL2:IP地址192.168.1.22ide
輔助節點SQL3:IP地址192.168.1.23工具
上述4臺服務器的其它配置一致:子網掩碼255.255.255.0,默認網關192.168.1.254,DNS爲192.168.1.1。post
二、準備域環境blog
DC1爲域contoso.com的域控制器,有關安裝域控制器的操做請見前面的博文。
SQL一、SQL二、SQL3在單機上均安裝了SQL Server 2012數據庫引擎。請將這3臺計算機都加入到contoso.com域。
三、建立羣集
分別在SQL一、SQL二、SQL3在單機上打開「服務器管理器」,「添加功能」,添加「故障轉移羣集」。
以域管理員的賬戶登入其中一個節點,準備建立羣集。打開「故障轉移羣集管理」,建立一個包含上述3個節點的羣集。羣集名稱爲WinCluster1,IP地址爲192.168.1.201,仲裁配置爲「多數節點」。
詳細的操做已在前面的博文有述。《建立Windows2008羣集》http://jimshu.blog.51cto.com/3171847/590414
2、準備AlwaysOn
一、開啓功能
打開「SQL Server 配置管理器」,在左側的「SQL Server 服務」列表中找到默認的實例。
在右健菜單中選擇「屬性」,打開「AlwaysOn高可用性」選項頁,確認已經選擇了「啓用AlwaysOn可用性組」。
啓用後,從新啓動這個SQL Server 實例。
若是沒有啓用這個功能,那麼在配置AlwaysOn時會有如下錯誤:
若是事先沒有將該節點(計算機)加入到羣集,則會報錯:
二、打開防火牆端口
在「管理工具」中打開「高級安全 Windows 防火牆」,添加入站規則,打開TCP1433和TCP5022端口。請參考《Windows 2008 中的防火牆》http://jimshu.blog.51cto.com/3171847/590411
SQL Server 並不會去檢查另外一個節點的防火牆是否開放了端口,而是直接就去進行AlwaysOn的配置。若是防火牆未開放上述2個端口,SQL Server操做將超時而未成功,所以將出現如下錯誤信息:
三、準備登陸名
AlwaysOn中使用了鏡像(mirror)技術,所以須要使用域賬戶同時鏈接多個數據庫引擎,或者使用證書。不然在配置AlwaysOn的過程當中會出現如下提示:
在這個實驗中,咱們使用域賬戶。打開「SQL Server Management Studio」,爲域用戶新建登陸名,並賦予權限(服務器角色爲sysadmin)。因爲SQL Server 2012能夠爲一個用戶組創建登陸名,所以咱們在這裏直接爲域管理員組建立了登陸名。
建立了登陸名,再將SQL Server服務賬戶更改成域賬戶,並重啓這個實例。
四、準備文件夾
主數據庫將在其它節點上進行恢復,恢復後數據庫將與原數據庫位於硬盤上相同的路徑位置。例如:原數據庫位於 C:\sqldata ,那麼必須爲其它節點創建相同的文件夾。不然在配置AlwaysOn的時候會出現如下錯誤:
此外,咱們在後面的操做中,將主數據庫直接備份到共享文件夾,以便於其它節點從這個共享文件夾讀取備份數據而後在其本地進行恢復。所以,請在主節點SQL1上共享一個文件夾,例如 \\SQL1\AlwaysOn 。
五、備份數據庫
加入AlwaysOn可用性組的數據庫必須爲完整恢復模式,而且必須先作一次完整備份。此後,在選擇「可用性組的用戶數據庫」時,纔會顯示爲「知足先決條件」狀態。不然,顯示爲「須要完整恢復模式」或「須要完整備份」狀態。
3、新建可用性組
一、啓動向導
以域管理員的賬號登入SQL1,而後打開「SQL Server Management Studio」。
展開「AlwaysOn高可用性」,在「可用性組」點右鍵,在菜單中選擇「新建可用性組嚮導」。
二、配置可用性組名稱
三、選擇數據庫
四、指定副本
點「添加副本」按鈕,出現「鏈接到服務器」對話框。輸入服務器名稱,而後鏈接到輔助角色的數據庫實例。
添加了輔助副本所在的實例以後,查看一下「端點」、「備份首選項」和「偵聽器」3個選項頁。
五、選擇數據同步
六、驗證
因爲咱們在前面的操做中沒有設置偵聽器,因此這裏會有一個警告信息。咱們將在後面配置,因此忽略這個警告。
七、完成
八、檢查結果
回到「SQL Server Management Studio」,可見「AlwaysOn高可用性」--「可用性組」--「AlwaysOn1」。
再檢查 \\SQL1\AlwaysOn 文件夾,可見自動產生了db0一、db02數據庫的備份文件。
轉到DC1,打開「Active Directory 用戶和計算機」和DNS,可見「AlwaysOn1」這個虛擬網絡名稱(VNN)賬戶及其IP地址。
4、添加數據庫
一、啓動向導
二、選擇數據庫
三、選擇數據同步
四、鏈接到副本
五、驗證
六、完成
七、檢查結果
回到「SQL Server Management Studio」,檢查「AlwaysOn高可用性」--「可用性組」--「AlwaysOn1」。例如,此時在SQL2節點,結果以下:
再檢查 \\SQL1\AlwaysOn 文件夾,可見自動產生了 db03 數據庫的備份文件。
5、添加偵聽器
根據官方提供的實驗手冊,僅在「故障轉移羣集管理」窗口添加偵聽器。實踐中不推薦此方法,而是直接在SSMS中添加。
一、添加客戶端訪問點
在任意一個節點打開「故障轉移羣集管理」,在左側的「服務和應用程序」列表中選擇「AlwaysOn1」,爲其「添加資源」--「客戶端訪問點」。
二、使資源脫機
爲了將前面的操做所新建的客戶端訪問點與須要故障轉移的資源進行綁定,須要先將資源脫機,而後修改資源的屬性。
三、配置依賴關係
四、使資源聯機
說明:在SSMS中添加偵聽器的界面。推薦!
五、檢查結果
打開「SQL Server Management Studio」,在「可用性組偵聽器」列表中可見名爲「SqlFailOver」的偵聽器。
轉到DC1,打開「Active Directory 用戶和計算機」和DNS,可見「SqlFailOver」這個虛擬網絡名稱(VNN)賬戶及其IP地址。
6、添加副本
一、啓動向導
二、鏈接到副本
三、指定副本
四、 選擇數據同步
五、驗證
六、完成
七、檢查結果
還能夠經過「顯示面板」查看可用性組的狀態。
在這個「顯示面板」的右側有一個任務欄,能夠「啓動故障轉移向導」、「查看AlwaysOn運行情況事件」、「查看羣集仲裁信息」。例如:
7、查看屬性
一、羣集「WinCluster1」的屬性
其中,在「資源類型」選項頁中,用戶定義的資源類型有2類:
2、服務和應用程序「SQLSERVER」的屬性
打開「故障轉移羣集管理」,在左側列表的「服務和應用程序中」找到「AlwaysOn1」,將其重命名爲「SQLSERVER」。結果以下:
再查看其屬性:
三、資源「AlwaysOn1」的屬性
四、可用性組「AlwaysOn1」的屬性
五、可用性副本的屬性
依次查看3個「可用性副本」的屬性,例如SQL1的屬性以下:
六、偵聽器「SqlFailOver」的屬性
說明:若是經過SSMS添加的偵聽器,應當指明端口(默認爲1433)。而經過故障轉移羣集管理器添加的偵聽器,彷佛沒有自動配置一個端口。所以,推薦經過SSMS添加偵聽器。
8、模擬故障轉移(切換副本)
一、使用「SQL Server Management Studio」(推薦)
因爲SQL3的「可用性模式」是「異步提交」,所以,若是將SQL3指定爲新的主副本則可能形成數據丟失。
咱們也能夠在「SQL Server Management Studio」中看到SQL2的狀態與SQL3不一樣。SQL2顯示爲「已同步」,SQL3顯示爲「正在同步」。
在「故障轉移可用性組:AlwaysOn1」點「下一步」,繼續操做。
注意到最後有一個警告信息。
二、使用「故障轉移羣集管理器」(不推薦)