Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Amazon RDS 的限制

本主题介绍 Amazon RDS 的资源限制和命名约束。

Amazon RDS 中的限制

每个区域的每个 AWS 账户都有关于可以创建的 Amazon RDS 资源数量的限制。达到某一资源的限制时,再进行创建该资源的调用就会失败并引发异常。

下表列出了资源及其每个区域的限制。

资源 默认限制
群集 40
群集参数组 50
跨区域快照复制请求 5
数据库实例 40
事件订阅 20
手动快照 100
手动群集快照 100
选项组 20
参数组 50
只读副本 (每个主数据) 5
预留实例 (每月购买) 40
每个安全组的规则数 20
安全组 25
安全组 (VPC) 5
子网组 50
每个子网组的子网数 20
每个资源的标签 50
所有数据库实例的总存储空间 100 TB

Amazon RDS 中的命名约束

下表介绍 Amazon RDS 中的命名约束。

数据库实例标识符

  • 必须包含 1 到 63 个字母数字字符或连字符。

  • 第一个字符必须是字母。

  • 不能以连字符结束或包含两个连续连字符。

  • 对于每个区域的每个 AWS 账户的所有数据库实例必须是唯一的。

数据库名称

数据库名称约束因数据库引擎而异。

MySQL、Amazon Aurora 和 MariaDB

  • 必须包含 1 到 64 个字母数字字符。

  • 不能是数据库引擎的保留字。

PostgreSQL

  • 必须包含 1 到 63 个字母数字字符。

  • 必须以字母或下划线开头。后续字符可以是字母、下划线或数字 (0-9)。

  • 不能是数据库引擎的保留字。

Oracle

  • 长度不能超过 8 个字符。

SQL Server

  • 不适用。对于 SQL Server,在创建数据库实例之后,需创建数据库。数据库名称遵循通用 SQL Server 命名规则。

主用户名

主用户名约束因数据库引擎不同而不同。

MySQL 和 Amazon Aurora

  • 必须包含 1 到 16 个字母数字字符。

  • 第一个字符必须是字母。

  • 不能是数据库引擎的保留字。

Oracle

  • 必须包含 1 到 30 个字母数字字符。

  • 第一个字符必须是字母。

  • 不能是数据库引擎的保留字。

SQL Server

  • 必须包含 1 到 64 个字母数字字符。

  • 第一个字符必须是字母。

  • 不能是数据库引擎的保留字。

PostgreSQL

  • 必须包含 1 到 63 个字母数字字符。

  • 第一个字符必须是字母。

  • 不能是数据库引擎的保留字。

MariaDB

  • 必须包含 1 到 16 个字母数字字符。

  • 不能是数据库引擎的保留字。

主密码

主数据库用户的密码可以是除“/”、“"”或“@”之外的任意可打印 ASCII 字符。主密码约束因数据库引擎不同而不同。

MySQL、Amazon Aurora 和 MariaDB

  • 必须包含 8 到 41 个字符。

Oracle

  • 必须包含 8 到 30 个字符。

SQL Server

  • 必须包含 8 到 128 个字符。

PostgreSQL

  • 必须包含 8 到 128 个字符。

数据库参数组名称

  • 必须包含 1 到 255 个字母数字字符。

  • 第一个字符必须是字母。

  • 不能以连字符结束或包含两个连续连字符。

Amazon RDS 中的文件大小限制

Amazon RDS 中的 Aurora 文件大小限制

利用 Amazon Aurora,表大小限制仅受 Aurora 群集卷大小约束,此卷的最大大小为 64 TB。因此,Aurora 数据库中表的最大表大小为 64 TB。

Amazon RDS 中的 MySQL 文件大小限制

对于 Amazon RDS MySQL 数据库实例,最大预配置存储限制在使用 InnoDB file-per-table 表空间时将表的最大大小限制为 6 TB。此限制也将系统表空间的最大大小约束为 6 TB。默认情况下,为 Amazon RDS MySQL 数据库实例设置 InnoDB file-per-table 表空间 (表各自位于自己的表空间中)。

注意

在 2014 年 4 月之前创建的 MySQL 数据库实例的文件和表大小限制为 2 TB。不管创建数据库实例的时间如何,此 2 TB 文件大小限制也适用于从 2014 年 4 月之前拍摄的数据库快照创建的数据库实例或只读副本。

根据您的应用程序,使用 InnoDB file-per-table 表空间有一些优缺点。要确定适用于您的应用程序的最佳方法,请转到 MySQL 文档中的 InnoDB File-Per-Table 模式

建议不要允许表增长到最大文件大小。一般而言,更好的方法是将数据分区到较小的表中,这可以提高性能并缩短恢复时间。

可用于将大型表划分为较小表的一个选项是分区。分区可基于您指定的规则将大型表的各个部分分布到单独的文件中。例如,如果您按日期存储事务,则可以创建分区规则,以便使用分区将较旧的事务分布到单独的文件中。随后您可以定期存档无需随时可供应用程序使用的历史事务数据。有关更多信息,请参阅 MySQL 文档中的分区

确定表的文件大小

使用以下 SQL 命令可确定任何表是否太大以及是否适合进行分区。要更新表统计数据,请在每个表中发出一个 ANALYZE TABLE 命令。有关更多信息,请参阅 MySQL 文档中的分析表

Copy
SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)", DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

启用 InnoDB file-per-table 表空间

  • 要启用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 1

禁用 InnoDB file-per-table 表空间

  • 要禁用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 0

有关更新参数组的信息,请参阅使用数据库参数组

启用或禁用 InnoDB file-per-table 表空间后,可以发出 ALTER TABLE 命令将一个表从全局表空间移至它自己的表空间,或从它自己的表空间移至全局表空间,如以下示例所示:

Copy
ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Amazon RDS 中的 MariaDB 文件大小限制

对于 Amazon RDS MariaDB 数据库实例,最大预置存储限制在使用 InnoDB file-per-table 表空间时将表的最大大小限制为 6 TB。此限制也将系统表空间的最大大小约束为 6 TB。默认情况下,为 Amazon RDS MariaDB 数据库实例设置 InnoDB file-per-table 表空间 (每个表位于各自的表空间中)。

根据您的应用程序,使用 InnoDB file-per-table 表空间有一些优缺点。要确定适用于您的应用程序的最佳方法,请转到 MySQL 文档中的 InnoDB File-Per-Table 模式

建议不要允许表增长到最大文件大小。一般而言,更好的方法是将数据分区到较小的表中,这可以提高性能并缩短恢复时间。

可用于将大型表划分为较小表的一个选项是分区。分区可基于您指定的规则将大型表的各个部分分布到单独的文件中。例如,如果您按日期存储事务,则可以创建分区规则,以便使用分区将较旧的事务分布到单独的文件中。随后您可以定期存档无需随时可供应用程序使用的历史事务数据。有关更多信息,请转到 MySQL 文档中的 https://dev.mysql.com/doc/refman/5.6/en/partitioning.html

确定表的文件大小

使用以下 SQL 命令可确定任何表是否太大以及是否适合进行分区。要更新表统计数据,请在每个表中发出一个 ANALYZE TABLE 命令。有关更多信息,请参阅 MySQL 文档中的分析表

Copy
SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)", DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

启用 InnoDB file-per-table 表空间

  • 要启用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 1

禁用 InnoDB file-per-table 表空间

  • 要禁用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 0

有关更新参数组的信息,请参阅使用数据库参数组

启用或禁用 InnoDB file-per-table 表空间后,可以发出 ALTER TABLE 命令将一个表从全局表空间移至它自己的表空间,或从它自己的表空间移至全局表空间,如以下示例所示:

Copy
ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;