Transporte de una base de datos PostgreSQL al destino desde el origen - Amazon Relational Database Service

Transporte de una base de datos PostgreSQL al destino desde el origen

Después de completar el proceso descrito en Configuración de transporte de una base de datos de PostgreSQL, puede comenzar el transporte. Para ello, ejecute la función transport.import_from_server en la instancia de base de datos de destino. En la siguiente sintaxis, puede encontrar los parámetros de la función.

SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', false);

El valor false que se muestra en el ejemplo indica a la función que no se trata de una prueba. Para probar la configuración de transporte, puede especificar true para la opción dry_run cuando ejecute la función, como se muestra a continuación:

postgres=> SELECT transport.import_from_server( 'docs-lab-source-db.666666666666aws-region.rds.amazonaws.com', 5432, 'postgres', '********', 'labdb', '******', true); INFO: Starting dry-run of import of database "labdb". INFO: Created connections to remote database (took 0.03 seconds). INFO: Checked remote cluster compatibility (took 0.05 seconds). INFO: Dry-run complete (took 0.08 seconds total). import_from_server -------------------- (1 row)

Las líneas de INFO se generan porque el parámetro pg_transport.timing se establece en su valor predeterminado true. Configure dry_run en false cuando ejecute el comando y la base de datos de origen se importe al destino, como se muestra a continuación:

INFO: Starting import of database "labdb". INFO: Created connections to remote database (took 0.02 seconds). INFO: Marked remote database as read only (took 0.13 seconds). INFO: Checked remote cluster compatibility (took 0.03 seconds). INFO: Signaled creation of PITR blackout window (took 2.01 seconds). INFO: Applied remote database schema pre-data (took 0.50 seconds). INFO: Created connections to local cluster (took 0.01 seconds). INFO: Locked down destination database (took 0.00 seconds). INFO: Completed transfer of database files (took 0.24 seconds). INFO: Completed clean up (took 1.02 seconds). INFO: Physical transport complete (took 3.97 seconds total). import_from_server -------------------- (1 row)

Esta función requiere que proporcione contraseñas de usuario de base de datos. De esta manera, le recomendamos que cambie las contraseñas de los roles de usuario que ha utilizado después de completar el transporte. O, puede utilizar variables de enlace SQL para crear roles de usuario temporales. Utilice estos roles temporales para el transporte y, a continuación, descarte los roles con posterioridad.

Si el transporte no se realiza correctamente, es posible que vea un mensaje de error similar al siguiente:

pg_transport.num_workers=8 25% of files transported failed to download file data

El mensaje de error “Failed to download file data” (No se pudo descargar los datos de archivo) indica que el número de procesos de trabajo no está configurado correctamente para el tamaño de la base de datos. Es posible que tenga que aumentar o disminuir el valor establecido para pg_transport.num_workers. Cada error informa el porcentaje de finalización, de modo que pueda ver el impacto de los cambios. Por ejemplo, cambiar la configuración de 8 a 4 en un caso dio lugar a lo siguiente:

pg_transport.num_workers=4 75% of files transported failed to download file data

Tenga en cuenta que el parámetro max_worker_processes también se tiene en cuenta durante el proceso de transporte. En otras palabras, es posible que tenga que modificar tanto pg_transport.num_workers como max_worker_processes para transportar correctamente la base de datos. El ejemplo que se muestra finalmente funcionó cuando pg_transport.num_workers se estableció en 2:

pg_transport.num_workers=2 100% of files transported

Para obtener más información sobre la funcionalidad transport.import_from_server y sus parámetros, consulte Referencia de función de bases de datos transportables.