启用 MSDTC
使用以下过程为数据库实例启用 MSDTC:
-
创建新的选项组或选择现有的选项组。
-
将
MSDTC
选项添加到该选项组。 -
创建新的参数组,或选择现有参数组。
-
修改参数组以将
in-doubt xact resolution
参数设置为 1 或 2。 -
将选项组和参数组与数据库实例关联。
为 MSDTC 创建选项组
使用 Amazon Web Services Management Console 或 Amazon CLI 创建对应于 SQL Server 引擎和数据库实例版本的选项组。
注意
如果现有选项组针对的是正确的 SQL Server 引擎和版本,也可以使用现有选项组。
以下控制台过程创建适用于 SQL Server 标准版 2016 的选项组。
创建选项组
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择选项组。
-
选择创建组。
-
在创建选项组窗格中,执行以下操作:
-
对于名称,输入选项组的名称,该名称在 Amazon 账户内具有唯一性,例如
msdtc-se-2016
。此名称只能包含字母、数字和连字符。 -
对于描述,输入选项组的简要描述,例如
MSDTC option group for SQL Server SE 2016
。此说明用于显示说明。 -
对于引擎,选择 sqlserver-se。
-
对于主要引擎版本,选择 13.00。
-
-
选择创建。
以下示例为 SQL Server 标准版 2016 创建一个选项组。
创建选项组
-
使用以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds create-option-group \ --option-group-name
msdtc-se-2016
\ --engine-namesqlserver-se
\ --major-engine-version13.00
\ --option-group-description "MSDTC option group for SQL Server SE 2016
"对于 Windows:
aws rds create-option-group ^ --option-group-name
msdtc-se-2016
^ --engine-namesqlserver-se
^ --major-engine-version13.00
^ --option-group-description "MSDTC option group for SQL Server SE 2016
"
将 MSDTC 选项添加到选项组
接下来,使用 Amazon Web Services Management Console或 Amazon CLI 将 MSDTC
选项添加到选项组。
以下选项设置为必需:
-
端口 – 用于访问 MSDTC 的端口。允许的值为 1150–49151,但不包括 1234、1434、3260、3343、3389 和 47001。默认值是 5000。
确保在防火墙规则中启用了要使用的端口。此外,请确保根据需要,在与数据库实例关联的安全组的入站和出站规则中启用了此端口。有关更多信息,请参阅 无法连接到 Amazon RDS 数据库实例。
-
Security groups(安全组)– RDS 数据库实例的 VPC 安全组成员。
-
身份验证类型 – 主机之间的身份验证模式。支持以下身份验证类型:
-
双向 – RDS 实例使用集成身份验证双向进行身份验证。如果选择此选项,则与此选项组关联的所有实例都必须加入域。
-
无 – 主机之间不进行身份验证。我们建议不要在生产环境中使用此模式。
-
-
事务日志大小 – MSDTC 事务日志的大小。允许的值为 4–1024 MB。默认大小为 4 MB。
以下选项设置可选:
-
启用入站连接 – 是否允许指向与此选项组关联的实例的入站 MSDTC 连接。
-
启用出站连接 – 是否允许来自与此选项组关联的实例的出站 MSDTC 连接。
-
启用 XA – 是否允许 XA 事务。有关 XA 协议的更多信息,请参阅 XA 规范
。 -
启用 SNA LU – 是否允许将 SNA LU 协议用于分布式事务。有关 SNA LU 协议支持的更多信息,请参阅 Microsoft 文档中的管理 IBM CICS LU 6.2 事务
。
添加 MSDTC 选项
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择选项组。
-
选择刚刚创建的选项组。
-
选择添加选项。
-
在选项详细信息下,为选项名称 选择 MSDTC。
-
在选项设置下:
-
对于端口,输入访问 MSDTC 的端口号。默认值为 5000。
-
对于 Security groups (安全组),请选择要与选项关联的 VPC 安全组。
-
对于身份验证类型,请选择双向或无。
-
对于事务日志大小,请输入 4–1024 之间的值。默认值为 4。
-
-
在其他配置下,执行以下操作:
-
对于连接,根据需要选择启用入站连接和启用出站连接。
-
对于允许的协议,根据需要选择启用 XA 和启用 SNA LU。
-
-
在 计划 (Scheduling) 下,选择是立即添加选项还是在下一个维护时段添加选项。
-
选择添加选项。
添加此选项不需要重新启动。
添加 MSDTC 选项
-
使用以下必需参数创建 JSON 文件,例如
msdtc-option.json
:{ "OptionGroupName":"
msdtc-se-2016
", "OptionsToInclude": [ { "OptionName":"MSDTC", "Port":5000
, "VpcSecurityGroupMemberships":["sg-0abcdef123
"], "OptionSettings":[{"Name":"AUTHENTICATION","Value":"MUTUAL
"},{"Name":"TRANSACTION_LOG_SIZE","Value":"4
"}] }], "ApplyImmediately": true } -
将
MSDTC
选项添加到该选项组。对于 Linux、macOS 或 Unix:
aws rds add-option-to-option-group \ --cli-input-json file://
msdtc-option.json
\ --apply-immediately对于 Windows:
aws rds add-option-to-option-group ^ --cli-input-json file://
msdtc-option.json
^ --apply-immediately无需重新启动。
为 MSDTC 创建参数组
为与 SQL Server 版本和数据库实例版本对应的 in-doubt xact resolution
参数创建或修改参数组。
以下示例为 SQL Server 标准版 2016 创建一个参数组。
创建参数组
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择参数组。
-
选择创建参数组。
-
在创建参数组窗格中,执行以下操作:
-
对于参数组系列,选择 sqlserver-se-13.0。
-
对于组名称,输入参数组的标识符,如
msdtc-sqlserver-se-13
。 -
对于描述,输入
in-doubt xact resolution
。
-
-
选择创建。
以下示例为 SQL Server 标准版 2016 创建一个参数组。
创建参数组
-
使用以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds create-db-parameter-group \ --db-parameter-group-name
msdtc-sqlserver-se-13
\ --db-parameter-group-family "sqlserver-se-13.0
" \ --description "in-doubt xact resolution
"对于 Windows:
aws rds create-db-parameter-group ^ --db-parameter-group-name
msdtc-sqlserver-se-13
^ --db-parameter-group-family "sqlserver-se-13.0
" ^ --description "in-doubt xact resolution
"
修改 MSDTC 的参数
修改与 SQL Server 版本和数据库实例版本对应的参数组中的 in-doubt xact resolution
参数。
对于 MSDTC,将 in-doubt xact resolution
参数设置为以下选项之一:
-
1
–Presume commit
。任何 MSDTC 有疑问的事务都假定为已经提交。 -
2
–Presume abort
。任何 MSDTC 有疑问的事务都假定为已停止。
有关更多信息,请参阅 Microsoft 文档中的有疑问的 Xact 解析服务器配置选项
以下示例修改您为 SQL Server 标准版 2016 创建的参数组。
修改参数组
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择参数组。
-
选择参数组,例如 msdtc-sqlserver-se-13。
-
在参数下,从参数列表中筛选
xact
。 -
选择 in-doubt xact resolution (有疑问的 Xact 解析)。
-
选择编辑参数。
-
输入
1
或2
。 -
选择 Save changes(保存更改)。
以下示例修改您为 SQL Server 标准版 2016 创建的参数组。
修改参数组
-
使用以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name
msdtc-sqlserver-se-13
\ --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1
,ApplyMethod=immediate"对于 Windows:
aws rds modify-db-parameter-group ^ --db-parameter-group-name
msdtc-sqlserver-se-13
^ --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1
,ApplyMethod=immediate"
将选项组和参数组与数据库实例关联
您可以使用 Amazon Web Services Management Console 或 Amazon CLI 将 MSDTC 选项组和参数组与数据库实例相关联。
您可以将 MSDTC 选项组和参数组与新的或现有的数据库实例相关联。
-
对于新数据库实例,请在启动实例时将其关联。有关更多信息,请参阅“创建 Amazon RDS 数据库实例”。
-
对于现有数据库实例,请通过修改实例将其关联。有关更多信息,请参阅“修改 Amazon RDS 数据库实例”。
注意
如果您使用加入域的现有数据库实例,则该实例必须已经关联了 Active Directory 域和 Amazon Identity and Access Management (IAM) 角色。如果您创建新的加入域实例,请指定现有的 Active Directory 域和 IAM 角色。有关更多信息,请参阅 将 Amazon Managed Active Directory 用于 RDS for SQL Server。
您可以将 MSDTC 选项组和参数组与新的或现有的数据库实例相关联。
注意
如果您使用现有的加入域数据库实例,则该实例必须已经关联了 Active Directory 域和 IAM 角色。如果您创建新的加入域实例,请指定现有的 Active Directory 域和 IAM 角色。有关更多信息,请参阅“将 Amazon Managed Active Directory 用于 RDS for SQL Server”。
使用 MSDTC 选项组和参数组创建数据库实例
-
指定创建选项组时使用的相同数据库引擎类型和主要版本。
对于 Linux、macOS 或 Unix:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --db-instance-classdb.m5.2xlarge
\ --enginesqlserver-se
\ --engine-version13.00.5426.0.v1
\ --allocated-storage100
\ --manage-master-user-password \ --master-usernameadmin
\ --storage-typegp2
\ --license-modelli
\ --domain-iam-role-namemy-directory-iam-role
\ --domainmy-domain-id
\ --option-group-namemsdtc-se-2016
\ --db-parameter-group-namemsdtc-sqlserver-se-13
对于 Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --db-instance-classdb.m5.2xlarge
^ --enginesqlserver-se
^ --engine-version13.00.5426.0.v1
^ --allocated-storage100
^ --manage-master-user-password ^ --master-usernameadmin
^ --storage-typegp2
^ --license-modelli
^ --domain-iam-role-namemy-directory-iam-role
^ --domainmy-domain-id
^ --option-group-namemsdtc-se-2016
^ --db-parameter-group-namemsdtc-sqlserver-se-13
修改数据库实例并关联 MSDTC 选项组和参数组
-
使用以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --option-group-namemsdtc-se-2016
\ --db-parameter-group-namemsdtc-sqlserver-se-13
\ --apply-immediately对于 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --option-group-namemsdtc-se-2016
^ --db-parameter-group-namemsdtc-sqlserver-se-13
^ --apply-immediately
修改 MSDTC 选项
启用 MSDTC
选项后,您可以修改其设置。有关如何修改选项设置的信息,请参阅修改选项设置。
注意
对 MSDTC 选项设置的一些更改需要重新启动 MSDTC 服务。此要求可能会影响正在运行的分布式事务。