Importación de datos en PostgreSQL en Amazon RDS - Amazon Relational Database Service

Importación de datos en PostgreSQL en Amazon RDS

Supongamos que tiene una implementación de PostgreSQL existente que quiere pasar a Amazon RDS. La complejidad de la tarea dependerá del tamaño de la base de datos y de los tipos de objetos de base de datos que se van a transferir. Por ejemplo, considere una base de datos que contenga conjuntos de datos de tamaños del orden de gigabytes, junto con disparadores y procedimientos almacenados. Esta base de datos será más complicada que una base de datos sencilla con tan solo unos cuantos megabytes de datos de prueba sin disparadores ni procedimientos almacenados.

Es recomendable usar las herramientas de migración de bases de datos de PostgreSQL nativas si se dan las condiciones siguientes:

  • Se trata de una migración homogénea, en la que se migra desde una base de datos con el mismo motor de base de datos que la base de datos de destino.

  • Se va a migrar una base de datos completa.

  • Las herramientas nativas permiten migrar el sistema con un tiempo de inactividad mínimo.

En la mayoría de los demás casos, realizar una migración de base de datos mediante Database Migration Service (AWS DMS) de AWS es el mejor enfoque. AWS DMS puede migrar bases de datos sin tiempo de inactividad y, para numerosos motores de base de datos, continuar la reproducción en curso hasta que todo esté preparado para cambiar a la base de datos de destino. Puede migrar al mismo motor de base de datos o a un motor de base de datos diferente con DMS de AWS. Si va a migrar a un motor de base de datos distinto del de la base de datos origen, puede usar la AWS Schema Conversion Tool (AWS SCT). Se utiliza AWS SCT para migrar objetos de esquema que AWS DMS no ha migrado. Para obtener más información acerca del uso de DMS de AWS, consulte ¿Qué es AWS Database Migration Service?

Modifique el grupo de parámetros de base de datos para incluir la siguiente configuración solo para su importación. Debe probar la configuración de los parámetros para encontrar los ajustes más eficientes para el tamaño de su instancia de base de datos. También tiene que volver a los valores de producción para esos parámetros cuando se complete la importación.

Modifique la configuración de su instancia de base de datos como se indica a continuación:

  • Deshabilite los backups de la instancia de base de datos (defina backup_retention como 0).

  • Deshabilite el uso de Multi-AZ.

Modifique el grupo de parámetros de base de datos para incluir la siguiente configuración. Solo debe usar estos ajustes al importar los datos. Debe probar la configuración de los parámetros para encontrar los ajustes más eficientes para el tamaño de su instancia de base de datos. También tiene que volver a los valores de producción para esos parámetros cuando se complete la importación.

Parámetro Valor recomendado al importar Descripción

maintenance_work_mem

524288, 1048576, 2097152, o 4194304 (in KB). Estos valores son comparables a 512 MB, 1 GB, 2 GB y 4 GB.

El valor de este ajuste depende del tamaño de su host. Este parámetro se usa en las declaraciones CREATE INDEX y cada comando paralelo puede usar esa cantidad de memoria. Calcule el mejor valor para no elegir uno demasiado alto y quedarse sin memoria.

max_wal_size

256 (para la versión 9.6), 4096 (para las versiones 10 y posteriores)

Tamaño máximo para permitir que el WAL crezca durante los puntos de control automáticos. Aumentar este parámetro puede aumentar la cantidad de tiempo necesario para la recuperación de fallos. Este parámetro reemplaza checkpoint_segments a la versión 9.6 y versiones posteriores de PostgreSQL.

Para la versión 9.6 de PostgreSQL, este valor está en unidades de 16 MB. Para versiones posteriores, el valor está en unidades de 1 MB. Por ejemplo, en la versión 9.6, 128 significa 128 fragmentos que tienen un tamaño de 16 MB cada uno. En la versión 12.4, 2048 significa 2048 fragmentos que tienen un tamaño de 1 MB cada uno.

checkpoint_timeout

1800

El valor de este ajuste reduce la frecuencia de la rotación de WAL.

synchronous_commit

Desact.

Deshabilite este ajuste para acelerar las operaciones de escritura. La desactivación de este parámetro puede aumentar el riesgo de pérdida de datos si se bloquea el servidor (no desactive FSYNC).

wal_buffers

8192

Este valor está en unidades de 8 KB. Esto mejora la velocidad de generación de WAL.

autovacuum

0

Deshabilite el parámetro autovacuum de PostgreSQL mientras carga los datos para que no consuma recursos.

Use los comandos pg_dump -Fc (comprimido) o pg_restore -j (paralelo) con estos ajustes.

nota

El comando PostgreSQL pg_dumpall requiere permisos de super_user que no se conceden al crear una instancia de base de datos, por lo que no se puede usar para importar los datos.