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