Amazon Relational Database Service
Guía del usuario

Límites de Amazon RDS

En este tema se describen los límites de recursos y las restricciones de nomenclatura para Amazon RDS.

Límites en Amazon RDS

Cada cuenta de AWS tiene límites del número de recursos de Amazon RDS que se pueden crear por cada región de AWS. Una vez que se alcance el límite de un recurso, las llamadas adicionales para crear ese recurso dejan de funcionar con una excepción.

En la siguiente tabla se muestran los recursos y sus límites por región.

Recurso Límite predeterminado
Solicitudes de copia de instantáneas entre regiones 5
Instancias de base de datos 40
Suscripciones de eventos 20
Instantáneas manuales 100
Grupos de opciones 20
Grupos de parámetros 50
Réplicas de lectura por nodo maestro 5
Instancias reservadas 40
Reglas por grupo de seguridad de base de datos 20
Reglas por grupo de seguridad de VPC 50 de entrada y 50 de salida
Grupos de seguridad de base de datos 25
Grupos de seguridad de la VPC 5
Grupos de subredes 50
Subredes por grupo de subredes 20
Etiquetas por recurso 50
Almacenamiento total para todas las instancias de base de datos 100 TiB

nota

De forma predeterminada, puede tener un total de 40 instancias de base de datos. De estas 40, puede tener hasta 10 instancias de cada edición de base de datos de SQL Server (Enterprise, Standard, Web y Express) bajo el modelo «licencia incluida». Las 40 pueden ser MySQL, MariaDB o PostgreSQL. Las 40 pueden ser de Oracle según el modelo "bring-your-own-license" (BYOL). Si su aplicación requiere más instancias de base de datos, puede solicitar instancias de base de datos adicionales usando este formulario de solicitud Solicitar límite de instancia de base de datos de RDS.

Las copias de seguridad administradas por AWS Backup se consideran instantáneas manuales para el límite de instantáneas manuales. Para obtener más información sobre AWS Backup, consulte la Guía del desarrollador de AWS Backup.

Restricciones de la nomenclatura en Amazon RDS

En la siguiente tabla se describen las restricciones de la nomenclatura en Amazon RDS.

DB instance identifier

  • Debe contener de 1 a 63 caracteres alfanuméricos o guiones.

  • El primer carácter debe ser una letra.

  • No puede terminar con un guion ni contener dos guiones consecutivos.

  • Debe ser único para todas las instancias de base de datos por cada cuenta de AWS y por cada región.

Nombre de base de datos

Las restricciones de los nombres de base de datos difieren para cada motor de base de datos.

MySQL y MariaDB

  • Debe contener de 1 a 64 caracteres alfanuméricos.

  • No puede ser una palabra reservada por el motor de base de datos.

Oracle

  • No puede tener más de 8 caracteres.

PostgreSQL

  • Debe contener de 1 a 63 caracteres alfanuméricos.

  • Debe comenzar con una letra o un guion bajo. Los caracteres subsiguientes pueden ser letras, guiones bajos o dígitos (0-9).

  • No puede ser una palabra reservada por el motor de base de datos.

SQL Server

  • No se usa. En SQL Server, las bases de datos se crean después de crear la instancia de base de datos. Los nombres de base de datos siguen las reglas de nomenclatura habituales en SQL Server con las siguientes diferencias. Nombres de bases de datos en SQL Server:

    • La ruta no puede comenzar con "rdsadmin".

    • No puede comenzar ni terminar con un espacio o una tabulación.

    • No puede contener ninguno de los caracteres que crean una nueva línea.

    • No puede contener una comilla simple.

Nombre de usuario maestro

Las restricciones de los nombres de usuario maestros difieren para cada motor de base de datos.

MariaDB

  • Debe contener de 1 a 16 caracteres alfanuméricos.

  • No puede ser una palabra reservada por el motor de base de datos.

MySQL

  • Debe contener de 1 a 16 caracteres alfanuméricos.

  • El primer carácter debe ser una letra.

  • No puede ser una palabra reservada por el motor de base de datos.

Oracle

  • Debe contener de 1 a 30 caracteres alfanuméricos.

  • El primer carácter debe ser una letra.

  • No puede ser una palabra reservada por el motor de base de datos.

PostgreSQL

  • Debe contener de 1 a 63 caracteres alfanuméricos.

  • El primer carácter debe ser una letra.

  • No puede ser una palabra reservada por el motor de base de datos.

SQL Server

  • Debe contener de 1 a 64 caracteres alfanuméricos.

  • El primer carácter debe ser una letra.

  • No puede ser una palabra reservada por el motor de base de datos.

Contraseña maestra

La contraseña del usuario de base de datos maestro puede ser cualquier carácter ASCII imprimible, excepto "/", """ o "@". Las restricciones de las contraseñas difieren para cada motor de base de datos.

MySQL y MariaDB

  • Debe contener entre 8 y 41 caracteres.

Oracle

  • Debe contener entre 8 y 30 caracteres.

PostgreSQL

  • Debe contener entre 8 y 128 caracteres.

SQL Server

  • Debe contener entre 8 y 128 caracteres.

Nombre del grupo de parámetros de base de datos

  • Debe contener de 1 a 255 caracteres alfanuméricos.

  • El primer carácter debe ser una letra.

  • Los guiones están permitidos, pero el nombre no puede terminar por un guion o contener dos guiones seguidos.

Nombre del grupo de subred de DB

  • Debe contener de 1 a 255 caracteres.

  • Se permiten los caracteres alfanuméricos, guiones, guiones bajos y puntos.

Límites de tamaño en Amazon RDS

Los límites de tamaño de archivo se aplican a instancias de base de datos de Amazon RDS.

Límites de tamaño de archivo de MySQL en Amazon RDS

En las instancias de base de datos MySQL en Amazon RDS, el límite máximo de almacenamiento aprovisionado restringe el tamaño de una tabla a un tamaño máximo de 16 TB cuando se usan espacios de tabla file-per-table de InnoDB. Este límite también restringe el espacio de tabla del sistema a un tamaño máximo de 16 TB. Los espacios de tabla file-per-table de InnoDB (en los que las tablas están cada una en su propio espacio de tabla) se habilitan de manera predeterminada para las instancias de base de datos MySQL en Amazon RDS. Para obtener más información, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

nota

Algunas instancias de base de datos existentes tienen un límite inferior. Por ejemplo, las instancias de base de datos MySQL creadas antes de abril de 2014 tienen un límite de tamaño de tabla y de archivo de 2 TB. Este límite de tamaño de archivo de 2 TB también afecta a las instancias de base de datos o las réplicas de lectura creadas a partir de instantáneas de base de datos tomadas antes de abril de 2014, con independencia de cuándo se creó la instancia de base de datos.

El uso de los espacios de tabla file-per-table de InnoDB tiene pros y contras en función de la aplicación. Para determinar el mejor método para su aplicación, consulte InnoDB File-Per-Table Mode en la documentación de MySQL.

No es recomendable permitir que las tablas crezcan hasta el tamaño de archivo máximo. En general, es preferible dividir los datos en tablas más pequeñas, que pueden mejorar el desempeño y los tiempos de recuperación.

Una opción que se puede usar para dividir una tabla grande en tablas más pequeñas es la creación de particiones. Las particiones distribuyen las porciones de una tabla grande en archivos independientes en función de las reglas que se hayan especificado. Por ejemplo, si almacena las transacciones por fecha, puede crear reglas de partición que distribuyan las transacciones más antiguas entre distintos archivos por medio de la creación de particiones. Después, periódicamente, se pueden archivar los datos de transacciones históricos que no tengan que estar disponibles de forma inmediata para su aplicación. Para obtener información, consulte Partitioning en la documentación de MySQL.

Para determinar el tamaño de archivo de una tabla

Utilice el comando SQL siguiente para determinar si alguna de las tablas es demasiado grande y por lo tanto es candidata para realizar particiones. Para actualizar las estadísticas de la tabla, ejecute un comando ANALYZE TABLE en cada tabla. Para obtener más información, consulte ANALYZE TABLE en la documentación de MySQL.

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');

Para habilitar espacios de tabla file-per-table de InnoDB

  • Para habilitar espacios de tabla file-per-table de InnoDB, asigne al parámetro innodb_file_per_table el valor 1 en el grupo de parámetros de la instancia de base de datos.

Para deshabilitar los espacios de tabla file-per-table de InnoDB

  • Para deshabilitar los espacios de tablas file-per-table de InnoDB, establezca en el parámetro innodb_file_per_table el valor 0 dentro del grupo de parámetros de la instancia de base de datos.

Para obtener más información acerca de la actualización de un grupo de parámetros, consulte Trabajo con los grupos de parámetros de base de datos.

Cuando haya habilitado o deshabilitado los espacios de tabla file-per-table de InnoDB, puede ejecutar un comando ALTER TABLE. Puede utilizar este para mover una tabla del espacio de tabla global a su propio espacio de tabla o viceversa, como se muestra en el ejemplo siguiente.

ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Límites de tamaño de archivo de MariaDB en Amazon RDS

En las instancias de base de datos de MariaDB en Amazon RDS, el límite máximo de almacenamiento aprovisionado restringe el tamaño de una tabla a un máximo de 16 TB cuando se usan espacios de tabla file-per-table de InnoDB. Este límite también restringe el espacio de tabla del sistema a un tamaño máximo de 16 TB. Los espacios de tabla file-per-table de InnoDB (en los que las tablas están cada una en su propio espacio de tabla) se habilitan de manera predeterminada para las instancias de base de datos de MariaDB en Amazon RDS. Para obtener más información, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

El uso de los espacios de tabla file-per-table de InnoDB tiene pros y contras en función de la aplicación. Para determinar el mejor método para su aplicación, consulte InnoDB File-Per-Table Mode en la documentación de MySQL.

No es recomendable permitir que las tablas crezcan hasta el tamaño de archivo máximo. En general, es preferible dividir los datos en tablas más pequeñas, que pueden mejorar el desempeño y los tiempos de recuperación.

Una opción que se puede usar para dividir una tabla grande en tablas más pequeñas es la creación de particiones. Las particiones distribuyen las porciones de una tabla grande en archivos independientes en función de las reglas que se hayan especificado. Por ejemplo, si almacena las transacciones por fecha, puede crear reglas de partición que distribuyan las transacciones más antiguas entre distintos archivos por medio de la creación de particiones. Después, periódicamente, se pueden archivar los datos de transacciones históricos que no tengan que estar disponibles de forma inmediata para su aplicación. Para obtener más información, consulte https://dev.mysql.com/doc/refman/5.6/en/partitioning.html en la documentación de MySQL.

Para determinar el tamaño de archivo de una tabla

Utilice el comando SQL siguiente para determinar si alguna de las tablas es demasiado grande y por lo tanto es candidata para realizar particiones. Para actualizar las estadísticas de la tabla, ejecute un comando ANALYZE TABLE en cada tabla. Para obtener más información, consulte ANALYZE TABLE en la documentación de MySQL.

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');

Para habilitar espacios de tabla file-per-table de InnoDB

  • Para habilitar espacios de tabla file-per-table de InnoDB, asigne al parámetro innodb_file_per_table el valor 1 en el grupo de parámetros de la instancia de base de datos.

Para deshabilitar los espacios de tabla file-per-table de InnoDB

  • Para deshabilitar los espacios de tablas file-per-table de InnoDB, establezca en el parámetro innodb_file_per_table el valor 0 dentro del grupo de parámetros de la instancia de base de datos.

Para obtener más información acerca de la actualización de un grupo de parámetros, consulte Trabajo con los grupos de parámetros de base de datos.

Cuando haya habilitado o deshabilitado los espacios de tabla file-per-table de InnoDB, puede ejecutar un comando ALTER TABLE. Puede utilizar este para mover una tabla del espacio de tabla global a su propio espacio de tabla o viceversa, como se muestra en el ejemplo siguiente.

ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;