使用 Amazon RDS 数据库实例的存储 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 Amazon RDS 数据库实例的存储

要指定在 Amazon RDS 中存储数据的方式,请在创建或修改数据库实例时选择存储类型并提供存储大小。以后,您可以通过修改数据库实例来增加存储量或更改存储类型。有关将哪些个存储类型用于工作负载的更多信息,请参阅Amazon RDS 存储类型

增加数据库实例存储容量

如果需要空间来存储更多数据,则可以扩展现有数据库实例的存储。为此,您可以使用 Amazon RDS 管理控制台、Amazon RDS API 或 Amazon Command Line Interface (Amazon CLI)。有关存储限制的信息,请参阅Amazon RDS 数据库实例存储

注意

仅通用型 SSD 或预配置 IOPS SSD 存储类型支持扩展 Amazon RDS for Microsoft SQL Server 数据库实例的存储。

要监控数据库实例的可用存储量以便您能够在需要时做出响应,我们建议您创建 Amazon CloudWatch 警报。有关设置 CloudWatch 警报的更多信息,请参阅使用 CloudWatch 警报

在大多数情况下,扩展存储无需停机,也不会降低服务器的性能。在修改数据库实例的存储大小后,数据库实例的状态为 storage-optimization。在修改存储后,数据库实例可以完全正常运行。

注意

在实例上完成存储优化的六 (6) 小时后,您才能进行进一步的存储修改。

但是,特殊情况是,如果您有一个 SQL Server 数据库实例,并且自 2017 年 11 月以来未修改存储配置。在此情况下,在修改数据库实例以增加分配的存储时,可能会遇到几分钟的短暂中断。在停机之后,数据库实例恢复联机,但处于 storage-optimization 状态。在存储优化期间,性能可能会下降。

注意

您无法在已分配数据库实例的存储后减少存储量。当您增加分配的存储空间时,必须至少增加 10%。如果您尝试将该值增加不到 10%,则会得到错误。

增加数据库实例的存储

  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择数据库

  3. 选择要修改的数据库实例。

  4. 选择修改

  5. Allocated Storage (分配的存储) 输入新值。它必须大于当前值。

    
								修改数据库实例的存储量
  6. 选择继续,进入下一个屏幕。

  7. 选中修改计划部分中的立即应用来立即将存储更改应用于数据库实例。或选择 Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用) 以在下一个维护时段内应用更改。

  8. 根据需要设置完毕后,选择修改数据库实例

要增加数据库实例的存储,请使用 Amazon CLI 命令 modify-db-instance。设置以下参数:

  • --allocated-storage – 要为数据库实例分配的存储量 (GiB)。

  • --apply-immediately – 使用 --apply-immediately 立即更改为新存储类型。或使用 --no-apply-immediately(默认值)以在下一个维护时段内应用存储更改。在应用更改时,将会立即发生中断。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

要增加数据库实例的存储,请使用 Amazon RDS API 操作 ModifyDBInstance。设置以下参数:

  • AllocatedStorage – 要为数据库实例分配的存储量 (GiB)。

  • ApplyImmediately – 将此选项设置为 True 可立即应用扩展更改。将此选项设置为 False(默认值)可在下一个维护时段内应用扩展更改。在应用更改时,将会立即发生中断。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

使用 Amazon RDS 存储自动扩展功能自动管理容量

如果您的工作负载是不可预测的,则可以为 Amazon RDS 数据库实例启用存储自动扩展。为此,您可以使用 Amazon RDS 控制台、Amazon RDS API 或 Amazon CLI。

例如,您可以将此功能用于用户快速采用的新的移动游戏应用程序。在这种情况下,快速增加的工作负载可能会超过可用的数据库存储。要避免必须手动扩展数据库存储,您可以使用 Amazon RDS 存储自动扩展。

如果启用了存储自动扩展,在 Amazon RDS 检测到可用数据库空间不足时,它会自动扩展存储。在以下因素适用时,Amazon RDS 会为启用了自动扩展的数据库实例启动存储修改:

  • 可用空间小于分配的存储空间的 10%。

  • 存储空间不足状态至少持续 5 分钟。

  • 自上次存储修改以来,至少已过去 6 小时。

附加存储的增量采用下面的较大值:

  • 5 GiB

  • 10% 的当前分配的存储空间

  • 基于过去一小时内 FreeStorageSpace 指标变化的 7 个小时的存储增长预测。有关指标的更多信息,请参阅使用 Amazon CloudWatch 进行监控

最大存储阈值是您为数据库实例自动扩展设置的限制。您无法将启用了自动扩展的实例的最大存储阈值设置为大于最大分配存储的值。

例如,db.m5.xlarge 上的 SQL Server Standard Edition 为实例默认分配的存储为 20GiB(最小值),分配的最大存储为 16384GiB。自动扩展的默认最大存储阈值为 1000GiB。如果使用此默认值,则实例不会自动扩展到 1000GiB 以上。即使为实例分配的最大存储为 16384GiB,也是如此。

注意

我们建议您根据使用模式和客户需求谨慎选择最大存储阈值。如果使用模式中存在任何偏差,则最大存储阈值可以防止在 Autoscaling 预测一个非常高的阈值时将存储扩展到一个意外的高值。自动扩展数据库实例后,无法减少其分配的存储空间。

以下限制适用于存储自动扩展:

  • 如果存储增量超出最大存储阈值,则不会进行自动扩展。

  • 自动扩展无法完全防止大型数据加载的存储已满情况,因为在实例上的存储优化完成后 6 小时才能进一步修改存储。如果执行大型数据加载,并且自动扩展不能提供足够的空间,则数据库可能会保持存储已满状态几小时。这会损害数据库。

  • 如果您在 Amazon RDS 启动自动扩展操作的同时启动存储扩展操作,则您的存储修改优先。将取消自动扩展操作。

  • 自动扩展功能不能与磁性存储一起使用。

  • 自动扩展功能不能与以下可排序存储空间小于 6 TiB 的上一代实例类别一起使用:db.m3.large、db.m3.xlarge 和 db.m3.2xlarge。

  • Amazon CloudTrail 不记录自动扩展操作。有关 CloudTrail 的更多信息,请参阅 使用 Amazon CloudTrail 和 Amazon RDS

虽然自动扩展可以帮助您动态增加 Amazon RDS 数据库实例上的存储空间,但您仍应将数据库实例的初始存储空间配置为适合典型工作负载的大小。

为新的数据库实例启用存储自动扩展功能

在创建新的 Amazon RDS 数据库实例时,可以选择是否启用存储自动扩展功能。您还可设置 Amazon RDS 可以为数据库实例分配的存储空间的上限。

注意

在克隆已启用存储自动扩展的 Amazon RDS 数据库实例时,克隆的实例不会自动继承该设置。新的数据库实例具有与原始实例相同的分配的存储空间量。如果克隆的实例继续增加其存储要求,则可以再次为新实例启用存储自动扩展功能。

为新的数据库实例启用存储自动扩展功能

  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在 Amazon RDS 控制台的右上角,选择要在其中创建数据库实例的 Amazon 区域。

  3. 在导航窗格中,选择数据库

  4. 选择创建数据库。在选择引擎页面上,选择您的数据库引擎并指定数据库实例信息,如开始使用 Amazon RDS中所述。

  5. 存储自动扩展部分中,设置数据库实例的最大存储阈值值。

  6. 指定其余的数据库实例信息,如开始使用 Amazon RDS中所述。

要为新的数据库实例启用存储自动扩展功能,请使用 Amazon CLI 命令 create-db-instance。设置以下参数:

  • --max-allocated-storage – 打开存储自动扩展功能,并设置存储大小的上限(以 GB 为单位)。

要验证 Amazon RDS 存储自动扩展功能是否适用于数据库实例,请使用 Amazon CLI describe-valid-db-instance-modifications 命令。要在创建实例前基于实例类进行检查,请使用 describe-orderable-db-instance-options 命令。检查返回值中的以下字段:

  • SupportsStorageAutoscaling – 指示数据库实例或实例类是否支持存储自动扩展功能。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

要为新的数据库实例启用存储自动扩展,请使用 Amazon RDS API 操作 CreateDBInstance。设置以下参数:

  • MaxAllocatedStorage – 打开 Amazon RDS 存储自动扩展功能,并设置存储大小的上限(以 GB 为单位)。

要验证 Amazon RDS 存储自动扩展功能是否适用于数据库实例,请对现有实例使用 Amazon RDS API DescribeValidDbInstanceModifications 操作或在创建实例前使用 DescribeOrderableDBInstanceOptions 操作。检查返回值中的以下字段:

  • SupportsStorageAutoscaling – 指示数据库实例是否支持存储自动扩展功能。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

更改数据库实例的存储自动扩展设置

您可以为现有 Amazon RDS 数据库实例打开存储自动扩展功能。您还可以更改 Amazon RDS 为数据库实例分配的存储空间的上限。

更改数据库实例的存储自动扩展设置

  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择数据库

  3. 选择要修改的数据库实例,然后选择修改。将显示修改数据库实例页面。

  4. Autoscaling (自动扩展) 部分中,更改存储限制。有关更多信息,请参阅修改 Amazon RDS 数据库实例

  5. 当所有更改都达到您的要求时,选择 Continue (继续) 并查看修改。

  6. 在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB Instance (修改数据库实例) 以保存更改。如果更改错误,请选择 Back (返回) 以编辑您的更改,或者选择 Cancel (取消) 以取消更改。

    立即更改存储自动扩展限制。此设置忽略立即应用设置。

要更改数据库实例的存储自动扩展设置,请使用 Amazon CLI 命令 modify-db-instance。设置以下参数:

  • --max-allocated-storage – 设置存储大小的上限(以 GB 为单位)。如果该值大于 --allocated-storage 参数,则打开存储自动扩展功能。如果该值与 --allocated-storage 参数相等,则关闭存储自动扩展功能。

要验证 Amazon RDS 存储自动扩展功能是否适用于数据库实例,请使用 Amazon CLI describe-valid-db-instance-modifications 命令。要在创建实例前基于实例类进行检查,请使用 describe-orderable-db-instance-options 命令。检查返回值中的以下字段:

  • SupportsStorageAutoscaling – 指示数据库实例是否支持存储自动扩展功能。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

要更改数据库实例的存储自动扩展设置,请使用 Amazon RDS API 操作 ModifyDBInstance。设置以下参数:

  • MaxAllocatedStorage – 设置存储大小的上限(以 GB 为单位)。

要验证 Amazon RDS 存储自动扩展功能是否适用于数据库实例,请对现有实例使用 Amazon RDS API DescribeValidDbInstanceModifications 操作或在创建实例前使用 DescribeOrderableDBInstanceOptions 操作。检查返回值中的以下字段:

  • SupportsStorageAutoscaling – 指示数据库实例是否支持存储自动扩展功能。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

为数据库实例禁用存储自动扩展功能

如果您不再需要 Amazon RDS 自动增加 Amazon RDS 数据库实例的存储空间,则可以关闭存储自动扩展功能。执行此操作后,您仍可以手动增加数据库实例的存储空间量。

为数据库实例打开存储自动扩展功能

  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择数据库

  3. 选择要修改的数据库实例,然后选择修改。将显示修改数据库实例页面。

  4. 清除存储自动扩展部分中的启用存储自动扩展复选框。有关更多信息,请参阅 修改 Amazon RDS 数据库实例

  5. 当所有更改都达到您的要求时,选择 Continue (继续) 并查看修改。

  6. 在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB Instance (修改数据库实例) 以保存更改。如果更改错误,请选择 Back (返回) 以编辑您的更改,或者选择 Cancel (取消) 以取消更改。

立即更改存储自动扩展限制。此设置忽略立即应用设置。

要为数据库实例关闭存储自动扩展功能,请使用 Amazon CLI 命令 modify-db-instance 和以下参数:

  • --max-allocated-storage – 指定一个与 --allocated-storage 设置相等的值可进一步防止指定数据库实例的 Amazon RDS 存储自动扩展。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

要为数据库实例关闭存储自动扩展,请使用 Amazon RDS API 操作 ModifyDBInstance。设置以下参数:

  • MaxAllocatedStorage – 指定一个与 AllocatedStorage 设置相等的值可进一步防止指定数据库实例的 Amazon RDS 存储自动扩展。

有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

修改预置 IOPS 的 SSD 存储设置

可利用 Amazon RDS 控制台、Amazon CLI 或 Amazon RDS API 修改使用预置 IOPS SSD 存储的数据库实例的设置。指定存储类型、分配的存储和需要的预置 IOPS 量。您可以在 1000 IOPS 和 100 GiB 存储与 80000 IOPS 和 64 TiB (64000 GiB) 存储之间选择。该范围取决于数据库引擎和实例类型。

尽管您可以减少为实例预配置的 IOPS 量,但无法减少分配的通用型 SSD 或磁性存储量。

在大多数情况下,扩展存储无需停机,也不会降低服务器的性能。在修改数据库实例的存储 IOPS 后,数据库实例的状态为 storage-optimization。在修改存储后,数据库实例可以完全正常运行。

注意

在实例上完成存储优化的六 (6) 小时后,您才能进行进一步的存储修改。

更改数据库实例的预置 IOPS 设置

  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择数据库

    注意

    要筛选数据库实例的列表,对于 Filter databases (筛选数据库),请输入 Amazon RDS 用于筛选结果的文本字符串。将仅显示其名称包含该字符串的数据库实例。

  3. 选择具有要修改的预置 IOPS 的数据库实例。

  4. 选择修改

  5. Modify DB Instance (修改数据库实例) 页上,为 Storage type (存储类型) 选择预置 IOPS,然后提供预置 IOPS 值。

    
						Console Tags (控制台标签) 选项卡

    如果为 Allocated storage (分配的存储)Provisioned IOPS (预置 IOPS) 指定的值超过其他参数支持的上限,则会显示一条警告消息。此消息提供了其他参数所需的值范围。

  6. 选择继续

  7. 要立即将更改应用于数据库实例,请选中修改计划部分中的立即应用。或选择 Apply during the next scheduled maintenance window (在下一个计划的维护时段内应用) 以在下一个维护时段内应用更改。

    在存储类型发生更改时,将会立即发生中断。有关存储的更多信息,请参阅Amazon RDS 数据库实例存储

  8. 检查将更改的参数,然后选择修改数据库实例以完成修改。

    分配的存储空间或预置 IOPS 的新值会显示在状态列中。

要更改数据库实例的预置 IOPS 设置,请使用 Amazon CLI 命令 modify-db-instance。设置以下参数:

  • --storage-type – 将预置 IOPS 设置为 io1

  • --allocated-storage – 要为数据库实例分配的存储量 (GiB)。

  • --iops – 数据库实例的预置 IOPS 的新数量,以每秒的 I/O 操作数量表示。

  • --apply-immediately – 使用 --apply-immediately 可立即应用更改。使用 --no-apply-immediately(默认值)可在下一个维护时段内应用更改。

要更改数据库实例的预配置 IOPS 设置,请使用 Amazon RDS API 操作 ModifyDBInstance。设置以下参数:

  • StorageType – 将预置 IOPS 设置为 io1

  • AllocatedStorage – 要为数据库实例分配的存储量 (GiB)。

  • Iops – 数据库实例的新 IOPS 速率,以每秒的 I/O 操作数量表示。

  • ApplyImmediately – 将此选项设置为 True 可立即应用更改。将此选项设置为 False(默认值)可在下一个维护时段内应用更改。