1. 程式人生 > >配置SQL Server 2016無域AlwaysOn(轉)

配置SQL Server 2016無域AlwaysOn(轉)

命令 火墻 地址 ons 五步 red 圖形 ssp 故障轉移群集

Windows Server 2016 以及 SQL Server 2016出來已有一段時間了,因為Windows Server 2016可以配置無域的Windows群集,因此也能夠以此來配置無域的SQL Server AlwaysOn 高可用。

下面就來一步一步配置無域的SQL AlwaysOn

環境準備:

(1)操作系統:Windows Server 2016 Datacenter

(2)SQL Server 2016

註意:只有Windows Server 2016 才能無域配置群集

IP以及名稱規劃:

節點1:JF-SQLDB01 IP地址:10.2.218.131

節點2:JF-SQLDB02 IP地址:10.2.218.132

Windows群集名稱:JF-AlwaysOn IP地址:10.2.218.130

可用性組名稱:SQLAG

SQL偵聽器名稱:JFSQL01 IP地址:10.2.218.133

註意事項:

1,兩個節點的Windos Server 2016 都已Administrator賬戶運行,並且兩臺服務器的Administrator密碼相同。

2,兩個節點的SQL Server 2016 服務啟動賬戶都設置成Administrator 。

一:首先配置Windows群集

第一步:安裝Windows故障轉移群集(所有節點都需要安裝)

第二步:每個節點的計算機不需要加入域,但需要添加DNS後綴,且每個節點的後綴必須要相同,如下圖所示的操作。

第三步:在每個節點上都添加一個用戶,且用戶名以及密碼每個節點都一致。

第四步:在每個節點的 hosts 文件中添加節點的計算機信息、群集信息、偵聽器信息。

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

hosts文件可以用記事本打開

第五步:設置允許應用或功能通過防火墻,兩個節點均要設置,按照下面圖中紅框框出的地方設置,註意選項後面打勾的位置。

第六步:在DB1這個節點上,用以管理員方式運行Power Shell ,使用腳本創建Windows群集。因為無域的群集沒有圖形化界面可設置,所以只能使用PowreShell 。

註意:如果登陸Windows Server 2016服務器的賬戶不是Administrator,需要先以管理員方式運行PowerShell,執行下面的命令:

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

因為我登陸Windows Server 2016用的是Administrator,所以跳過執行上面的命令,直接運行下面的命令:

Power Shell 腳本: New-Cluster -Name JF-AlwaysOn -Node JF-SQLDB01,JF-SQLDB02 -StaticAddress 10.2.218.130 -AdministrativeAccessPoint DNS

--獲取集群名
Get-Cluster

--群集詳情
Get-ClusterResource

使用Power Shell 安裝群集後,在故障轉移群集管理器中是看不到群集信息的,需要手動連接到群集,如下面圖所示:

打開故障轉移群集管理器後,在管理器處右鍵鼠標,選擇“連接到群集” :

在彈出的對話框中手動輸入群集的名稱:

這樣就能在故障轉移群集管理器中看到群集的信息了。同樣的方法在DB2的節點上再重復設置即可在DB2上看到群集信息。

二:配置SQL Server AlwaysOn

SQL Server的安裝這裏就不描述,直接從配置AlwaysOn開始操作。

1 ,這裏配置AlwaysOn,我采用的是共享文件夾的方式,所以首先在DB1這個節點上創建一個共享文件夾添加之前在每個節點上都創建的用戶DCAdmin,讓DB2這個節點也能訪問。

2,在DB1和DB2上啟用AlwaysOn

啟用AlwaysOn會要求重啟服務,重啟就可以。

3,重啟服務後,查看服務器屬性,確保 HADR 為 True

既然節點沒有加入域,那麽就不能用域認證,只能用證書認證,因此需要創建證書和端點。

因此在配置可用性組前先在各節點配置證書認證信任。

4,分別在兩個節點數據庫上創建證書,並且彼此還原對方的證書,SQL代碼如下:

--共享文件夾路徑: ---\\JF-SQLDB01\SQLAlwaysOnShare

--節點一上執行:創建主密鑰/證書/端點,備份證書。
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‘;
GO

BACKUP CERTIFICATE Cert_DB01
TO FILE = ‘\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB01.cer‘;
GO

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

--節點二上執行:創建主密鑰/證書,備份證書。
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


--節點一上執行:創建節點二的證書
USE master;
GO
CREATE CERTIFICATE Cert_DB02
FROM FILE = ‘\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB02.cer‘;
GO

--節點二上執行:創建節點一的證書
USE master;
GO
CREATE CERTIFICATE Cert_DB01
FROM FILE = ‘\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB01.cer‘;
GO

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

6,最後創建偵聽器,當然,創建偵聽器也可以在上一步設置。

最後,可以使用偵聽器來進入數據庫,配置無域AlwaysOn成功。


---------------------
作者:左君右峰
來源:CSDN
原文:https://blog.csdn.net/roven257/article/details/78691892
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

配置SQL Server 2016無域AlwaysOn(轉)