SQL Server 2016 Always On 總結整理


一、Always On簡介

從SQL Server 2012開始,SQLServer引入了一種新的高可用技術,它的名字叫做AlwaysOn。AlwaysOn在開發初期代號叫做HADRon。但是AlwaysOn相對於故障轉移群集、數據庫鏡像和日志傳送而言,的確是擁有許多優勢。甚至可以說,AlwaysOn是這三種技術的集大成者。想要了解更全面的介紹和技術內容,可參考《SQL Server 2012 實踐與管理實戰指南》和官方文檔。

二、Always On 構建

SQL Server 2016 Always On 可以在域環境、非域環境構建,從構建角度來看,最大的不同之處是AG間主要副本和輔助副本間數據同步時,數據庫實例間認證方式存在差異。
域環境可以使用Windows認證、證書認證,非域環境可使用證書認證。此處只討論域環境下兩個節點的Always On構建及維護。

1、環境准備

(1)域賬號
AD\Administrator --域管理賬戶,用於創建WSFC集群
AD\sqladmin --普通域賬戶,用於SQL Server 服務運行

(2)軟件
SQL Server 2016 SP2 --直接使用SP2版本,打補丁只需打一次
SQL Server補丁(CU14) --從官網下載最新的補丁

(3)服務器

主機名 NA1 NA2
業務網段IP 192.168.10.131 192.168.10.132
心跳網段IP 192.168.20.131 192.168.20.132
存儲網段IP 192.168.30.131 192.168.30.132
操作系統 Windows Server 2016 Windows Server 2016

備注:
· 兩台服務硬件配置、系統環境一致
· 實際生產中,存儲可能不是通過這種方式連接主機的
· 業務網段網卡,需要“禁用TCP/IP上的NetBIOS",否正在創建可用性組偵聽時會報錯(具體原因待深究)。

2、WSFC、SQL Server、AG配置規划

(1)故障轉移集群
集群名稱: SQLCLUSTER --注意命名規范,最好純字母(若實在需要特殊字符請去官網查閱命名規范,2008的域控不支持“-”,2016的域控可以用“-”)
集群IP : 192.168.10.130
網絡規划 :
業務網絡 192.168.10.0/24 集群和業務
心跳網絡 192.168.20.0/24 僅集群
存儲網絡:192.168.30.0/24 僅集群

(2)SQL Server
實例名稱 : MSSQLSERVER
實例運行賬戶: AD\sqladmin
代理運行賬戶: AD\sqladmin
實例端口號 : 1433
端點端口 : 5022 --副本間數據同步通過次端口

(2)可用性組(AG)
AG名稱 : AGSQLHR
AG偵聽名稱 : AGLnsrHR --注意命名規范,最好純字母(若實在需要特殊字符請去官網查閱命名規范)
AG偵聽IP : 192.168.10.136 --注意預留IP地址,防止以后添加節點。

生產中還應關注計算機防火牆、網絡防火牆的影響,應整理出OS、WSFC、SQL Server、AG與數據庫環境構建和使用的相關端口(待補充)。

2、搭建作業

1.兩台服務器配置修改: 修改主機名、配置IP地址,配置業務網卡“禁用TCP/IP上的NetBIOS”。
2.兩台服務器配置OS權限: 本地Administrators組添加成員:AD\sqladmin
3.兩台服務器安裝SQLServer: 以本地賬戶Administrator登錄操作系統,安裝SQL Server,打補丁
SSCM中修改實例、代理服務運行賬戶為 AD\sqladmin (如果時命名實例,還需修改實例訪問端口為規划端口)
SSCM中修改實例啟用Always On高可用,重啟實例。
SSMS連接數據庫實例,在登錄名中添加登錄名AD\sqladmin,同時添加sysadmin角色

4.搭建WSFC: 使用域管理員賬戶AD\Administrator 登錄其中一個服務器
驗證、創建故障轉移集群
配置仲裁
備注:如果是共享文件仲裁,1.需要確保網絡穩定,這種問題發生的概率比較大。2.如果是普通服務器提供的共享文件夾,請考慮服務器是否會出現因打補丁或被他人重啟等不可控的情況。
業界通常將仲裁盤或文件夾設為Q

備注:(1)創建WSFC可以用普通的域賬戶(加入本地Administrator),但需要域控中預先在OU中創建計算機對象SQLCLUSTER,或者給該普通域賬戶賦予創建計算機對象及DNS權限
(2)WSFC創建過程中,域賬戶AD\Administrator在域控中做的主要操作有兩個。
·在NA1、NA2所在OU創建計算機對象:SQLCLUSTER
·在DNS中添加了解析:SQLCLUSTER - 192.168.10.130
后面將要創建的AG是故障轉移集群SQLCLUSTER的資源,而創建AG偵聽時,SQLCLUSTER將在域控中也要做兩個操作
·在SQLCLUSTER所在OU創建計算機對象:AGLnsrHR
·在DNS中添加了解析:AGLnsrHR - 192.168.10.136
實際生產環境中,域控權限設置,創建的計算機對象可能沒有創建計算機對象的權限,因此需要確認SQLCLUSTER的權限。

5.SQLCLUSTER域控權限配置: 在域控中給修改SQLCLUSTER所在OU賦予SQLCLUSTER權限: 創建計算機對象、刪除計算機對象、讀取所有屬性 (名稱待修正)

6.配置Always On 可用性組: 使用本地管理賬戶Administrator登錄NA1
在故障轉移集群管理器中,確認修改: 業務網絡-集群和業務、 心跳網絡-僅集群、 存儲網絡-僅集群
使用SSMS連接到NA1上的數據庫實例,創建測試數據庫testdb,完整備份testdb
創建可用性組AGSQLHR
創建可用性組AGLnsrHR: 偵聽名稱-AGSQLHR 偵聽IP-192.168.10.136

7.故障轉移策略設置: 故障轉移集群管理器中,修改角色AGSQLHR的故障轉移策略為:6小時10次、取消故障恢復 (以實際需求為准,這里供參考)

8.進行AG功能簡單驗證: 數據庫同步,故障轉移。
備注:后期建議進行軟硬件、聯合應用進行測試。

9.業務系統安裝,創建業務數據庫

10.添加業務數據庫至AG
備注:· 數據量使用的自動種子,實際應考慮網絡環境進行判斷使用自動種子還是手工還原。 實測50G的數據量,4CPU,萬兆網絡,磁盤寫高達1300MB/s的條件下,自動種子同步速度約200MB/s~300MB/s。
· 曾經遇到這種情況:數據庫較多,一次性添加多個數據庫至AG,出現部分數據庫無法在輔助副本還原的情況,后面在主庫移除有問題的可用性數據庫,重新一個一個地添加至AG,同步正常。

11.配置數據庫備份維護計划:
指定備份策略: (1)每天23點完整備份+日志備份、本地保留1天、NBU保留7天;(2)設置AG備份策略為“優先輔助副本”
主要副本、輔助輔助配置相同地備份維護計划:
(1)僅復制的完整備份 --任務計划不會備份主要副本,輔助副本不支持普通的完整備份
(2)正常日志備份 --任務計划不會備份主要副本,任意副本上備份日志,會截斷其他副本日志

12.手動備份系統庫

三、Always On 維護

1.故障測試:服務、系統、集群、仲裁等軟硬件故障對AG的影響。

2.故障恢復:輔助副本故障如何修復、主要副本故障如何修改
3.副本增減:增加副本、減少副本、修改端點
4.AG監控:
5.AG性能:
6.SQLServer打補丁


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM