Transporter une SQL base de données Postgre vers la destination depuis la source - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Transporter une SQL base de données Postgre vers la destination depuis la source

Une fois terminé le processus décrit dans Configuration du transport d'une base de données Postgre SQL, vous pouvez démarrer le transport. Pour cela, exécutez la fonction transport.import_from_server sur l'instance de base de données de destination. Dans la syntaxe suivante, vous trouverez les paramètres de la fonction.

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

Le valeur false illustrée dans l'exemple indique à la fonction qu'il ne s'agit pas d'un test. Pour tester la configuration de votre transport, vous pouvez spécifier true pour dry_run lorsque vous appelez la fonction, comme illustré ci-après :

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)

Les INFO lignes sont sorties car le pg_transport.timing paramètre est défini sur sa valeur par défaut,true. Définissez dry_run à la valeur false lorsque vous exécutez la commande et que la base de données source est importée vers la destination, comme indiqué ci-dessous :

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)

Cette fonction nécessite que vous fournissiez les mots de passe utilisateur de la base de données. Nous vous recommandons donc de modifier les mots de passe des rôles utilisateur que vous avez utilisés une fois le transport terminé. Vous pouvez également utiliser des variables de SQL liaison pour créer des rôles d'utilisateur temporaires. Utilisez ces rôles temporaires pour le transport, puis supprimez-les une fois que vous n'en avez plus besoin.

Si votre transport n'est pas réussi, vous pouvez voir un message d'erreur similaire à ce qui suit :

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

Le message d'erreur « Impossible de télécharger les données du fichier » indique que le nombre de processus de travail n'est pas défini correctement pour la taille de la base de données. Vous devrez peut-être augmenter ou diminuer la valeur définie pour pg_transport.num_workers. Chaque échec indique le pourcentage d'achèvement, afin que vous puissiez voir l'impact de vos modifications. Par exemple, la modification du paramètre de 8 à 4 dans un cas a entraîné les résultats suivants :

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

Gardez à l'esprit que le paramètre max_worker_processes est également pris en compte pendant le processus de transport. Autrement dit, vous devrez peut-être modifier à la fois pg_transport.num_workers et max_worker_processes pour transporter correctement la base de données. L'exemple présenté a finalement fonctionné lorsque le pg_transport.num_workers a été réglé sur 2 :

pg_transport.num_workers=2 100% of files transported

Pour plus d'informations sur la fonction transport.import_from_server et ses paramètres, veuillez consulter Référence des fonctions des base de données transportables.