适用于:Linux 上的 SQL Server
本教程演示如何为 Linux 上的 SQL Server 创建和配置可用性组(AG)。 与 Windows 上的 SQL Server 2016 (13.x) 和早期版本不同,可以先启用 AG,也可以不创建基础 Pacemaker 群集。 如果需要,稍后会与群集集成。
本教程包括以下任务:
- 启用可用性组。
- 创建可用性组终结点和证书。
- 使用 SQL Server Management Studio (SSMS) 或 Transact-SQL 创建可用性组。
- 为 Pacemaker 创建 SQL Server 登录和权限。
- 在 Pacemaker 群集中创建可用性组资源(仅限外部类型)。
先决条件
按照为 Linux 上的 SQL Server 部署 Pacemaker 群集中所述部署 Pacemaker 高可用性群集。
启用可用性组功能
与在 Windows 中不同,无法使用 PowerShell 或 SQL Server 配置管理器启用可用性组 (AG) 功能。 在 Linux 上,可以通过两种方式启用可用性组功能:使用 mssql-conf 实用工具或手动编辑 mssql.conf 文件。
重要
必须为仅配置副本启用 AG 功能,即使在 SQL Server Express 上也是如此。
使用 mssql-conf 实用程序
在提示符下运行以下命令:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
编辑 mssql.conf 文件
还可以修改位于 /var/opt/mssql 文件夹下的 mssql.conf 文件。 添加以下行:
[hadr]
hadr.hadrenabled = 1
重启 SQL Server
启用可用性组后,必须重启 SQL Server。 使用以下命令:
sudo systemctl restart mssql-server
创建可用性组终结点和证书
可用性组使用 TCP 终结点进行通信。 在 Linux 下,仅当证书用于身份验证时,才支持 AG 的终结点。 必须从同一 AG 中作为副本参与的所有其他实例上的一个实例还原证书。 即使对于仅配置副本,也需要证书过程。
只能使用 Transact-SQL 创建终结点和还原证书。 还可以使用非 SQL Server 生成的证书。 还需要一个进程来管理和替换任何过期的证书。
重要
如果计划使用 SQL Server Management Studio 向导创建 AG,则仍需要使用 Linux 上的 Transact-SQL 创建和还原证书。
有关各种命令可用选项(包括安全性)的完整语法,请参阅:
注意
虽然要创建的是可用性组,但端点类型将使用 FOR DATABASE_MIRRORING,这是因为某些基础特性曾与现已弃用的功能共享。
此示例将创建用于一个三节点配置的证书。 实例名称为 LinAGN1、LinAGN2 和 LinAGN3。
在
LinAGN1上执行以下脚本以创建主密钥、证书和端点,并备份证书。 对于本例,终结点使用典型的 TCP 端口 5022。CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN1_Cert WITH SUBJECT = 'LinAGN1 AG Certificate'; GO BACKUP CERTIFICATE LinAGN1_Cert TO FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN1_Cert, ROLE = ALL ); GO对
LinAGN2执行相同的操作:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN2_Cert WITH SUBJECT = 'LinAGN2 AG Certificate'; GO BACKUP CERTIFICATE LinAGN2_Cert TO FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN2_Cert, ROLE = ALL ); GO最后,对
LinAGN3执行相同的序列:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN3_Cert WITH SUBJECT = 'LinAGN3 AG Certificate'; GO BACKUP CERTIFICATE LinAGN3_Cert TO FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN3_Cert, ROLE = ALL ); GO使用
scp或其他实用程序,将证书的备份复制到将成为 AG 一部分的每个节点。对于本示例:
- 将
LinAGN1_Cert.cer复制到LinAGN2和LinAGN3。 - 将
LinAGN2_Cert.cer复制到LinAGN1和LinAGN3。 - 将
LinAGN3_Cert.cer复制到LinAGN1和LinAGN2。
- 将
将所有权和与复制的证书文件相关联的组更改为
mssql。sudo chown mssql:mssql <CertFileName>在
LinAGN2上创建与LinAGN3和LinAGN1关联的实例级登录名和用户。CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GO注意
密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。
在
LinAGN2_Cert上还原LinAGN3_Cert和LinAGN1。 具有其他副本的证书是 AG 通信和安全的一个重要方面。CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GO向与
LinAGN2和LinAGN3关联的登录名授予连接到LinAGN1上的端点的权限。GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login;在
LinAGN1上创建与LinAGN3和LinAGN2关联的实例级登录名和用户。CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GO在
LinAGN1_Cert上还原LinAGN3_Cert和LinAGN2。CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GO向与
LinAGN1和LinAGN3关联的登录名授予连接到LinAGN2上的端点的权限。GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login; GO在
LinAGN1上创建与LinAGN2和LinAGN3关联的实例级登录名和用户。CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GO在
LinAGN1_Cert上还原LinAGN2_Cert和LinAGN3。CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO向与
LinAG1和LinAGN2关联的登录名授予连接到LinAGN3上的端点的权限。GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GO
创建可用性组
本部分介绍如何使用 SQL Server Management Studio(SSMS)或 Transact-SQL 为 SQL Server 创建可用性组。
使用 SQL Server Management Studio
本部分介绍如何使用 SSMS 和新可用性组向导创建群集类型为“外部”的 AG。
在 SSMS 中展开“AlwaysOn 可用性组”,右键单击“可用性组”并选择“新建可用性组向导”。
在“简介”对话框中,选择“下一步”。
在“指定可用性组选项”对话框中,输入可用性组的名称,然后在下拉列表中选择
EXTERNAL或NONE群集类型。 部署 Pacemaker 时使用EXTERNAL。 使用NONE于特定场景,如读取扩展。选择数据库级别的健康检测选项是可选的。 有关此选项的详细信息,请参阅可用性组数据库级别运行状况检测故障转移选项。 选择下一步。在“选择数据库”对话框中,选择将参与 AG 的数据库。 每个数据库必须先进行完整备份,然后才能将其添加到可用性组 (AG)。 选择下一步。
在“指定副本”对话框中,选择“添加副本”。
在“连接到服务器”对话框中,输入将作为次要副本的 SQL Server 的 Linux 实例的名称以及要连接的凭据。 选择“连接” 。
对包含仅配置副本或其他次要副本的实例重复前两个步骤。
这三个实例都显示在“指定副本”对话框中。 如果使用外部群集类型,对于将成为真正的辅助副本的辅助副本,请确保可用性模式与主副本的可用性模式匹配,故障转移模式设置为“外部”。 对于仅配置副本,请选择“仅配置”可用性模式。
下面的示例显示具有两个副本的 AG,一个“外部”群集类型和一个“仅配置”副本。
下面的示例显示具有两个副本的 AG,一个“无”群集类型和一个“仅配置”副本。
如果要更改备份首选项,请选择“备份首选项”选项卡。有关 AG 备份首选项的详细信息,请参阅配置 AlwaysOn 可用性组的次要副本备份。
如果使用可读辅助数据库或创建群集类型为 None 的 AG 进行读取缩放,则可以通过选择“ 侦听器 ”选项卡来创建侦听器。还可以稍后添加侦听器。 若要创建侦听器,请选择 “创建可用性组侦听器 ”选项并输入名称、TCP/IP 端口,以及是使用静态还是自动分配的 DHCP IP 地址。 对于群集类型为 "None" 的 AG,IP 应设置为静态,并应当设置为主服务器的 IP 地址。
如果为可读方案创建侦听器,SSMS 允许在向导中创建只读路由。 以后还可以通过 SSMS 或 Transact-SQL 添加它。 立即添加只读路由:
选择“只读路由”选项卡。
输入只读副本的 URL。 这些 URL 类似于终结点,只是它们使用的是实例的端口,而不是终结点。
选择每个 URL,并从底部选择可读副本。 若要进行多选,请按住 Shift 或选择并拖动。
选择下一步。
选择如何初始化次要副本。 默认情况下是使用自动种子设定,这需要在所有参与 AG 的服务器上使用相同的路径。 也可以让向导进行备份、复制和还原(第二个选项);如果已在副本上手动备份、复制和还原数据库,请将其连接(第三个选项);或稍后添加数据库(最后一个选项)。 与证书一样,如果手动进行备份和复制,请在其他副本上的备份文件上设置权限。 选择下一步。
在“验证”对话框中,如果所以内容都没有成功返回,请进行调查。 某些警告是可接受的而不是致命的,例如,不创建侦听器。 选择下一步。
在“摘要”对话框中,选择“完成”。 现在开始创建 AG。
AG 创建完成后,选择“结果”上的“关闭”。 现在可以在动态管理视图中以及 SSMS 中的“Always On 高可用性”文件夹下查看副本上的 AG。
使用 Transact-SQL
本节介绍使用 Transact-SQL 创建 AG 的示例。 创建 AG 后,可以配置侦听器和只读路由。 可以使用 ALTER AVAILABILITY GROUP修改 AG 本身,但不能在 SQL Server 2017 (14.x) 中更改群集类型。 如果不打算创建群集类型为“外部”的 AG,则必须将其删除并使用群集类型“无”重新创建它。 有关详细信息和其他选项,请参阅以下链接:
- CREATE AVAILABILITY GROUP (Transact-SQL)(创建可用性组 (Transact-SQL))
- 更改可用性组 (Transact-SQL)
- 为 Always On 可用性组配置只读路由
- 为 Always On 可用性组配置侦听程序
示例 A:具有仅配置副本的两个副本(“外部”群集类型)
此示例显示如何创建使用仅配置副本的双副本 AG。
在将作为主副本且包含数据库完备读/写副本的节点上执行以下语句。 此示例使用自动种子设定。
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N' TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC ), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', AVAILABILITY_MODE = CONFIGURATION_ONLY ); GO在连接到其他副本的查询窗口中,执行以下语句,将副本加入 AG,并启动从主副本到次要副本的种子设定过程。
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GO在连接到仅配置副本的查询窗口中,运行以下语句将其加入 AG。
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO
示例 B:具有只读路由的三个副本(“外部”群集类型)
此示例演示了三个完整副本,以及如何在初始 AG 创建过程中配置只读路由。
在将作为主副本的节点上执行以下语句,该节点包含数据库的完整读写副本。 此示例使用自动种子设定。
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE < DBName > REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN2.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:1433') ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:1433') ), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN3.FullyQualified.Name:1433') ) LISTENER '<ListenerName>' ( WITH IP = ('<IPAddress>', '<SubnetMask>'), Port = 1433 ); GO有关此配置的一些注意事项:
-
AGName是可用性组的名称。 -
DBName是与可用性组一起使用的数据库的名称。 它也可以是以逗号分隔的名称列表。 -
ListenerName是一个与任何基础服务器或节点不同的名称。 它与 DNS 一起注册IPAddress。 -
IPAddress是与ListenerName相关联的 IP 地址。 它也是唯一的,与任何服务器或节点不同。 应用程序和最终用户将使用ListenerName或IPAddress连接到 AG 。-
SubnetMask是IPAddress的子网掩码。 在 SQL Server 2019(15.x)和以前的版本中,此值为255.255.255.255。 在 SQL Server 2022(16.x)及更高版本中,此值为0.0.0.0。
-
-
在连接到另一副本的查询窗口中,执行以下语句,以将副本加入到 AG 并启动从主副本到次要副本的初始化过程。
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GO对第三个副本重复步骤 2。
示例 C:具有只读路由的两个副本(“无”群集类型)
此示例显示使用群集类型“无”创建双副本配置。 在不期望故障转移的读扩展场景中使用此配置。 此步骤创建的侦听器实际上是主要副本,并使用轮循机制支持只读路由。
在担任主副本的节点上执行以下语句,并且该节点包含数据库的完全读写副本。 此示例使用自动种子设定。
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = NONE) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name: <PortOfEndpoint>', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (('LinAGN1.FullyQualified.Name'.'LinAGN2.FullyQualified.Name')) ), SECONDARY_ROLE( ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:<PortOfInstance>' ) ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfEndpoint>', FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ('LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name') )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfInstance>') ), LISTENER '<ListenerName>' (WITH IP = ( '<PrimaryReplicaIPAddress>', '<SubnetMask>'), Port = <PortOfListener> ); GO在本示例中:
-
AGName是可用性组的名称。 -
DBName是与可用性组一起使用的数据库的名称。 它也可以是以逗号分隔的名称列表。 -
PortOfEndpoint是所创建的终结点使用的端口号。-
PortOfInstance是 SQL Server 实例使用的端口号。
-
-
ListenerName是一个与任何基础副本不同但未实际使用的名称。 -
PrimaryReplicaIPAddress是主要副本的 IP 地址。-
SubnetMask是IPAddress的子网掩码。 在 SQL Server 2019(15.x)和以前的版本中,此值为255.255.255.255。 在 SQL Server 2022(16.x)及更高版本中,此值为0.0.0.0。
-
-
将辅助副本联接到 AG 并启动自动种子设定。
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = NONE); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GO
为 Pacemaker 创建 SQL Server 登录和权限
Linux 上使用 SQL Server 的 Pacemaker 高可用性群集需要访问 SQL Server 实例,以及可用性组本身的权限。 这些步骤用于创建登录和关联权限,以及指示 Pacemaker 如何登录 SQL Server 的文件。
在连接到第一个副本的查询窗口中,执行以下脚本:
CREATE LOGIN PMLogin WITH PASSWORD ='<password>'; GO GRANT VIEW SERVER STATE TO PMLogin; GO GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::<AGThatWasCreated> TO PMLogin; GO在节点 1 上,输入命令:
sudo emacs /var/opt/mssql/secrets/passwd此命令将打开 Emacs 编辑器。
在编辑器中输入以下两行:
PMLogin <password>按住
Ctrl键,再按X,然后按C退出并保存文件。执行:
sudo chmod 400 /var/opt/mssql/secrets/passwd锁定文件。
在其他充当副本的服务器上重复步骤 1-5。
在 Pacemaker 群集中创建可用性组资源(仅限外部类型)
在 SQL Server 中创建可用性组后,当您在 Pacemaker 中指定群集类型为外部时,必须在 Pacemaker 中创建相应的资源。 两个资源与可用性组相关联:可用性组本身和 IP 地址。 如果不使用侦听器功能,则配置 IP 地址资源是可选的,但建议这样做。
创建的 AG 资源是一种称为 克隆的资源类型。 AG 资源在每个节点上都有副本,另一个控制资源称为 主节点。 master 与承载主副本的服务器相关联。 其他资源承载次要副本(常规副本或仅配置副本),并且可以在故障转移时提升为主副本。
用以下语法创建 AG 资源:
sudo pcs resource create <NameForAGResource> ocf:mssql:ag ag_name=<AGName> meta failure-timeout=30s promotable notify=true在此示例中,
NameForAGResource是您为 AG 设置的此群集资源的唯一名称,而AGName是您创建的 AG 的名称。为与侦听器功能关联的 AG 创建 IP 地址资源。
sudo pcs resource create <NameForIPResource> ocf:heartbeat:IPaddr2 ip=<IPAddress> cidr_netmask=<Netmask>在此示例中,
NameForIPResource是 IP 资源的唯一名称,是IPAddress分配给资源的静态 IP 地址。若要确保 IP 地址和 AG 资源在同一节点上运行,请配置并置约束。
sudo pcs constraint colocation add <NameForIPResource> with promoted <NameForAGResource>-clone INFINITY在此示例中,
NameForIPResource是 IP 资源的名称,是NameForAGResourceAG 资源的名称。创建排序约束以确保 AG 资源在 IP 地址之前启动并运行。 虽然归置约束表示排序约束,但此步骤强制执行它。
sudo pcs constraint order promote <NameForAGResource>-clone then start <NameForIPResource>在此示例中,
NameForIPResource是 IP 资源的名称,是NameForAGResourceAG 资源的名称。
下一步
在本教程中,你了解了如何为 Linux 上的 SQL Server 创建和配置可用性组。 你已了解如何执行以下操作:
- 启用可用性组。
- 创建 AG 终结点和证书。
- 使用 SQL Server Management Studio (SSMS) 或 Transact-SQL 创建 AG。
- 为 Pacemaker 创建 SQL Server 登录和权限。
- 在 Pacemaker 群集中创建 AG 资源。
对于大多数 AG 管理任务,包括升级和故障转移,请参阅: