SqlServer2016 無(wú)域AlwaysOn雙機(jī)高可用性配置

Windows Server 2016 以及 SQL Server 2016出來(lái)已有一段時(shí)間了,因?yàn)閃indows Server 2016可以配置無(wú)域的Windows群集,因此也能夠以此來(lái)配置無(wú)域的SQL Server AlwaysOn 高可用。

下面就來(lái)一步一步配置2個(gè)節(jié)點(diǎn)的無(wú)域的SQL AlwaysOn

環(huán)境準(zhǔn)備:

(1)2臺(tái)物理服務(wù)器,也可以是2臺(tái)虛擬機(jī)。操作系統(tǒng):Windows Server 2016 Datacenter

(2)2臺(tái)服務(wù)器上均安裝SQL Server 2016 (也可以是SQL Server 2012)

IP以及名稱規(guī)劃:

節(jié)點(diǎn)1(物理服務(wù)器或虛擬機(jī)):JF-SQLDB01 IP地址:10.2.218.131

節(jié)點(diǎn)2(物理服務(wù)器或虛擬機(jī)):JF-SQLDB02 IP地址:10.2.218.132

Windows群集名稱:JF-AlwaysOn IP地址:10.2.218.130 (虛擬IP)

可用性組名稱:SQLAG

SQL偵聽(tīng)器名稱:JFSQL01 IP地址:10.2.218.133(虛擬IP)

注意事項(xiàng):

1,只有Windows Server 2016 操作系統(tǒng)才能配置不依賴域的群集 ,2臺(tái)服務(wù)器的操作系統(tǒng),安全補(bǔ)丁,SQL Server版本要完全一致。

2,兩個(gè)節(jié)點(diǎn)的Windos Server 2016 都以Administrator賬戶登錄,并且兩臺(tái)服務(wù)器的Administrator密碼相同,無(wú)特殊意義,只是為了方便后續(xù)的操作。

3,兩個(gè)節(jié)點(diǎn)的SQL Server 2016 服務(wù)啟動(dòng)賬戶都設(shè)置成Administrator 。2個(gè)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)都有Administrator的登錄名,也就是使用Administrator登錄服務(wù)器時(shí),可用Windows身份驗(yàn)證登錄SQL Server。

即:節(jié)點(diǎn)1的SQL Server上有:JF-SQLDB01\administrator ;節(jié)點(diǎn)2上有:JF-SQLDB02\administrator ;這2個(gè)登錄賬號(hào),在安裝SQL Server的時(shí)候可創(chuàng)建。均有sysadmin權(quán)限。

一:首先配置Windows故障轉(zhuǎn)移群集(2個(gè)節(jié)點(diǎn)均使用Administrator登錄)

第一步:安裝Windows故障轉(zhuǎn)移群集(所有節(jié)點(diǎn)都需要安裝)

image

第二步:每個(gè)節(jié)點(diǎn)的計(jì)算機(jī)不需要加入域,但需要添加DNS后綴,且每個(gè)節(jié)點(diǎn)的后綴必須要相同(例如:test.cn),如下圖所示的操作。

image

第三步:在每個(gè)節(jié)點(diǎn)上都添加一個(gè)用戶(我增加的用戶名稱是DCAdmin),且用戶名以及密碼每個(gè)節(jié)點(diǎn)都一致,添加此用戶的目的是為了2臺(tái)服務(wù)器能訪問(wèn)共享文件夾。

image

第四步:在每個(gè)節(jié)點(diǎn)的 hosts 文件中添加每個(gè)節(jié)點(diǎn)的服務(wù)器IP地址和名稱、群集IP地址和名稱、偵聽(tīng)器IP地址和名稱,如下所示。

hosts文件路徑:C:\Windows\System32\drivers\etc

hosts文件可以用記事本打開(kāi)

image
image

服務(wù)器名稱,填寫(xiě)的是計(jì)算機(jī)全名,也就是服務(wù)器名帶上之前設(shè)置的DNS名稱后綴的名稱,例如:JF-SQLDB01.test.cn。host文件需要在2個(gè)節(jié)點(diǎn)的服務(wù)器上都進(jìn)行相同的操作。

第五步:設(shè)置允許應(yīng)用或功能通過(guò)防火墻,兩個(gè)節(jié)點(diǎn)均要設(shè)置,按照下面圖中紅框框出的地方設(shè)置,注意選項(xiàng)后面打勾的位置。

image
image
image

第六步:在DB1這個(gè)節(jié)點(diǎn)上,以管理員方式運(yùn)行PowerShell ,使用腳本創(chuàng)建Windows群集。因?yàn)闊o(wú)域的群集沒(méi)有圖形化界面可設(shè)置,所以只能使用PowerShell 進(jìn)行創(chuàng)建。

image

注意:如果登陸Windows Server 2016服務(wù)器的賬戶不是Administrator,需要先以管理員方式運(yùn)行PowerShell,并執(zhí)行下面的腳本:

new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1

因?yàn)槲业顷慦indows Server 2016用的是Administrator,所以跳過(guò)執(zhí)行上面的命令,直接運(yùn)行下面的PowerShell腳本:

New-Cluster -Name JF-AlwaysOn -Node JF-SQLDB01,JF-SQLDB02 -StaticAddress 10.2.218.130 -AdministrativeAccessPoint DNS

--獲取集群名
Get-Cluster

--群集詳情
Get-ClusterResource

image

使用Power Shell 安裝群集后,在故障轉(zhuǎn)移群集管理器中是看不到群集信息的,需要手動(dòng)連接到群集,如下面圖所示:

image

打開(kāi)故障轉(zhuǎn)移群集管理器后,在管理器處右鍵鼠標(biāo),選擇“連接到群集” :

image

在彈出的對(duì)話框中手動(dòng)輸入群集的名稱:

image

這樣就能在故障轉(zhuǎn)移群集管理器中看到群集的信息了。同樣的方法在DB2的節(jié)點(diǎn)上再重復(fù)設(shè)置即可在DB2上看到群集信息。

image

二:配置SQL Server AlwaysOn
SQL Server的安裝這里就不描述,直接從配置AlwaysOn開(kāi)始操作。
1 ,這里配置AlwaysOn,我采用的是共享文件夾的方式,所以首先在DB1這個(gè)節(jié)點(diǎn)上創(chuàng)建一個(gè)共享文件夾添加之前在每個(gè)節(jié)點(diǎn)上都創(chuàng)建的用戶DCAdmin,這樣DB2這個(gè)節(jié)點(diǎn)也能訪問(wèn)。


image

2,在DB1和DB2上設(shè)置啟用AlwaysOn

image

啟用AlwaysOn會(huì)要求重啟服務(wù),重啟就可以。

**3,重啟服務(wù)后,查看服務(wù)器屬性,確保 HADR 為 True **


image

既然節(jié)點(diǎn)沒(méi)有加入域,那么就不能用域認(rèn)證,只能用證書(shū)認(rèn)證,因此需要在每個(gè)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)中創(chuàng)建其他節(jié)點(diǎn)的數(shù)據(jù)庫(kù)證書(shū)。(請(qǐng)留意我連接數(shù)據(jù)庫(kù)的賬戶,在創(chuàng)建端口的代碼中有用到)

因此在配置可用性組前先在各節(jié)點(diǎn)配置證書(shū)認(rèn)證信任。

4,分別在兩個(gè)節(jié)點(diǎn)數(shù)據(jù)庫(kù)上創(chuàng)建證書(shū),并且彼此還原對(duì)方的證書(shū),SQL代碼如下:

注:我是在節(jié)點(diǎn)1上用administrator登錄服務(wù)器,使用Windows身份登錄SQL Server。在節(jié)點(diǎn)2上也是用administrator登錄服務(wù)器,使用Windows身份登錄SQL Server

--共享文件夾路徑: ---\\JF-SQLDB01\SQLAlwaysOnShare   使用共享文件夾是為了方便讀取每個(gè)節(jié)點(diǎn)的證書(shū)
--節(jié)點(diǎn)一上執(zhí)行:創(chuàng)建主密鑰/證書(shū)/端點(diǎn),備份證書(shū)到共享文件夾中。
USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'JFAlwaysOnShare2016'; ----密碼
GO

CREATE CERTIFICATE Cert_DB01
WITH SUBJECT = 'Cert_DB01',
START_DATE = '2017-12-01',EXPIRY_DATE = '2099-12-31';  --證書(shū)的有效時(shí)間
GO

----導(dǎo)出證書(shū),將證書(shū)放在共享文件夾里面
BACKUP CERTIFICATE Cert_DB01
TO FILE = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB01.cer';    
GO

---創(chuàng)建端點(diǎn)
CREATE ENDPOINT [SQLAG_Endpoint]
AUTHORIZATION [JF-SQLDB01\administrator]    ----此賬戶是連接數(shù)據(jù)庫(kù)的賬戶
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)   ---偵聽(tīng)端口,1024 和 32767 之間的任何數(shù)字都有效。偵聽(tīng)I(yíng)P地址,默認(rèn)值為 ALL,表示偵聽(tīng)器將接受任何有效 IP 地址上的連接
FOR DATA_MIRRORING
(ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_DB01, ENCRYPTION = REQUIRED ALGORITHM AES)
GO

--節(jié)點(diǎn)二上執(zhí)行:創(chuàng)建主密鑰/證書(shū),備份證書(shū)。
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'JFAlwaysOnShare2016';
GO

CREATE CERTIFICATE Cert_DB02
WITH SUBJECT = 'Cert_DB02',
START_DATE = '2017-12-01',EXPIRY_DATE = '2099-12-31';
GO

BACKUP CERTIFICATE Cert_DB02
TO FILE = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB02.cer';
GO

CREATE ENDPOINT [SQLAG_Endpoint]
AUTHORIZATION [JF-SQLDB02\administrator]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING
(ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_DB02, ENCRYPTION = REQUIRED ALGORITHM AES)
GO


--節(jié)點(diǎn)一上執(zhí)行:創(chuàng)建節(jié)點(diǎn)二的證書(shū)
USE master;
GO
CREATE CERTIFICATE Cert_DB02
FROM FILE = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB02.cer';
GO

--節(jié)點(diǎn)二上執(zhí)行:創(chuàng)建節(jié)點(diǎn)一的證書(shū)
USE master;
GO
CREATE CERTIFICATE Cert_DB01
FROM FILE = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB01.cer';
GO

5,配置可用性組,接下來(lái)就和以前版本的配置是一樣的了,不再描述,按照下面的截圖一步一步配置

image
image
image
image
image
image
image
image
image
image
image

6,最后創(chuàng)建偵聽(tīng)器,當(dāng)然,創(chuàng)建偵聽(tīng)器也可以在上一步設(shè)置。

image

image
image

最后,可以使用偵聽(tīng)器名稱來(lái)連接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)顯示已同步,配置無(wú)域AlwaysOn成功。

image

本文地址:[https://blog.csdn.net/roven257/article/details/78691892)
作者博客:左君右峰

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容