维护 Amazon DocumentDB
Amazon DocumentDB 定期对 Amazon DocumentDB 资源执行维护。维护最常涉及对数据库引擎(集群维护)或实例的底层操作系统 (OS)(实例维护)的更新。
某些维护项目需要 Amazon DocumentDB 使实例脱机一小段时间。要求实例脱机的维护项目包括必需的操作系统或引擎修补。仅对与安全性和实例可靠性相关的修补程序自动安排必需的修补。这种修补很少发生 (通常几个月一次),并且几乎不会需要过长的维护时段。在集群或实例上执行维护时,将会出现这种情况;如果实例是主实例,将进行故障转移。有关更多信息,请参阅 Amazon DocumentDB故障转移。
集群和实例维护都有各自的维护时段。默认情况下,在创建集群时,Amazon DocumentDB 会为集群和每个单独的实例分配维护时段。您可以在创建集群或实例时选择维护时段。也可以随时修改维护时段以适应您的业务计划或实践。通常,建议选择尽量减少对应用程序的影响的维护时段(例如,晚上或周末)。本指南与您遇到的应用程序类型和使用模式密切相关。
确定待处理的 Amazon DocumentDB 维护操作
您可以使用 AWS 管理控制台或 AWS CLI 来查看维护更新是否对集群可用。
如果有可用更新,您可以执行以下操作之一:
- 推迟维护操作。
- 立即应用维护操作。
- 计划下一个维护时段内要开始的维护操作。
- 不执行任何操作。
重要
某些 OS 更新标记为必需。如果您推迟某个必需的更新,则会收到一条来自 Amazon DocumentDB的通知,指示何时对实例或集群执行此更新。其他更新为可用。您可以无限期推迟这些更新。
维护时段确定待处理的操作何时开始,但不限制这些操作的总执行时间。维护操作不保证在维护时段结束前完成,可以在超出指定的结束时间后继续。
使用 AWS 管理控制台
如果某个更新可用,则该更新将由 Amazon DocumentDB 控制台上的集群的 Maintenance (维护) 列中的 Available (可用) 或 Required (必需) 一词指示,如下所示:

使用 AWS CLI
使用以下 AWS CLI 操作确定待处理的维护操作。此处的输出显示没有待处理的维护操作。
1. aws docdb describe-pending-maintenance-actions
此操作的输出将类似于下文(JSON 格式)。
1. {
2. "PendingMaintenanceActions": []
3. }
应用 Amazon DocumentDB更新
通过 Amazon DocumentDB,您可以选择何时应用维护操作。使用 AWS 管理控制台或 AWS CLI 时,您可以决定 Amazon DocumentDB何时应用更新。
使用此主题中的过程对实例立即执行升级或者计划升级。
使用 AWS 管理控制台
您可以使用控制台管理 Amazon DocumentDB 实例和集群的更新。
管理实例或集群的更新
- 通过以下网址登录 AWS 管理控制台并打开 Amazon DocumentDB 控制台:https://console.aws.amazon.com/docdb。
- 在导航窗格中,选择集群。
- 在集群列表中,选择要应用维护操作的集群名称旁边的按钮。
- 在 Actions (操作) 菜单中,选择以下选项之一:
- Upgrade now (立即升级),以立即执行挂起的维护任务。
-
Upgrade at next window (在下一个时段升级),以在集群的下一个维护时段中执行挂起的维护任务。
注意
如果没有挂起的维护任务,上面的两个选项均会处于非活动状态。
使用 AWS CLI
要将挂起的更新应用于实例或集群,请使用 apply-pending-maintenance-action AWS CLI 操作。
参数
--resource-identifier— 挂起的维护操作应用于的资源的 Amazon DocumentDB Amazon 资源名称 (ARN)。--apply-action— 应用于此资源的挂起的维护操作。
有效值:system-update 和 db-upgrade。
- --opt-in-type — 用于指定加入请求类型或撤消加入请求的值。不能撤消 immediate 类型的加入请求。
有效值:
immediate— 立即应用维护操作。next-maintenance— 在资源的下一个维护时段内应用维护操作。undo-opt-in— 取消任何现有的next-maintenance加入请求。
对于 Linux、macOS 或 Unix:
1. aws docdb apply-pending-maintenance-action \
2. --resource-identifier arn:aws:rds:us-east-1:123456789012:db:docdb \
3. --apply-action system-update \
4. --opt-in-type immediate
对于 Windows:
1. aws docdb apply-pending-maintenance-action ^
2. --resource-identifier arn:aws:rds:us-east-1:123456789012:db:docdb ^
3. --apply-action system-update ^
4. --opt-in-type immediate
要返回至少有一个挂起更新的资源列表,请使用 describe-pending-maintenance-actions AWS CLI 操作。
对于 Linux、macOS 或 Unix:
1. aws docdb describe-pending-maintenance-actions \
2. --resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb
对于 Windows:
1. aws docdb describe-pending-maintenance-actions ^
2. --resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb
此操作的输出将类似于下文(JSON 格式)。
1. {
2. "PendingMaintenanceActions": [
3. {
4. "ResourceIdentifier": "arn:aws:rds:us-east-1:001234567890:cluster:sample-cluster",
5. "PendingMaintenanceActionDetails": [
6. {
7. "Action": "system-update",
8. "CurrentApplyDate": "2019-01-11T03:01:00Z",
9. "Description": "db-version-upgrade",
10. "ForcedApplyDate": "2019-01-18T03:01:00Z",
11. "AutoAppliedAfterDate": "2019-01-11T03:01:00Z"
12. }
13. ]
14. }
15. ]
16. }
通过指定 describe-pending-maintenance-actions AWS CLI 操作的 --filters 参数,您还可以返回实例或集群的资源列表。--filters 操作的格式是 Name=filter-name,Values=resource-id,...。
下面是筛选条件的 Name 参数可接受的值:
db-cluster-id— 接受集群标识符或 ARN 的列表。返回的列表只包括这些标识符或 ARN 标识的集群的挂起的维护操作。db-instance-id— 接受实例标识符或 ARN 的列表。返回的列表只包括这些标识符或 ARN 标识的实例的挂起的维护操作。
以下示例返回 sample-cluster1 和 sample-cluster2 集群的待处理维护操作。
对于 Linux、macOS 或 Unix:
1. aws docdb describe-pending-maintenance-actions \
2. --filters Name=db-cluster-id,Values=sample-cluster1,sample-cluster2
对于 Windows:
1. aws docdb describe-pending-maintenance-actions ^
2. --filters Name=db-cluster-id,Values=sample-cluster1,sample-cluster2
应用日期
每个维护操作都有一个相应的应用日期,您可以在描述待处理的维护操作时找到它们。当您从 AWS CLI 读取待处理维护操作的输出时,将列出以下三个日期:
CurrentApplyDate— 将立即应用或在下一个维护时段期间应用维护操作的日期。如果维护是可选的,则该值可以为null。ForcedApplyDate— 自动应用维护的日期,与维护时段无关。AutoAppliedAfterDate— 将在该日期后的集群维护时段期间应用维护。
用户启动的更新
作为 Amazon DocumentDB 用户,您可以启动对集群或实例的更新。例如,您可以将实例的类修改为具有更多或更少内存的类,也可以更改集群的参数组。Amazon DocumentDB 以不同于 Amazon DocumentDB 启动的更新的方式看待这些更改。有关修改集群或实例的更多信息,请参阅以下内容:
要查看待处理的用户启动的修改的列表,请运行以下命令。
查看实例的待处理的用户启动的更改
对于 Linux、macOS 或 Unix:
1. aws docdb describe-db-instances \
2. --query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'
对于 Windows:
1. aws docdb describe-db-instances ^
2. --query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'
此操作的输出将类似于下文(JSON 格式)。
在本例中,sample-cluster-instance 有针对 db.r5.xlarge 实例类的待处理更改,sample-cluster-instance-2 没有待处理的更改。
1. [
2. [
3. "sample-cluster",
4. "sample-cluster-instance",
5. {
6. "DBInstanceClass": "db.r5.xlarge"
7. }
8. ],
9. [
10. "sample-cluster",
11. "sample-cluster-instance-2",
12. {}
13. ]
14. ]
管理 Amazon DocumentDB 维护时段
每个实例和集群都有一个每周维护时段,在此期间会应用任何待处理的更改。在请求或要求的情况下,您可以将维护时段视为控制修改及软件修补程序更新的时间的机会。如果在给定的周内安排了维护事件,则将在您确定的 30 分钟维护时段内启动维护。大部分维护事件也将在 30 分钟的维护时段内完成,但较大的维护事件可能需要 30 分钟以上的时间才能完成。
这个 30 分钟维护时段是随机从每个区域的 8 小时时间段中选择出来的。如果在创建实例或集群时未指定首选维护时段,则 Amazon DocumentDB在该星期中随机选择的某一天中分配 30 分钟的维护时段。
下表列出的是分配了默认维护窗口的各个区域的时间段。
| Region | UTC 时间数据块 |
|---|---|
| 美国东部(俄亥俄州) | 03:00-11:00 |
| 美国东部(弗吉尼亚北部) | 03:00-11:00 |
| 美国西部(俄勒冈) | 06:00-14:00 |
| 亚太地区(孟买) | 17:30–01:30 |
| 亚太区域(首尔) | 13:00-21:00 |
| 亚太区域(新加坡) | 14:00–22:00 |
| 亚太区域(悉尼) | 12:00–20:00 |
| 亚太区域(东京) | 13:00-21:00 |
| 加拿大 (中部) | 22:00-06:00 |
| 欧洲(法兰克福) | 23:00-07:00 |
| 欧洲(爱尔兰) | 22:00-06:00 |
| 欧洲(巴黎) | 22:00-06:00 |
| AWS GovCloud (US) | 22:00-06:00 |
更改维护时段
维护时段应当选在使用量最小的时段上,因而可能必须不时予以更改。您的集群或实例只会在应用系统更改(例如,扩展存储操作或数据库实例类的更改)并且需要中断的期间出现不可用现象,且持续时间只是这些必要更改所需的最少时间。
对于数据库引擎升级,Amazon DocumentDB会使用集群的首选维护时段,而不是单个实的维护时段。
更改维护时段
- 对于集群:请参阅修改 Amazon DocumentDB集群。
- 对于实例:请参阅修改 Amazon DocumentDB实例。
