16.10. 高可用性变量

您可以使用下表中的变量为 Microsoft SQL Server 配置高可用性。

表 16.5. 高可用性配置变量

变量描述

mssql_ha_configure

默认值为 false

当它被设置为 true 时,执行以下操作:

  • 通过打开 mssql_ha_listener_port 变量的端口来配置防火墙,并在防火墙中启用 high-availability 服务。
  • 配置 SQL Server 以实现高可用性。

    • 启用 Always On Health 事件。
    • 在主副本上创建证书并将其分发给其他副本。
    • 配置端点和资源组。
    • 为 Pacemaker 配置来自 mssql_ha_login 变量的用户。
  • 可选:包含用于配置 Pacemaker 的系统角色 ha_cluster 角色。您必须将 mssql_ha_cluster_run_role 设置为 true,并提供 ha_cluster 角色为 Pacemaker 集群配置所需的所有变量。

mssql_ha_replica_type

此变量指定您可以在主机上配置哪些类型的副本。您可以将此变量设置为 primary, synchronous, 和 witness。您必须只在一个主机上将其设置为 primary

mssql_ha_listener_port

默认端口为 5022

该角色使用此 TCP 端口为 Always On availability 组复制数据。

mssql_ha_cert_name

您必须定义证书的名称,以便在 Always On Availability 组成员间保护事务。

mssql_ha_master_key_password

您必须设置用于证书的 master 密钥的密码。

mssql_ha_private_key_password

您必须设置用于证书的私钥的密码。

mssql_ha_reset_cert

默认值为 false

如果设置为 true,请重置 Always On availability 组使用的证书。

mssql_ha_endpoint_name

您必须定义要配置的端点的名称。

mssql_ha_ag_name

您必须定义要配置的可用区的名称。

mssql_ha_db_names

您可以定义要复制的数据库列表,否则角色会创建集群,而不复制数据库。

mssql_ha_login

SQL Server Pacemaker 资源代理利用此用户来执行数据库健康检查,并管理从副本转换到主服务器的状态。

mssql_ha_login_password

SQL Server 中的 mssql_ha_login 用户的密码。

mssql_ha_cluster_run_role

默认值为 false

此变量定义此角色是否运行 ha_cluster 角色。

请注意,ha_cluster 角色替换了指定节点上 HA 集群的配置,当前为 HA 集群配置的所有变量都会被清除并覆盖。

要临时解决这个问题,microsoft.sql.server 角色不会为 ha_cluster 角色设置任何变量,以确保它不会覆盖任何现有的 Pacemaker 配置。

如果您希望 microsoft.sql.server 运行 ha_cluster 角色,请将此变量设置为 true,并为 ha_cluster 角色提供变量,并带有 microsoft.sql.server 角色调用。

请注意,此角色会将数据库备份到 /var/opt/mssql/data/ 目录。

其他资源

  • /usr/share/ansible/roles/microsoft.sql-server/README.md file