将 RDS Custom for SQL Server 的单可用区部署修改为多可用区部署 - Amazon Relational Database Service

将 RDS Custom for SQL Server 的单可用区部署修改为多可用区部署

您可以将现有的 RDS Custom for SQL Server 数据库实例从单可用区部署修改为多可用区部署。修改数据库实例时,Amazon RDS 会执行多项操作:

  • 拍摄主数据库实例的快照。

  • 从快照中为备用副本创建新卷。这些卷在后台初始化,并在数据完全初始化后达到最大卷性能。

  • 开启主数据库实例与辅助数据库实例之间的同步块级复制。

重要

我们建议您避免在高峰活动期在生产数据库实例上将 RDS Custom for SQL Server 数据库实例从单可用区部署修改为多可用区部署。

AWS 使用快照创建备用实例,以避免在从单可用区转换到多可用区时出现停机,但是在转换为多可用区期间和转换后,性能可能会受到影响。对于对写入延迟敏感的工作负载而言,这可能会产生很大的影响。尽管此功能允许快速从快照中还原大型卷,但由于同步复制,该功能可能会导致 I/O 操作的延迟增加。这种延迟可能会影响您的数据库性能。

注意

如果您在 2024 年 8 月 29 日之前创建了 RDS Custom for SQL Server 数据库实例,请在修改之前修补到最新的次要版本。

  • 对于 SQL Server 2019 实例,请将数据库引擎版本升级到 15.00.4410.1.v1 或更高版本。

  • 对于 SQL Server 2022 实例,请将数据库引擎版本升级到 16.00.4150.1.v1 或更高版本。

使用 CloudFormation 配置先决条件,以将单可用区部署修改为多可用区部署

要使用多可用区部署,必须确保应用了满足先决条件的最新 CloudFormation 模板,或者手动配置最新的先决条件。如果您已经应用了最新的 CloudFormation 先决条件模板,则可以跳过这些步骤。

使用 CloudFormation 配置 RDS Custom for SQL Server 多可用区部署先决条件

  1. 通过以下网址打开 CloudFormation 控制台:https://console.aws.amazon.com/cloudformation

  2. 要启动创建堆栈向导,请选择用于创建单可用区部署的现有堆栈,然后选择更新

    此时会显示更新堆栈页面。

  3. 对于先决条件 - 准备模板,请选择替换当前模板

  4. 对于 Select Template(选择模板),执行以下操作:

    1. 下载最新的 AWS CloudFormation 模板文件。打开链接 custom-sqlserver-onboard.zip 的上下文(右键单击)菜单,然后选择 Save Link As(将链接另存为)。

    2. custom-sqlserver-onboard.json 文件保存并提取到您的计算机中。

    3. 对于 Template source(模板来源),选择 Upload a template file(上载模板文件)。

    4. 对于 Choose file(选择文件),请导航到 custom-sqlserver-onboard.json 并选择它。

  5. 选择下一步

    此时将出现 Specify stack details(指定堆栈详细信息)页面。

  6. 要保留原定设置选项,请选择 Next(下一步)。

    将出现高级选项页面。

  7. 要保留原定设置选项,请选择 Next(下一步)。

  8. 要保留原定设置选项,请选择 Next(下一步)。

  9. 检查更改页面上,执行以下操作:

    1. 对于 Capabilities(功能),请选中 I acknowledge that AWS CloudFormation might create IAM resources with custom names(我确认 AWS CloudFormation 可能使用自定义名称创建 IAM 资源)复选框。

    2. 选择提交

  10. 验证更新是否成功。成功操作的状态将显示 UPDATE_COMPLETE

如果更新失败,则将回滚更新过程中指定的任何新配置。现有资源将仍然可用。例如,如果添加编号为 18 和 19 的网络 ACL 规则,但存在编号相同的现有规则,则更新将返回以下错误:Resource handler returned message: "The network acl entry identified by 18 already exists.。在这种情况下,您可以修改现有 ACL 规则以使用小于 18 的编号,然后重试更新。

手动配置先决条件,以将单可用区部署修改为多可用区部署

重要

为了简化设置,我们建议您使用网络设置说明中提供的最新 AWS CloudFormation 模板文件。有关更多信息,请参阅 使用 CloudFormation 配置先决条件,以将单可用区部署修改为多可用区部署

如果您选择手动配置先决条件,请执行以下任务。

  1. 通过 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。

  2. 选择端点创建端点页面显示。

  3. 对于服务类别,选择 AWS 服务

  4. 服务中,搜索 SQS

  5. VPC 中,选择在其中部署 RDS Custom for SQL Server 数据库实例的 VPC。

  6. 子网中,选择在其中部署 RDS Custom for SQL Server 数据库实例的子网。

  7. 安全组中,选择 -vpc-endpoint-sg 组。

  8. 对于策略,选择自定义

  9. 在自定义策略中,将 AWS partitionRegionaccountIdIAM-Instance-role 替换为您自己的值。

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } }, "Action": [ "SQS:SendMessage", "SQS:ReceiveMessage", "SQS:DeleteMessage", "SQS:GetQueueUrl" ], "Resource": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*", "Effect": "Allow", "Principal": { "AWS": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/{IAM-Instance-role}" } } ] }
  10. 使用访问 Amazon SQS 的权限更新实例配置文件。将 AWS partitionRegionaccountId 替换为您自己的值。

    { "Sid": "SendMessageToSQSQueue", "Effect": "Allow", "Action": [ "SQS:SendMessage", "SQS:ReceiveMessage", "SQS:DeleteMessage", "SQS:GetQueueUrl" ], "Resource": [ { "Fn::Sub": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*" } ], "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } } } >
  11. 更新 Amazon RDS 安全组的入站和出站规则以允许端口 1120。

    1. 安全组中,选择 -rds-custom-instance-sg 组。

    2. 对于入站规则,创建自定义 TCP 规则,以允许源 -rds-custom-instance-sg 组使用端口 1120

    3. 对于出站规则,创建自定义 TCP 规则,以允许端口 1120 连接到目标 -rds-custom-instance-sg 组。

  12. 在您的私有网络访问控制列表(ACL)中添加一条规则,以允许数据库实例的源子网使用 TCP 端口 0-65535

    注意

    创建入站规则出站规则时,请记下现有的最大规则编号。您创建的新规则的规则编号必须小于 100,且与任何现有规则编号均不匹配。

    1. 网络 ACL 中,选择 -private-network-acl 组。

    2. 对于入站规则,创建全部 TCP 规则,以允许将 TCP 端口 0-65535 用于来自 privatesubnet1privatesubnet2 的源。

    3. 对于出站规则,创建全部 TCP 规则,以允许 TCP 端口 0-65535 连接到目标 privatesubnet1privatesubnet2

使用 RDS 控制台、AWS CLI 或 RDS API 进行修改。

完成先决条件后,您可以使用 RDS 控制台、AWS CLI 或 RDS API,将 RDS Custom for SQL Server 数据库实例从单可用区部署修改为多可用区部署。

将现有 RDS Custom for SQL Server 单可用区部署修改为多可用区部署
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在 Amazon RDS 控制台中,选择数据库

    随后会显示数据库窗格。

  3. 选择要修改的 RDS Custom for SQL Server 数据库实例。

  4. 对于操作中,选择转换为多可用区部署

  5. 确认页面上,选择立即应用以立即应用更改。选择此选项不会导致停机,但可能会对性能产生影响。或者,您可以选择在下一个维护时段内应用更新。有关更多信息,请参阅 使用计划修改设置

  6. 确认页面上,选择转换为多可用区

要使用 AWS CLI 转换为多可用区数据库实例部署,请调用 modify-db-instance 命令并设置 --multi-az 选项。指定数据库实例标识符以及要修改的其他选项的值。有关各选项的信息,请参阅 数据库实例的设置

以下代码通过包含 --multi-az 选项来修改 mycustomdbinstance。将在下一维护时段使用 --no-apply-immediately 应用这些更改。使用 --apply-immediately 可立即应用更改。有关更多信息,请参阅 使用计划修改设置

对于 Linux、macOS 或 Unix:

aws rds modify-db-instance \ --db-instance-identifier mycustomdbinstance \ --multi-az \ --no-apply-immediately

对于 Windows:

aws rds modify-db-instance ^ --db-instance-identifier mycustomdbinstance ^ --multi-az \ ^ --no-apply-immediately

要使用 RDS API 转换为多可用区数据库实例部署,请调用 ModifyDBInstance 操作并将 MultiAZ 参数设置为 true。