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.666666666666
aws-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.