日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sqlserver故障转移集群和alwayson的区别_详解SQL Server 2016 + AlwaysOn 无域集群

發(fā)布時(shí)間:2023/12/8 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlserver故障转移集群和alwayson的区别_详解SQL Server 2016 + AlwaysOn 无域集群 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

搭建 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
  • 為可用性副本(服務(wù)器實(shí)例)配置只讀路由 URL,路由地址可以填 IP 或者計(jì)算機(jī)名,端口填數(shù)據(jù)庫實(shí)例綁定的 TCP/IP 端口。
  • 執(zhí)行腳本:
  • USE [master]GOALTER AVAILABILITY GROUP [posTestAg]MODIFY REPLICA ON N'POSTEST1-2016POSTEST' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL = N'TCP://10.98.98.227:1433'))GOALTER AVAILABILITY GROUP [posTestAg]MODIFY REPLICA ON N'POSTEST2-2016POSTEST' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL = N'TCP://10.98.98.228:1433'))GO

    也可以右鍵可用性組選擇屬性,通過 UI 方式更改

  • 每個(gè)自動(dòng)轉(zhuǎn)移副本配置只讀路由列表
  • USE [master]GOALTER AVAILABILITY GROUP [posTestAg]MODIFY REPLICA ONN'POSTEST1-2016POSTEST' WITH(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(('POSTEST2-2016POSTEST'),'POSTEST1-2016POSTEST')));GOALTER AVAILABILITY GROUP [posTestAg]MODIFY REPLICA ONN'POSTEST2-2016POSTEST' WITH(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(('POSTEST1-2016POSTEST'),'POSTEST2-2016POSTEST')));GO

    使用“()”對只讀路由列表進(jìn)行分組,

    List 1: 'POSTEST1-2016POSTEST'

    List 2: 'POSTEST2-2016POSTEST'

    按如下方式工作:

  • 路由到第一個(gè)列表中的副本,如果第一個(gè)列表存在多個(gè)副本,則對讀取連接進(jìn)行輪詢分發(fā)。
  • 如果第一列表中任一副本不可用了,路由將繼續(xù)到第一個(gè)列表中的其他可用副本。
  • 如果第一個(gè)列表中的所有副本都不可訪問,將會路由到下一個(gè)列表
  • 如果第一個(gè)列表中的任一副本可用,將會恢復(fù)路由到第一個(gè)列表
  • 測試只讀路由效果,sqlcmd 使用 Readonly 指定為只讀連接,
  • sqlcmd -S 10.98.98.231 -K Readonly -d test -Q "select @@servername" -e

    只讀連接被連接到輔助副本

    使用 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ù)庫。

  • 主副本創(chuàng)建登陸賬號 satest
  • 查看主庫上該賬號的 sid 為庫名
  • SELECT * FROM [test]..sysusers
  • 在副本數(shù)據(jù)庫上創(chuàng)建對應(yīng)賬號,其中 sid對應(yīng)的值是主庫上所查到的sid的值
  • CREATE LOGIN [satest] WITH PASSWORD=N'xxxxxxx',SID =0x99AD266AFD26F841B3E49EF9633B0D4B, DEFAULT_DATABASE=[test], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF

    使用故障轉(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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。