Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Trasporto di un SQL database Postgre alla destinazione dall'origine
Dopo aver completato il processo descritto in Configurazione per il trasporto di un database SQL Postgre, puoi avviare il trasporto. A questo scopo, esegui la funzione transport.import_from_server
nell'istanza database di destinazione. Nella sintassi seguente puoi trovare i parametri della funzione.
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);
Il valore false
mostrato nell'esempio indica alla funzione che non si tratta di un test. Per testare la configurazione di trasporto, è possibile specificare true
per l’opzione dry_run
quando chiami la funzione, come illustrato di seguito:
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)
Le INFO righe vengono emesse perché il pg_transport.timing
parametro è impostato sul valore predefinito,. true
Imposta la proprietà dry_run
su false
quando esegui il comando e il database di origine viene importato nella destinazione, come illustrato di seguito:
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)
Questa funzione richiede l'inserimento di password per l'utente del database. Quindi, ti consigliamo di modificare le password dei ruoli utente utilizzati dopo aver completato il trasporto. In alternativa, è possibile utilizzare le variabili SQL bind per creare ruoli utente temporanei. Utilizza questi ruoli temporanei per il trasporto, quindi eliminali al termine.
Se il trasporto non ha esito positivo, potrebbe essere visualizzato un messaggio di errore simile al seguente:
pg_transport.num_workers=8 25% of files transported failed to download file data
Il messaggio di errore "Impossibile scaricare dati file" indica che il numero di processi di lavoro non è impostato correttamente per le dimensioni del database. Potrebbe essere necessario aumentare o diminuire il valore impostato per pg_transport.num_workers
. Ogni errore segnala la percentuale di completamento, in modo da poter vedere l'impatto delle modifiche. Ad esempio, la modifica dell'impostazione da 8 a 4 in un caso ha comportato quanto segue:
pg_transport.num_workers=4 75% of files transported failed to download file data
Ricorda che il parametro max_worker_processes
viene preso in considerazione anche durante il processo di trasporto. In altre parole, potrebbe essere necessario modificare sia pg_transport.num_workers
che max_worker_processes
per trasportare correttamente il database. L'esempio mostrato ha finalmente funzionato quando pg_transport.num_workers
è stato impostato su 2:
pg_transport.num_workers=2 100% of files transported
Per ulteriori informazioni sulla funzione transport.import_from_server
e sui relativi parametri, consulta Riferimento per la funzione Transportable Database.