Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments d'Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles qui sont propres à votre environnement en nuage.
Migrer vers Oracle Cloud Infrastructure Database avec PostgreSQL à l'aide du service de stockage d'objets et du clone OCI
Présentation
Oracle Cloud Infrastructure Database avec PostgreSQL (OCI Database with PostgreSQL) est un service entièrement géré qui réduit le temps consacré aux tâches de routine telles que l'application de correctifs, les sauvegardes et la gestion du stockage. Ses principales caractéristiques incluent une architecture de stockage optimisée pour la base de données qui découple le moteur de traitement des transactions SQL de la couche de stockage, plusieurs répliques pour stimuler l'activité des utilisateurs, des copies de sauvegarde interrégionales et une compatibilité complète avec la base de données PostgreSQL à code source libre.
Note : Les versions 14 et 15 de PostgreSQL sont prises en charge (en juin 2025).
Le service Stockage d'objets pour OCI fournit un stockage évolutif, durable et à faible coût pour tout type de données. Dans ce tutoriel, il sera utilisé pour stocker le fichier de vidage PostgreSQL.
Rclone est un programme à code source libre de ligne de commande permettant de gérer ou de transférer des fichiers dans des stockages en nuage.
Dans ce tutoriel, nous allons discuter de la façon de migrer efficacement des données d'une base de données PostgreSQL sur place vers OCI Database with PostgreSQL. Nous utiliserons les utilitaires pg_dump
et pg_restore
en tirant parti du service de stockage d'objets et de clonage d'OCI rentable pour un chargement rapide en plusieurs parties et la fonction de montage.
Objectifs
-
Exportez la base de données PostgreSQL à l'aide de
pg_dump
. -
Copiez les fichiers de données exportés vers le stockage d'objets OCI à l'aide de rclone.
-
Montez OCI Object Storage vers OCI Compute avec rclone.
-
Importez des données directement à partir du service de stockage d'objets pour OCI à l'aide de
pg_restore
.
Conditions requises
-
Accès à un compte OCI. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
-
VCN avec des sous-réseaux publics et privés, assurez-vous que le port
5432
est ouvert dans la liste de sécurité OCI pour le sous-réseau privé. -
Instance de calcul OCI dans le sous-réseau public, agissant en tant que noeud d'hôte bastion et d'utilitaire, avec des outils client Rclone et PostgreSQL installés (appelés hôte bastion dans ce tutoriel, ne l'associez pas au service d'hôte bastion OCI)
-
Ce tutoriel est basé sur Oracle Linux 8, les commandes peuvent différer pour d'autres systèmes d'exploitation.
-
Base de données OCI Database with PostgreSQL dans le sous-réseau privé. Pour plus d'informations, voir Déployer OCI Database with PostgreSQL.
-
Instance locale PostgreSQL sur place avec outils client PostgreSQL installés.
Note : OCI Database with PostgreSQL n'est pas disponible dans le niveau Toujours gratuit d'OCI.
Tâche 1 : Créer les données d'identification d'utilisateur de clé d'API OCI
-
Connectez-vous à la console OCI, cliquez sur le menu de profil
et sélectionnez Mon profil.
-
Dans Ressources, cliquez sur Clés d'API.
-
Cliquez sur Ajouter une clé d'API en haut à gauche de la liste des clés d'API.
-
Cliquez sur Télécharger la clé privée et enregistrez la clé dans votre répertoire
.oci
. Dans la plupart des cas, vous n'avez pas besoin de télécharger la clé publique. -
Cliquez sur Ajouter.
La clé est ajoutée et la prévisualisation du fichier de configuration s'affiche. L'extrait de fichier comprend les paramètres et les valeurs nécessaires pour créer votre fichier de configuration.
user
: Identificateur Oracle Cloud (OCID) de l'utilisateur pour lequel la paire de clés est ajoutée.fingerprint
: Empreinte numérique de la clé qui vient d'être ajoutée.tenancy
: OCID de votre location.region
: Région actuellement sélectionnée dans la console OCI.key_file
: Chemin d'accès au fichier de clé privée téléchargé. Vous devez mettre à jour cette valeur dans le chemin d'accès à votre système de fichiers où vous avez enregistré le fichier de clé privée.
Pour plus d'informations, voir Clés et OCID requis.
Tâche 2 : Exporter les données PostgreSQL avec pg_dump
Dans votre hôte sur place, utilisez pg_dump
pour exporter la base de données 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
: Nom d'utilisateur de la base de données.-h your_host
: Hôte sur lequel la base de données est exécutée (par exemple,localhost
).-p your_port
: Numéro de port (par défaut,5432
).-F c
: Format de la sortie (c personnalisé, flexible et restaurable au moyen depg_restore
).-f /path/to/output.dump
: Chemin d'accès au fichier dans lequel le vidage sera enregistré.
your-database-name : Nom de la base de données à vider.
Tâche 3 : Installer, configurer et transférer des données avec Rclone
-
Dans votre hôte sur place, installez rclone.
sudo -v ; curl https://rclone.org/install.sh | sudo bash
-
Exécutez la commande suivante pour configurer rclone.
rclone config
Pour plus d'informations sur la configuration de la connexion au service de stockage d'objets pour OCI, voir la documentation sur le clone. Utilisez Option 2 : un utilisateur OCI et une clé d'API pour l'authentification (créée dans la tâche 1).
-
Utilisez le chargement en plusieurs parties rclone pour copier la base de données exportée vers un seau de stockage d'objets OCI. Par exemple :
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>
Exemple de commande et de sortie :
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
Pour plus d'informations, voir Copier des données vers Oracle Cloud à l'aide de Rclone pour créer des données clés dans Oracle Analytics Cloud.
Tâche 4 : Monter le stockage d'objets OCI à l'aide de Rclone
-
Dans votre hôte bastion du service de calcul pour OCI, installez les outils PostgreSQL.
dnf install postgresql
OCI Database with PostgreSQL prend en charge les versions 14 et 15. Installez donc les outils PostgreSQL en conséquence.
sudo dnf module reset postgresql sudo dnf module enable postgresql:15 sudo dnf install postgresql
-
Installez et configurez rclone dans votre hôte bastion - répétez la tâche 3, étape 2.
-
Montez le compartiment avec les données copiées dans la tâche 3. Par exemple,
/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
-
Vérifiez les fichiers dans le stockage d'objets OCI monté.
ls /mnt/oci
Tâche 5 : Restaurer la base de données OCI Database with PostgreSQL à l'aide de pg_restore
Restaurez votre base de données OCI Database with PostgreSQL avec des tâches parallèles, en arrière-plan, en tant que processus démon, à l'aide d'un système de fichiers monté.
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
La base de données cible (le test dans cet exemple) doit déjà exister avant d'exécuter pg_restore. Pour créer la base de données au préalable :
createdb -U postgres -h localhost -p 5432 test
Vous pouvez également ajouter -verbose pour les détails de progression ou -clean pour supprimer des objets avant de les recréer.
Tâche 6 : Vérifier la base de données restaurée
À l'aide de psql
, connectez-vous à la base de données OCI Database with PostgreSQL et vérifiez l'exhaustivité des données restaurées.
psql -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -d test
Vous pouvez désormais utiliser des instructions SQL Select pour vérifier le nombre de lignes dans les tables.
Liens connexes
Remerciements
- Auteur - Sylwester Dec (OCI Open Source Data Black Belt)
Ressources d'apprentissage supplémentaires
Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation sur le produit, visitez Oracle Help Center.
Migrate to Oracle Cloud Infrastructure Database with PostgreSQL using OCI Object Storage and Rclone
G37259-01
Copyright ©2025, Oracle and/or its affiliates.