sqlserver故障转移集群和alwayson的区别_详解SQL Server 2016 + AlwaysOn 无域集群
搭建 WSFC
配置計算機的 DNS 后綴
1、配置計算機的 DNS 后綴,注意在同個工作組
2、每個節(jié)點的機器都要做域名解析,修改 host 文件C:WindowsSystem32driversetc
安裝故障轉移集群
1、節(jié)點服務器添加故障轉移群集功能
2、等待安裝完成
驗證集群
1、打開故障轉移集群管理工具
2、點擊驗證配置
3、添加集群節(jié)點
4、運行所有測試
5、可以點擊查看驗證報告,勾選立即使用經(jīng)過驗證的節(jié)點創(chuàng)建集群
創(chuàng)建集群
1、配置集群的管理名稱和管理IP
2、等待配置完成
3、可以查看集群報告,稍后配置文件共享見證
創(chuàng)建文件共享見證
由于我們是兩個節(jié)點的故障轉移集群,所以需要加上共享文件夾,如果是奇數(shù)節(jié)點,這一步是不需要做的!
1、配置集群仲裁
2、選擇文件共享見證
3、在集群節(jié)點之外的一臺服務器上創(chuàng)建共享文件夾XIANGMU4TEST01share,并設置 Everyone 完全控制的權限
配置 AlwaysOn
1、開啟 AlwaysOn
2、需要重啟 SQL Server 服務
3、檢查,如果 AlwaysOn 啟用成功,在服務器屬性里可以看到啟用HADR為True
4、查看各節(jié)點的投票數(shù)
SELECT * FROM sys.dm_hadr_cluster_members;查看 cluster
SELECT * FROM SYS.[dm_hadr_cluster]新建可用性組
但是既然節(jié)點沒有加入AD,那么久不能用域認證,只能用證書認證,因此需要創(chuàng)建證書和端點。在配置可用性組前各節(jié)點進行證書認證信任。
1、修改 SQL 服務登陸賬號為本機管理員賬號
2、創(chuàng)建證書,兩個節(jié)點都要創(chuàng)建證書,注意修改證書名稱
--節(jié)點二:創(chuàng)建主密鑰/證書,備份證書。USE master;GOCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'AAA111aaa';GOCREATE CERTIFICATE Cert_server228WITH SUBJECT = 'Cert_server228',START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';GOBACKUP CERTIFICATE Cert_server228TO FILE = 'C:StorageCert_server228.cer';GO注意:備份證書的文件夾要先創(chuàng)建好,并且賦予權限
將創(chuàng)建好的證書放到另一臺節(jié)點服務器,并加入證書
--節(jié)點二:創(chuàng)建其他節(jié)點證書USE master;GOCREATE CERTIFICATE Cert_server227FROM FILE = 'C:StorageCert_server227.cer';GO證書創(chuàng)建好后如下
重新創(chuàng)建端點,授權賬號設置為本機管理員賬號,驗證方式使用上面創(chuàng)建的證書
--節(jié)點:創(chuàng)建端點CREATE ENDPOINT [testag_endpoint] AUTHORIZATION [POSTEST2-2016Administrator] STATE=STARTED AS TCP (LISTENER_PORT = 5023, LISTENER_IP = ALL) FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_server228, ENCRYPTION = REQUIRED ALGORITHM AES)GO如果存在已有的端點,則需要將已有端點刪除
在主節(jié)點服務器操作新建可用性組。
設置可用性組名稱,建議勾選數(shù)據(jù)庫級別運行狀況檢測。
- 在之前的 AlwaysOn 2012 和 2014 中,如果實例健康出現(xiàn)問題,將觸發(fā)故障轉移。如果有一個數(shù)據(jù)庫有問題,只要實例OK,可用性組就不會故障轉移。
- 在 AlwaysOn 2016 中,勾選之后,不論是一個實例有問題,還是一個或多個數(shù)據(jù)庫有問題,都會發(fā)生故障轉移。
選擇數(shù)據(jù)庫,要求數(shù)據(jù)庫已經(jīng)進行了完整備份
添加副本節(jié)點,并勾選自動故障轉移,設置輔助副本為可讀副本
將端點 URL 設置為 IP 方式,這里端點會顯示為我們上面創(chuàng)建的端點,登陸賬號為我們上面設置的賬號
“備份首選項”和“偵聽器”不需要設置,保持默認就行,可用性偵聽器我們后面再添加,可以直接點擊“下一步”
數(shù)據(jù)同步這里建議使用完整的數(shù)據(jù)庫和日志備份的方式更方便,需要有一個共享文件夾,并且節(jié)點服務器要有相同的數(shù)據(jù)庫文件目錄結構
等待可用性組創(chuàng)建成功
創(chuàng)建成功后數(shù)據(jù)庫狀態(tài)顯示為已同步
故障轉移集群會顯示擁有一個群集角色
顯示面板可以查看集群信息
創(chuàng)建偵聽器
一個偵聽器包括虛擬IP地址、虛擬網(wǎng)絡名稱、端口號三個元素,一旦創(chuàng)建成功,虛擬網(wǎng)絡名稱會注冊到DNS中,同時為可用性組資源添加IP地址資源和網(wǎng)絡名稱資源。用戶就可以使用此名稱來連接到可用性組中。
1、添加偵聽器
2、選擇使用靜態(tài) IP
3、創(chuàng)建成功后,在故障轉移集群管理器里的角色節(jié)點,可以看到客戶端訪問名稱和 IP 地址
4、連接數(shù)據(jù)庫時使用偵聽器的地址
可讀副本的負載均衡
SQL Server 2016 支持多個只讀副本負載分擔只讀操作。
右鍵一個可用性副本可以查看副本的只讀性設置:
主角色中的連接
主角色中支持的連接訪問類型:
- 允許所有連接(ALL):主數(shù)據(jù)庫同時允許讀寫連接和只讀連接。這是主角色的默認行為。
- 僅允許讀/寫連接(READ_WRITE):允許 ApplicationIntent=ReadWrite 或未設置連接條件的連接。不允許 ApplicationIntent=ReadOnly 的連接。僅允許讀寫連接可幫助防止客戶錯誤地將讀意向工作負荷連接到主副本。
修改腳本:
USE [master]GOALTER AVAILABILITY GROUP [posTestAg]MODIFY REPLICA ON N'POSTEST1-2016POSTEST' WITH (PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE))GO可讀輔助副本
輔助角色支持的連接訪問類型:
- 無連接(NO):不允許任何用戶連接。輔助數(shù)據(jù)庫不可用于讀訪問。這是輔助角色中的默認行為。
- 僅讀意向連接(READ_ONLY):輔助數(shù)據(jù)庫僅接受連接參數(shù) ApplicationIntent=ReadOnly 的連接,其它的連接方式無法連接。
- 允許任何只讀連接(ALL):輔助數(shù)據(jù)庫全部可用于讀訪問連接。此選項允許較低版本的客戶端進行連接。
修改腳本:
USE [master]GOALTER AVAILABILITY GROUP [posTestAg]MODIFY REPLICA ON N'POSTEST1-2016POSTEST' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY))GO設置數(shù)據(jù)庫實例監(jiān)聽端口
1、Sql Server 配置管理工具找到數(shù)據(jù)庫實例的網(wǎng)絡配置,
2、右鍵 TCP/IP,默認配置的是動態(tài)端口
3、這里修改為固定端口 1433
4、最后需要重啟 Sql Server 服務。
配置可用性組只讀路由
執(zhí)行下面 sql 獲取可用性組名稱:
select name,* from sys.availability_groups執(zhí)行下面 sql 獲取要配置的可用性副本名稱(服務器實例):
select replica_server_name,* from sys.availability_replicas也可以右鍵可用性組選擇屬性,通過 UI 方式更改
使用“()”對只讀路由列表進行分組,
List 1: 'POSTEST1-2016POSTEST'
List 2: 'POSTEST2-2016POSTEST'
按如下方式工作:
只讀連接被連接到輔助副本
使用 SSMS 或者 EF 等需要在連接字符串設置參數(shù)ApplicationIntent=ReadOnly
注意:
想要使用輔助副本負載讀操作,必須要在連接字符串中配置為只讀連接,然后在程序中指定使用只讀連接進行數(shù)據(jù)庫讀取操作,AlwaysOn 自身不能自動負載均衡。
配置賬號
為每個數(shù)據(jù)庫節(jié)點配置登陸賬號,然后通過監(jiān)聽器使用該賬號登陸數(shù)據(jù)庫。
使用故障轉移
建議使用 SSMS 中 AlwaysOn 進行手動故障轉移。
后面會分享更多devops和運維方面的內容,感興趣的朋友可以關注一下~
總結
以上是生活随笔為你收集整理的sqlserver故障转移集群和alwayson的区别_详解SQL Server 2016 + AlwaysOn 无域集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 02_ue4界面介绍
- 下一篇: MySQL时间戳转换