一 數據庫鏡像部署准備
1.1 數據庫鏡像支持
有關對 SQL Server 2012 中的數據庫鏡像的支持的信息,請參考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/cc645993%28v%3dsql.110%29
1.2 其他前置條件
- 需要安裝.NET 補丁,詳見:https://support.microsoft.com/zh-cn/help/2654347/an-update-introduces-support-for-the-alwayson-features-in-sql-server-2。
- 確保參與參與一個或多個可用性組的計算機不是域控,域控制器節點不支持可用性組。
- 確保每台計算機都是 Windows Server 故障轉移群集 (WSFC) 群集中的節點,詳見:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/hh270278%28v%3dsql.110%29。
- 確保有足夠的WSFC節點,詳見:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ff877884%28v%3dsql.110%29。
- 若要管理 WSFC 群集,用戶必須是每個群集節點上的系統管理員。
注意:建議預留足夠的空間,在主數據庫增長時,其相應的輔助數據庫也增長相同量。
建議:建議您為 WSFC 群集成員之間的通信和可用性副本之間的通信使用相同的網絡鏈接。
1.3 其他限制
- 可用性副本必須由一個 WSFC 群集的不同節點承載:對於某個給定可用性組,可用性副本必須由在同一 WSFC 群集的不同節點上運行的服務器實例承載。唯一的例外是在遷移到另一個 WSFC 群集時,此時一個可用性組可能會暫時跨兩個群集。
- 唯一的可用性組名稱:每個可用性組名稱在 WSFC 故障轉移群集上必須唯一。可用性組名稱的最大長度為 128 個字符。
- 可用性副本:每個可用性組支持一個主副本和最多四個輔助副本。所有副本都可在異步提交模式下運行,或最多 3 個副本可在同步提交模式下運行。
- 不要使用故障轉移群集管理器來故障轉移可用性組。 必須使用 Transact-SQL 或 SQL Server Management Studio。
注意:其他更多相關條件限制見:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ff878487(v%3dsql.110)。
二 部署規划准備
2.1 服務器規划
按照如下規划配置主機名(domain前綴)及IP。
提示:為便於測試,本環境將所有節點的專用、公用、域網絡的防火牆均關閉。
故障轉移集群VIP(172.24.8.100):用於連接故障轉移集群管理器的集群
AlwaysOn VIP(172.24.8.101):用於連接AlwaysOn。
三 DNS服務器安裝
dsserver相關IP設置如下。
服務器管理器 -> 添加角色和功能,選擇DNS 服務器,下一步:
等待安裝完成。
如下相關服務已安裝完成。
四 安裝 Active Directory 域服務
服務器管理器 -> 添加角色和功能,選擇Active Directory 域服務。
等待安裝完成。
如下相關服務已安裝完成。
將此服務器提升為域控制器,進入域控制器服務向導。
彈出 Active Direcotry 域服務配置向導,選擇 "添加新林”,輸入域名imxhy.com,這個需慎重,FQDN配置完畢之后修改相對麻煩且有風險,並點擊 "下一步" 按鈕:
注意:如果是第一次搭建也是你整個內網中的第一台域控制器,那么需要選擇第二項 "在新林中新建域",第一項是內網中已經存在 AD 環境再想搭建額外域控制器的時候使用的。
設置DSRM密碼,默認林中的第一棵域樹的根域的域控制器必須擔當全局編錄服務器和必須安裝DNS服務,不能是只讀域控制器。
設置"域還原密碼",此密碼相當的重要,后續做數據庫遷移、備份、整理、恢復的時候都可能用到,需要謹記:
創建DNS委派,跳過即可。
NetBIOS名稱,默認即可。
進入AD 域的數據庫文件、日志文件和共享文件位置設置頁面,此處保持默認設置,點擊 "下一步" 按鈕:
進入 "摘要" 界面,顯示之前設置的摘要信息,點擊 "下一步" 按鈕:
先決條件檢查,通過后即可進行安裝。
安裝向導進入安裝過程。
提示:安裝完成后,建議重啟服務器。
此時,AD 域服務已經安裝完成。ADDS域控制器已經安裝完成,在完成域控制器的安裝后,系統會自動的將該服務器的用戶賬號轉移到 AD 數據庫中。
域控制器 DC 會將自己扮演的角色注冊到 DNS 服務器內,以便讓其他計算機能夠通過 DNS 服務器來找到這台域控制器,因此先檢查 DNS 服務器內是否已經存在這些記錄。
首先檢查域控制器是否已經將其主機名與 IP 地址注冊到 DNS 服務器內,本域控制器也扮演DNS服務器,則進入DNS中查看,此處應該會有一個名稱為 imxhy.com 的區域,主機(A)記錄表示域控制器 dsserver.imxhy.com 已經正確地將其主機名與 IP 地址注冊到 DNS 服務器內。DNS 客戶端所提出的請求大多是正向解析,即通過 hostname 來解析 IP 地址對應與此處的正向查找區域;通過 IP 來查找 hostname 即為反向解析,對應於此處的反向查找區域。
如果域控制器已經正確地將其扮演的角色注冊到 DNS 服務器,則還應該有對應的 _tcp、_udp 等文件夾。在單擊 _tcp 文件夾后可以看到如下所示的界面,其中數據類型為服務位置(SRV)的 _ldap 記錄,表示 dsserver.imxhy.com 已經正確地注冊為域控制器。其中的 _gc 記錄還可以看出全局編錄服務器的角色也是由 dsserver.imxhy.com 扮演的。
DNS 區域內包含這些數據后,其他要加入域的計算機就可以通過通過此區域來得知域控制器為 dsserver.imxhy.com。這些加入域的成員(域控制器、成員服務器、Windows 8、Windows 7、Windows Vista、Windows XP Professional 等)也會將其主機與 IP 地址數據注冊到此區域內。
五 域用戶創建及加入
5.1 域用戶創建
控制面板 -> 管理工具 -> Active Directory 用戶和計算機
設置相關sqluser賬號及密碼。
設置符合一定密碼復雜度要求的密碼。
將sqluser加入到administrators管理組中。
5.2 加入域控
nodea相關IP設置如下。
高級 -> DNS -> 此連接的 dns 后綴,添加域控的完整名稱。
計算機右鍵 -> 屬性 -> 高級系統設置 -> 計算機名 -> 更改
修改計算機名nodea,修改隸屬於域:imxhy.com
點確定之后彈出一個輸入在域控中建立的用戶的用戶名和密碼。
提示加入成功,加入成功后建議重啟計算機。
注意:nodea.imxhy.com、nodeb.imxhy.com、nodec.imxhy.com都需要配置相關DNS為172.24.8.35,然后加入域“imxhy.com”,具體方法參考如上即可。
5.3 服務器配置域帳戶管理員
在nodea.imxhy.com、nodeb.imxhy.com、nodec.imxhy.com計算機繼續使用本地管理員administrator登錄,分別將“imxhy\sqluser”帳戶添加為本機管理員,如圖所示:
注銷本地administrator,使用sqluser@imxhy.com用戶登錄,確認已具有管理員權限。
注意:nodea.imxhy.com、nodeb.imxhy.com、nodec.imxhy.com參考如上配置即可。
四 安裝WSFC和創建群集
四種集群的仲裁配置:
多數節點:此配置不會用到仲裁磁盤,而所謂多數節點就是在正常節點數量占多數的情況下,集群才會提供服務,否則就停止服務。這種配置適用於奇數節點的集群,例如5個節點的集群,其正常節點數量必須至少3個,集群才會提供服務。
多數節點和磁盤:適用於偶數節點的集群,他在計算法定數量時會將仲裁磁盤計算進來,例如,4個節點+1個仲裁磁盤節點的集群,可以將其視為5個節點的集群,這時正常節點數量必須至少3個,集群才會提供服務。
多數節點和文件共享:它和(多數節點和磁盤)類似,不過仲裁磁盤改為共享文件夾內的文件。
沒有多數:只有磁盤,只要仲裁磁盤脫機,集群就會停止提供服務(不建議使用)。
注意:域控不需要安裝故障轉移集群服務和SQL Server,也不需要加入到故障轉移集群;
SQL Server 2012 AlwaysOn只支持最多一個主副本和四個輔助副本,最多允許三個同步提交的可用性副本(包括主副本),最多允許兩個自動故障轉移副本(包括主副本)。
4.1 安裝故障轉移集群
服務器管理器 -> 添加角色和功能,選擇故障轉移群集。
確認相關信息。
等待安裝完成。
4.2 驗證配置
服務器管理 -> 工具 -> 故障轉移群集管理器,創建群集之前建議驗證一次所有配置。
在“選擇服務器或群集”界面中,單擊“瀏覽”按鈕將所有要加入群集的服務器添加進來,然后單擊“下一步”按鈕。
提示:域控不需要加入到群集中。
在驗證配置向導中最好選擇運行所有測試,進行全部檢測就可以查看到服務器之間建立群集的所有設置,包括網絡、共享磁盤、操作系統等。
確認相關測試項。
注意:測試需要一定時間,測試完畢后建議查看報告,報告中可詳細查看具體的告警項,對於存儲的警告,由於當前沒有添加任何的存儲設備,可忽略。對於網絡警告,由於各個節點只有一個網卡(心跳和業務共用),可忽略。
4.3 創建WSFC
服務器管理 -> 工具 -> 故障轉移群集管理器 -> 創建群集。
進入創建群集向導。
輸出群集名稱:SQLCLUSTER
注意:此IP為集群的管理名稱和管理IP,跟AlwaysOn無關。
由於我們當前還沒有任何存儲,所以不勾選將所有符合條件的存儲添加到群集。
等待創建群集完畢。
創建群集完成。
五 查看驗證群集創建
5.1 查看相關信息
通過故障轉移群集可查看相關信息。
5.2 域控進行查看
在dsserver域控節點,控制面板 -> 管理工具 -> Active Directory 用戶和計算機。
提示:生產環境強烈建議將業務網絡和心跳網絡進行獨立。
六 配置群集
6.1 配置群集仲裁設置
進入配置群集仲裁向導。
選擇高級仲裁配置,即手動配置仲裁。
選擇所有節點。
不配置仲裁見證。
提示:對於本環境3個群集節點的情況,不需要仲裁磁盤,而所謂多數節點就是在正常節點數量占多數的情況下,集群才會提供服務,否則就停止服務。這種配置適用於奇數節點的集群,例如5個節點的集群,其正常節點數量必須至少3個,集群才會提供服務。
配置完成。
七 安裝SQLServer 2012
參考《003.SQLServer數據庫鏡像高可用部署》第六步即可。
注意:安裝SQLServer 2012建議臨時將DNS改為外網DNS,如223.5.5.5,安裝過程需要更新相關補丁;
服務器配置,保持默認,安裝完畢后修改為域賬號即可;
同時建議使用本地用戶Administrator登錄這三個集群節點進行安裝,不要用域用戶sqluser登錄,如果一開始使用域用戶sqluser來登錄集群節點機器,在安裝SQL Server的過程中SQL Server安裝程序會連接故障轉移集群,但是實際上單機安裝SQL Server不需要連接故障轉移集群,其他操作一樣。
7.1 配置SQLServer以域帳戶運行
注銷本地administrator用戶,使用域賬戶登錄,在所有節點的“管理工具”中打開“服務”(或者用“SQL Server 配置管理器”),修改SQL Server實例的屬性,將登錄身份改為“imxhy\sqluser”。修改之后,重啟SQL Server實例。
如圖所示服務設置為自動,並登錄身份使用域賬戶。
提示:安裝過程中服務器配置已添加域賬戶可跳過此7.1步驟。
說明:所有節點都需要如上配置。
八 授權域賬戶相關權限
8.1 授予域賬號sysadmin角色
使用sa用戶登錄。
添加域賬戶。
授予sysadmin和public權限即可。
注意:nodea.imxhy.com、nodeb.imxhy.com、nodec.imxhy.com參考如上配置即可。
九 配置AlwaysOn可用性組
9.1 啟用AlwaysOn可用性組
使用域賬號IMXHY\sqluser登錄數據。
進入SQL Server配置管理器,SQL Server服務開啟AlwaysOn高可用性。
注意:集群節點一定要能進行通信,如果集群節點之間斷開通信,那么啟用AlwaysOn的時候會報錯。
重啟SQL Server。
如果AlwaysOn啟用成功,在服務器屬性里HADR狀態置為True。
注意:nodea.imxhy.com、nodeb.imxhy.com、nodec.imxhy.com參考如上配置即可。
在集群任意節點的SQL Server中驗證各節點的投票數,命令如下:
SELECT * FROM sys.dm_hadr_cluster_members;
十 測試數據庫准備工作
略,參考《003.SQLServer數據庫鏡像高可用部署》第七步。
注意:本過程需要將nodea用於測試的MDB還原至nodeb、nodec節點。
十一 新建可用性組
11.1 進入新建可用性組向導
簡介,下一步。
輸入可用性組名稱,如USAG。
選擇需要添加的數據庫,數據庫必須要是完整恢復模式並且要先進行一次完整備份。
使用添加副本來將其他節點添加到可用性組中,設置為可讀,並選擇自動故障轉移節點和同步提交節點。
端點和備份首選項默認即可。
提示:端點URL也可使用IP的方式,若服務器存在多個網卡(業務和心跳分開),使用FQDN長名的方式可能不能保證端點數據通過心跳網卡來傳送。
配置偵聽器,參考如下:
數據庫同步,通過第十步已經將數據庫MDB同步至所有節點,選擇僅聯接即可。
確認相關驗證。
點擊“下一步”來檢查並確認之前的配置信息,若無誤,點擊“完成”。同時也可保存建立可用性組腳本,以便分步診斷故障之用。
等待配置完成。
十二 確認驗證
12.1 數據庫驗證
查看主庫,數據庫變為已同步。
查看輔助副本,輔助副本是可讀的,在主副本上對MDB數據庫做的更改都能同步到輔助副本上的MDB庫。
12.2 故障轉移集群驗證
控制面板 -> 管理工具 -> 故障轉移群集管理器
可用性組成為一個集群角色。
12.3 AlwaysOn可用性面板驗證
AlwaysOn高可用性 -> 右鍵顯示面板
12.4 域控制器驗證
在域控節點控制面板 -> 管理工具 -> Active Directory 用戶和計算機查看相應的偵聽器。
12.5 功能驗證
任意節點通過偵聽器地址:172.24.8.101登錄數據庫。
登錄成功則表示AliwaysOn可用性組配置成功。
注意:加入到AlwaysOn可用性組的數據庫必須符合下面要求
- 數據庫的恢復模式必須是“完整”恢復模式
- 數據庫已進行了一次完整備份
- 需要是用戶庫,系統庫不能加入可用性組
- 數據庫可以讀寫,只讀庫不能加入到可用性組
- 數據庫處於多用戶模式
- 數據庫沒有使用AUTO_CLOSE
- 不屬於任何其他的可用性組
- 數據庫沒有配置數據庫鏡像