维护 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 操作确定待处理的维护操作。此处的输出显示没有待处理的维护操作。
aws docdb describe-pending-maintenance-actions
此操作的输出将类似于下文(JSON 格式)。
{
"PendingMaintenanceActions": []
}
应用 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:
aws docdb apply-pending-maintenance-action \
--resource-identifier arn:aws:rds:us-east-1:
123456789012
:db:docdb \--apply-action system-update \
--opt-in-type immediate
对于 Windows:
aws docdb apply-pending-maintenance-action ^
--resource-identifier arn:aws:rds:us-east-1:
123456789012
:db:docdb ^--apply-action system-update ^
--opt-in-type immediate
要返回至少有一个挂起更新的资源列表,请使用 describe-pending-maintenance-actions
AWS CLI 操作。
对于 Linux、macOS 或 Unix:
aws docdb describe-pending-maintenance-actions \
--resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb
对于 Windows:
aws docdb describe-pending-maintenance-actions ^
--resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb
此操作的输出将类似于下文(JSON 格式)。
{
"PendingMaintenanceActions": [
{
"ResourceIdentifier": "arn:aws:rds:us-east-1:001234567890:cluster:sample-cluster",
"PendingMaintenanceActionDetails": [
{
"Action": "system-update",
"CurrentApplyDate": "2019-01-11T03:01:00Z",
"Description": "db-version-upgrade",
"ForcedApplyDate": "2019-01-18T03:01:00Z",
"AutoAppliedAfterDate": "2019-01-11T03:01:00Z"
}
]
}
]
}
通过指定 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:
aws docdb describe-pending-maintenance-actions \
--filters Name=db-cluster-id,Values=
sample-cluster1
,sample-cluster2
对于 Windows:
aws docdb describe-pending-maintenance-actions ^
--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:
aws docdb describe-db-instances \
--query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'
对于 Windows:
aws docdb describe-db-instances ^
--query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'
此操作的输出将类似于下文(JSON 格式)。
在本例中,sample-cluster-instance
有针对 db.r5.xlarge
实例类的待处理更改,sample-cluster-instance-2
没有待处理的更改。
[
[
"sample-cluster",
"sample-cluster-instance",
{
"DBInstanceClass": "db.r5.xlarge"
}
],
[
"sample-cluster",
"sample-cluster-instance-2",
{}
]
]
管理 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实例。