Nota

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.

Database OCI con architettura PostgreSQL

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

Prerequisiti

Nota Il database OCI con PostgreSQL non è disponibile nel livello Sempre gratis OCI.

Architettura semplificata

Task 1: Crea credenziali utente chiave API OCI

  1. Eseguire il login a OCI Console, fare clic sul menu del profilo Icona menu Profilo e selezionare Profilo personale.

  2. In Risorse fare clic su Chiavi API.

  3. Fare clic su Aggiungi chiave API nella parte superiore sinistra dell'elenco di chiavi API.

  4. Fare clic su Scarica chiave privata e salvare la chiave nella directory .oci. Nella maggior parte dei casi non è necessario scaricare la chiave pubblica.

  5. 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.

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

Task 3: Installazione, configurazione e trasferimento dei dati con Rclone

  1. Installare rclone nell'host in locale.

    sudo -v ; curl https://rclone.org/install.sh | sudo bash
    
  2. 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).

  3. 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

  1. 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
    
  2. Installare e configurare rclone nell'host bastion - ripetere il task 3, passo 2.

  3. 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
    
  4. 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.

Conferme

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.