Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriversi a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Quando completi il tuo laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Esegui la migrazione a Oracle Cloud Infrastructure Database con PostgreSQL utilizzando OCI Object Storage e Rclone
Introduzione
Oracle Cloud Infrastructure Database con PostgreSQL (OCI Database con PostgreSQL) è un servizio completamente gestito che riduce il tempo dedicato alle attività di routine come l'applicazione di patch, i backup e la gestione dello storage. Le sue funzionalità principali includono un'architettura di storage ottimizzata per il database che separa il motore di elaborazione delle transazioni SQL dal livello di storage, più repliche per aumentare l'attività degli utenti, copie di backup interregionali e piena compatibilità con il database PostgreSQL open source.
Nota: sono supportate le versioni 14 e 15 di PostgreSQL (a giugno 2025).
Lo storage degli oggetti OCI offre storage scalabile, duraturo e a basso costo per qualsiasi tipo di dati. Questa esercitazione verrà utilizzata per memorizzare il file di dump PostgreSQL.
Rclone è un programma open source della riga di comando per la gestione o il trasferimento di file negli archivi cloud.
In questa esercitazione parleremo di come eseguire la migrazione efficace dei dati da un database PostgreSQL on-premise a OCI Database con PostgreSQL. Useremo le utility pg_dump
e pg_restore
sfruttando OCI Object Storage e Rclone a costi contenuti per un caricamento rapido e multiparte e la funzione mount.
Obiettivi
-
Esportare il database PostgreSQL utilizzando
pg_dump
. -
Copiare i file di dati esportati nello storage degli oggetti OCI utilizzando rclone.
-
Esegui il MOUNT dello storage degli oggetti OCI su OCI Compute con rclone.
-
Importare i dati direttamente dallo storage degli oggetti OCI utilizzando
pg_restore
.
Prerequisiti
-
Accesso a un account OCI. Per iscriversi a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
-
VCN con subnet pubbliche e private, assicurarsi che la porta
5432
sia aperta nella lista di sicurezza OCI per la subnet privata. -
Un'istanza di OCI Compute nella subnet pubblica, che funge da nodo bastion e utility, con gli strumenti client Rclone e PostgreSQL installati (chiamati bastion in questa esercitazione, non combinarli con il servizio OCI Bastion)
-
Questa esercitazione è basata su Oracle Linux 8. I comandi possono essere diversi per altri sistemi operativi.
-
È stato eseguito il provisioning del database OCI con PostgreSQL nella subnet privata. Per ulteriori informazioni, vedere Distribuire il database OCI con PostgreSQL.
-
Istanza locale PostgreSQL in locale con strumenti client PostgreSQL installati.
Nota Il database OCI con PostgreSQL non è disponibile nel livello Sempre gratis OCI.
Task 1: Crea credenziali utente chiave API OCI
-
Eseguire il login a OCI Console, fare clic sul menu del profilo
e selezionare Profilo personale.
-
In Risorse fare clic su Chiavi API.
-
Fare clic su Aggiungi chiave API nella parte superiore sinistra dell'elenco di chiavi API.
-
Fare clic su Scarica chiave privata e salvare la chiave nella directory
.oci
. Nella maggior parte dei casi non è necessario scaricare la chiave pubblica. -
Fare clic su Aggiungi.
La chiave viene aggiunta e viene visualizzata l'anteprima del file di configurazione. Lo snippet di file include i parametri e i valori necessari per creare il file di configurazione.
user
: OCID dell'utente per il quale viene aggiunta l'identificativo Oracle Cloud dell'utente per il quale viene aggiunta una coppia di chiavi.fingerprint
: l'impronta della chiave appena aggiunta.tenancy
: OCID della Vostra tenancy.region
: l'area attualmente selezionata in OCI Console.key_file
: il percorso del file della chiave privata scaricato. Questo valore deve essere aggiornato con il percorso del file system in cui è stato salvato il file di chiavi private.
Per ulteriori informazioni, vedere Chiavi e OCID obbligatori.
Task 2: Esporta dati PostgreSQL con pg_dump
Nell'host in locale, utilizzare pg_dump
per esportare il database PostgreSQL.
pg_dump -U your_username -h your_host -p your_port -F c -f /path/to/output.dump your-database-name
-U your_username
: il nome utente del database.-h your_host
: l'host in cui è in esecuzione il database (ad esempio,localhost
).-p your_port
: il numero di porta (il valore predefinito è in genere5432
).-F c
: formato dell'output (c è per custom, che è flessibile e ripristinabile tramitepg_restore
).-f /path/to/output.dump
: il percorso del file in cui verrà salvato il dump.
your-database-name: il nome del database di cui si desidera eseguire il dump.
Task 3: Installazione, configurazione e trasferimento dei dati con Rclone
-
Installare rclone nell'host in locale.
sudo -v ; curl https://rclone.org/install.sh | sudo bash
-
Eseguire il comando seguente per configurare rclone.
rclone config
Per ulteriori informazioni sulla configurazione della connessione allo storage degli oggetti OCI, consultare la documentazione Rclone. Utilizzare l'opzione 2: un utente OCI e una chiave API per l'autenticazione (creata nel task 1).
-
Utilizza rclone caricamento multiparte per copiare il database esportato in un bucket di storage degli oggetti OCI. Ad esempio:
rclone --progress --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10 copy <source> <dest>
Esempio di comando e output:
rclone --progress --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10 copy output.dump OCI:bucket_db-dump Transferred: 4.500 KiB / 4.500 KiB, 100%, 0 B/s, ETA - Transferred: 1 / 1, 100% Elapsed time: 0.0s
Per ulteriori informazioni, vedere Copia dati in Oracle Cloud mediante Rclone per creare approfondimenti in Oracle Analytics Cloud.
Task 4: Esegui il MOUNT dello storage degli oggetti OCI utilizzando Rclone
-
Nel tuo host bastion OCI Compute, installa gli strumenti PostgreSQL.
dnf install postgresql
OCI Database con PostgreSQL supporta le versioni 14 e 15, quindi installa gli strumenti PostgreSQL di conseguenza.
sudo dnf module reset postgresql sudo dnf module enable postgresql:15 sudo dnf install postgresql
-
Installare e configurare rclone nell'host bastion - ripetere il task 3, passo 2.
-
Eseguire il MOUNT del bucket con i dati copiati nel task 3. Ad esempio,
/mnt/oci
.rclone mount OCI:bucket_db-dump /mnt/oci --vfs-cache-mode full --log-file /home/opc/rclone.log --config ~/.config/rclone/rclone.conf --log-level DEBUG --daemon --attr-timeout 1s
-
Controllare i file nello storage degli oggetti OCI attivato.
ls /mnt/oci
Task 5: Ripristinare il database OCI con PostgreSQL utilizzando pg_restore
Ripristina il database OCI con il database PostgreSQL con job paralleli, in background, come processo daemon, utilizzando il file system attivato.
nohup pg_restore -d test -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -v -c -j 10 -F c /mnt/oci/output.dump >import.log 2>&1
Il database di destinazione (test in questo esempio) deve esistere già prima di eseguire pg_restore. Per creare il database in anticipo, effettuare le operazioni riportate di seguito:
createdb -U postgres -h localhost -p 5432 test
È inoltre possibile aggiungere –verbose per i dettagli di avanzamento o –clean per eliminare gli oggetti prima di ricrearli.
Task 6: Verificare il database ripristinato
Utilizzando psql
, eseguire il login al database OCI con PostgreSQL e verificare la completezza dei dati ripristinati.
psql -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -d test
Ora è possibile utilizzare le istruzioni di selezione SQL per verificare il numero di righe nelle tabelle.
Collegamenti correlati
Conferme
- Autore - Sylwester Dec (OCI Open Source Data Black Belt)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Migrate to Oracle Cloud Infrastructure Database with PostgreSQL using OCI Object Storage and Rclone
G37260-01
Copyright ©2025, Oracle and/or its affiliates.