SQL Server 2017 AlwaysOn Linux上配置和维护(10)

  <编辑>


<强>为SQL Server <强>安装与起搏器 <强>集成的SQL Server <强>资源代理

在所有节点上运行:

sudo  yum  install  mssql-server-ha

<强>

<>强创建起搏器 <强>用的SQL Server <>强登录名

在所有节点上运行:

USE (主)   去   CREATE  LOGIN  [pacemakerLogin], with 密码=,n # 39; ComplexP@ $ $ w0rd ! & # 39;   ALTER  SERVER  ROLE (系统管理员),ADD  MEMBER  [pacemakerLogin]

或者,可以更精细的级别设置权限:

GRANT 改变,,控制,VIEW  DEFINITION 提醒AVAILABILITY 组::ag1 用pacemakerLogin   GRANT  VIEW  SERVER  STATE 用pacemakerLogin


在所有节点,保存SQL Server登录名的凭据。

echo  & # 39; pacemakerLogin& # 39;,在在~/pacemaker-passwd   echo  & # 39; ComplexP@ $ $ w0rd ! & # 39;,在在~/pacemaker-passwd   sudo  mv  ~/pacemaker-passwd /var/opt/该软件/机密/passwd   sudo  chown 根:root /var/opt/该软件/机密/passwd   sudo chmod 400 /var/opt/mssql/secrets/passwd # Only readable by root


在群集中创建AG资源

创建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的值。


在群集中创建虚拟IP资源

在一个节点上运行:

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

SQL Server 2017 AlwaysOn on Linux 配置和维护(10)

SQL Server 2017 AlwaysOn Linux上配置和维护(10)