SQL Server 2017 AlwaysOn on Linux 配置和維護(10)

2.3.4 將AG添加爲羣集資源


爲SQL Server安裝與Pacemaker集成的SQL Server資源代理node

在全部節點上運行:sql

sudo yum install mssql-server-ha


建立Pacemaker用的SQL Server登陸名bash

在全部節點上運行:服務器

USE [master]
GO
CREATE LOGIN [pacemakerLogin] with PASSWORD= N'ComplexP@$$w0rd!'
ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin]

或者,能夠更精細的級別設置權限:ide

GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::ag1 TO pacemakerLogin
GRANT VIEW SERVER STATE TO pacemakerLogin


在全部節點,保存SQL Server登陸名的憑據。spa

echo 'pacemakerLogin' >> ~/pacemaker-passwd
echo 'ComplexP@$$w0rd!' >> ~/pacemaker-passwd
sudo mv ~/pacemaker-passwd /var/opt/mssql/secrets/passwd
sudo chown root:root /var/opt/mssql/secrets/passwd
sudo chmod 400 /var/opt/mssql/secrets/passwd # Only readable by root


在羣集中建立AG資源3d

建立ocf:mssql:ag master/slave類型的具備可用性組ag1的AG資源ag_cluster:代理

sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s master notify=true

備註:建立資源後,以後按期地Pacemaker資源代理根據AG的配置自動設置AG的REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT的值。server


在羣集中建立虛擬IP資源blog

在一個節點上運行:

sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=<10.128.16.240>

在Pacemaker中沒有虛擬服務器名。爲了在鏈接串中使用一個字符串服務器名代替IP地址,在DNS中註冊虛擬IP地址和但願的虛擬服務器名。對於災難恢復配置,在主站點和災備站點的DNS中註冊虛擬IP地址和但願的虛擬服務器名。


添加Colocation約束

Colocation約束主要用於根據資源 A的節點位置來決定資源 B的位置,即在啓動資源 B的時候,會依賴資源 A的節點位置。例如將資源 A與資源 B進行 Colocation約束,假設資源A已經運行在 node1上,則資源 B也會在node1上啓動,而若是node1故障,則資源B與 A會同時切換到node2而不是其中某個資源切換到 node3。


Pacemaker羣集中的幾乎全部決定,好比選擇資源運行的位置,都是靠比較分數來制定。每一個資源計算分數。羣集資源管理器將選擇具備特定資源的最高分數的節點。 若是某個節點具備負的分值的資源,資源沒法在該節點上運行。


在Pacemaker羣集上,你能夠對含有約束的羣集的作決策。約束有一個分數。若是約束的分數低於INFINITY,Pacemaker將它看做建議。分數爲INFINITY是必需的。

若要確保主副本和虛擬 ip 資源在同一主機上運行,請定義一個分數爲 INFINITY 的主機託管約束。 若要添加colocation約束,請在一個節點上運行如下命令。

sudo pcs constraint colocation add virtualip ag_cluster-master INFINITY with-rsc-role=Master


添加排序約束

Colocation約束具備隱式排序約束。在移動AG資源前,它將先移動虛擬IP資源。

若要防止 IP 地址暫時指向具備故障轉移前的次要副本的節點,請添加排序約束。

若要添加排序約束,請在一個節點上運行如下命令:

sudo pcs constraint order promote ag_cluster-master then start virtualip


查看羣集狀態

sudo pcs status

clip_image002

相關文章
相關標籤/搜索