

# 将 RDS Custom for Oracle 中的单可用区部署转换为多可用区部署
将单可用区转换为多可用区

您可以将现有的多可用区兼容的 RDS Custom for Oracle 实例从单可用区部署转换为多可用区部署。修改数据库实例时，Amazon RDS 会执行多项操作：
+ 拍摄主数据库实例的快照。
+ 从快照中为备用副本创建新卷。这些卷在后台初始化，并在数据完全初始化后达到最大卷性能。
+ 开启主数据库实例与备用数据库实例之间的同步块级复制。

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

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

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


按照[步骤 3：提取 RDS Custom for Oracle 的 CloudFormation 模板](custom-setup-orcl.md#custom-setup-orcl.cf.downloading)操作以再次设置 VPC 和 IAM 配置文件，以便在 IAM 配置文件中添加 SQS VPC 端点和 SQS 权限。

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


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

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.amazonaws.cn/vpc/)

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

1. 对于**服务类别**，选择 **Amazon 服务**。

1. 在**服务**中，搜索 `SQS`。

1. 在 **VPC** 中，选择在其中部署 RDS Custom for Oracle 数据库实例的 VPC。

1. 在**子网**中，选择在其中部署 RDS Custom for Oracle 数据库实例的子网。

1. 在**安全组**中，选择在其中部署 RDS Custom for Oracle 数据库实例的安全组。

1. 对于**策略**，选择**自定义**。

1. 在自定义策略中，将 `AWS partition`、`Region`、`accountId` 和 `IAM-Instance-role` 替换为您自己的值。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSRDSCustom": "custom-oracle"
                }
            },
            "Action": [
                "SQS:SendMessage",
                "SQS:ReceiveMessage",
                "SQS:DeleteMessage",
                "SQS:GetQueueUrl"
            ],
            "Resource": "arn:aws:sqs:us-east-1:111122223333:do-not-delete-rds-custom-*",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/{IAM-Instance-role}"
            }
        }
    ]
}
```

------

使用访问 Amazon SQS 的权限更新**实例配置文件**。将 `AWS partition`、`Region` 和 `accountId` 替换为您自己的值。

```
{
    "Sid": "13",
    "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-oracle"
        }
    }
}
```

更新 Amazon RDS 安全组的入站和出站规则以允许端口 1120。
+ 在**安全组**中，选择在其中部署 RDS Custom for Oracle 数据库实例的组。
+ 对于**入站规则**，创建**自定义 TCP** 规则，以支持使用端口 `1120` 从源组进行连接。
+ 对于**出站规则**，创建**自定义 TCP** 规则，以支持使用端口 `1120` 连接到目标组。

## 使用 RDS 控制台、Amazon CLI 或 RDS API 进行修改


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

### 控制台


**将现有 RDS Custom for Oracle 单可用区部署修改为多可用区部署**

1. 登录 Amazon 管理控制台，并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.amazonaws.cn/rds/)。

1. 在 Amazon RDS 控制台中，选择**数据库**。随后会显示**数据库**窗格。

1. 选择要修改的 RDS Custom for Oracle 数据库实例。

1. 对于**操作**中，选择**转换为多可用区部署**。

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

1. 在**确认**页面上，选择**转换为多可用区**。

### Amazon CLI


要使用 Amazon CLI 转换为多可用区数据库实例部署，请调用 [modify-db-instance](https://docs.amazonaws.cn//cli/latest/reference/rds/modify-db-instance.html) 命令并设置 `--multi-az` 选项。指定数据库实例标识符以及要修改的其他选项的值。有关各选项的信息，请参阅 [数据库实例的设置](USER_ModifyInstance.Settings.md)。

**Example 示例**  
以下代码通过包含 `--multi-az` 选项来修改 `mycustomdbinstance`。将在下一维护时段使用 `--no-apply-immediately` 应用这些更改。使用 `--apply-immediately` 可立即应用更改。有关更多信息，请参阅 [使用计划修改设置](USER_ModifyInstance.ApplyImmediately.md)。  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier mycustomdbinstance \
    --multi-az \
    [--no-apply-immediately | --apply-immediately]
```
对于 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier mycustomdbinstance ^
    --multi-az ^
    [--no-apply-immediately | --apply-immediately]
```

### RDS API


要使用 Amazon RDS API 转换为多可用区数据库实例部署，请调用 [ModifyDBInstance](https://docs.amazonaws.cn/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作并将 `MultiAZ` 参数设置为 true。