Provisionner OCI Database with PostgreSQL et migrer à partir d'un environnement sur place avec un temps d'arrêt minimal à l'aide d'OCI GoldenGate
Présentation
Oracle Cloud Infrastructure Database avec PostgreSQL (OCI Database with PostgreSQL) est un service entièrement géré compatible avec PostgreSQL, qui offre une performance 3 fois plus élevée grâce à un stockage optimisé pour les bases de données, un coût deux fois inférieur à celui d'Amazon Web Service (AWS), qui fournit des sauvegardes automatisées, une haute disponibilité, une maintenance programmée, une évolutivité dynamique du stockage, une évolutivité verticale, etc.
Exemple : Continuité des activités
Le service OCI Database with PostgreSQL offre un contrat de niveau de service (CNS) de temps de disponibilité de 99,99 %, un objectif de temps de récupération (ODR) de moins de 2 minutes pour les systèmes de base de données multinoeud et un objectif de point de récupération (OPR) de 0 sans perte de données. Pour les systèmes de base de données à noeud unique dans les régions de domaines de disponibilité uniques, le service offre un CNS de temps de disponibilité de 99,9 %, un temps de reprise sur commande de moins de 20 minutes et un point de reprise de 0.
OCI Database with PostgreSQL exploite OCI Block Volumes pour stocker des données d'utilisateur. Les mêmes garanties de durabilité, de sécurité et de performance s'appliquent. Pour plus d'informations, voir Aperçu de OCI Database with PostgreSQL et Premiers principes : Optimisation de PostgreSQL pour le nuage.
Ce tutoriel porte sur la migration d'une base de données PostgreSQL sur place vers une base de données OCI Database with PostgreSQL à l'aide d'OCI GoldenGate avec un temps d'arrêt minimal.
Détails de l'environnement :
- Nom d'utilisateur de la console OCI GoldenGate :
oggadmin
. - Version d'OCI GoldenGate :
23ai
. - Base de données OCI Database with PostgreSQL :
admin
.
Source sur place | OCI cible | |
---|---|---|
Nom de la base de données | product_inventory | base de données cible |
Utilisateur | gestionnaire de commandes | admin |
Schéma | data_analyze | data_analyze |
Version de base de données | 15.12 | 15.6 |
Objectifs
-
Créer une base de données OCI Database with PostgreSQL avec le système de base de données PostgreSQL.
-
Provisionnez le déploiement OCI GoldenGate.
-
Créer une base de données sur place et une connexion à la base de données OCI lors du déploiement et affecter des connexions.
-
Préparer le serveur et la base de données source.
-
Créer une extraction de chargement initial.
-
Sauvegardez les métadonnées de la base de données source à l'aide de l'utilitaire
pg_dump
. -
Importer les métadonnées dans OCI Database with PostgreSQL avec PostgreSQL.
-
Créez le processus Replicat de chargement initial à l'aide du fichier trace.
-
Créer une extraction en ligne ou de capture des données de modification (CDC) en commençant par le numéro de séquence de journal (LSN) pour la capture.
-
Créer un processus de réplication en ligne donnant un fichier de piste d'extraction CDC.
Tâche 1 : Provisionner la base de données OCI Database with PostgreSQL avec le système de base de données PostgreSQL
Cette tâche explique comment créer un système de base de données et les politiques suivantes sont requises avant le provisionnement. Pour plus d'informations, voir Gestion d'un système de base de données.
-
Ajoutez les politiques Oracle Cloud Infrastructure Identity and Access Management (IAM) suivantes.
Allow group <postgresql-admin-group> to read compartments in tenancy Allow group <postgresql-admin-group> to manage postgres-db-systems in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to manage postgres-backups in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to read postgres-work-requests in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to manage postgres-configuration in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to manage virtual-network-family in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to read secret-family in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to read vaults in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to read metrics in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ] Allow group <postgresql-admin-group> to use tag-namespaces in tenancy
-
Créez ou sélectionnez une chambre forte pour le mot de passe de l'administrateur de base de données. Pour plus d'informations, voir Gestion des chambres fortes.
-
Créez une clé pour le mot de passe de la base de données. Pour plus d'informations, voir Gestion des clés.
-
Créer une clé secrète pour le mot de passe de la base de données. Pour plus d'informations, voir Gestion des clés secrètes du service de chambre forte.
-
Connectez-vous à la console OCI, naviguez jusqu'à Base de données, PostgreSQL, Systèmes de base de données, Créer un nouveau système de base de données et cliquez sur Suivant.
-
Sélectionnez Configuration du matériel.
-
Sélectionnez Réseau en nuage virtuel et Sous-réseau et entrez Données d'identification de l'administrateur de système de base de données. Dans cet exemple, le nom d'utilisateur sera admin.
Une fois la création terminée, le système de base de données affiche l'état Actif.
-
Exécutez la commande suivante pour vérifier la connexion à OCI Database with PostgreSQL à partir du noeud de calcul.
-bash-4.2$ psql "sslmode=verify-full sslrootcert=c.pub host=<OCI DB server ip address> user=admin dbname=postgres" Password for user admin: psql (15.12, server 15.6) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, compression: off) Type "help" for help. postgres=>
Tâche 2 : Créer un déploiement OCI GoldenGate pour la migration
-
Allez à la console OCI, naviguez jusqu'à Oracle Database, GoldenGate, Déploiements et cliquez sur Créer un déploiement.
-
Entrez les informations requises spécifiées dans les images suivantes et sélectionnez PostgreSQL comme Sélectionner une technologie.
-
Dans Configurer votre déploiement, utilisez
oggadmin
en tant que nom d'utilisateur pour vous connecter à la console OCI GoldenGate en tant qu'administrateur. -
Cliquez sur Créer pour lancer la création et le déploiement. Une fois l'opération terminée, l'état Actif s'affiche.
Tâche 3 : Créer une connexion à la base de données sur place, Connexions à la base de données OCI lors du déploiement et affecter des connexions
OCI GoldenGate nécessite la connexion à la base de données source et cible et affecte les deux connexions au déploiement.
-
Créer une connexion à la base de données source.
-
Cliquez sur le nom du déploiement (
PG_Mig_deployment
), sélectionnez Connections (Connexions) et cliquez sur Create Connection (Créer une connexion). Entrez les informations requises comme indiqué dans les images suivantes. -
Sélectionnez Type PostgreSQL Server, Security Protocol Plain et cliquez sur Create (Créer).
-
-
Créer une connexion à la base de données cible.
-
Cliquez sur le nom du déploiement, sélectionnez Connections (Connexions) et cliquez sur Create Connection (Créer une connexion). Entrez les informations requises comme indiqué dans les images suivantes.
-
Sélectionnez Type comme OCI PostgreSQL.
-
Sélectionnez Protocole de sécurité comme TLS et Mode SSL comme Require.
-
-
Affectez les connexions de base de données au déploiement.
-
Allez à Déploiements, cliquez sur le nom du déploiement (
PG_Mig_deployment
), sélectionnez Affecter des connexions et cliquez sur Affecter une connexion. -
Entrez les informations requises comme indiqué dans les images suivantes.
Vous verrez l'état Actif une fois l'affectation de connexion terminée.
-
Tâche 4 : Préparer le serveur et la base de données source
-
Installez l'ensemble
postgresql15-contrib
.OCI GoldenGate nécessite l'ensemble
postgresql14-contrib
sur le serveur de base de données source pour effectuer une extraction à partir de la base de données du serveur PostgreSQL. L'ensemble peut être installé à l'aide de la commandesudo yum install postgresql15-contrib
(la version de la base de données source est 15).Note : Il est recommandé que la version des bibliothèques client corresponde à la version de la base de données PostgreSQL. Les versions de client inférieures à 10 ne sont pas prises en charge.
-
Préparer la création des utilisateurs de base de données dans la base de données source et les privilèges requis.
product_inventory=# create user ggreplication with password 'abc1234'; ERROR: role "ggreplication" already exists product_inventory=# product_inventory=# select current_database(); current_database ------------------- product_inventory (1 row) product_inventory=# GRANT CONNECT ON DATABASE product_inventory TO ggreplication; GRANT product_inventory=# ALTER USER ggreplication WITH REPLICATION; ALTER ROLE product_inventory=# ALTER USER ggreplication WITH SUPERUSER; ALTER ROLE product_inventory=# GRANT USAGE ON SCHEMA ordermanager TO ggreplication; GRANT product_inventory=# GRANT USAGE ON SCHEMA data_analyze TO ggreplication; GRANT product_inventory=# GRANT SELECT ON ALL TABLES IN SCHEMA ordermanager TO ggreplication; GRANT product_inventory=# GRANT SELECT ON ALL TABLES IN SCHEMA data_analyze TO ggreplication; GRANT product_inventory=# GRANT CREATE ON DATABASE product_inventory TO ggreplication; GRANT product_inventory=# GRANT CREATE, USAGE ON SCHEMA ordermanager TO ggreplication; GRANT product_inventory=# GRANT CREATE, USAGE ON SCHEMA data_analyze TO ggreplication; GRANT product_inventory=# GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA ordermanager TO ggreplication; GRANT product_inventory=# GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA data_analyze TO ggreplication; GRANT product_inventory=# GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA ordermanager TO ggreplication; GRANT product_inventory=# GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA data_analyze TO ggreplication; GRANT product_inventory=#
Pour plus d'informations sur l'objectif spécifique de chaque privilège, voir Préparer les utilisateurs et les privilèges de base de données pour PostgreSQL.
-
Voici les paramètres du fichier de configuration de base de données PostgreSQL. L'emplacement du fichier de configuration est
$PGDATA/postgresql.conf
.wal_level = logical **# set to logical for Capture** max_replication_slots = 1 **# max number of replication and one slot for Extract/Client** max_wal_senders = 1 **# one sender per max repl slot** track_commit_timestamp = on **# optional, correlates tx commit time** with begin tx log record (useful for # timestamp- based positioning)
Note :
- Après avoir effectué l'une des modifications précédentes, redémarrez la base de données.
- Les types de données PostgreSQL pris en charge pour la réplication OCI GoldenGate et la limitation des types de données, des objets et des opérations pris en charge peuvent être vérifiés dans la documentation. Pour plus d'informations, voir Préparer des bases de données.
Tâche 5 : Créer une extraction de chargement initial
Nous devons créer l'extraction de chargement initial, ce qui fournira le LSN dans la section de rapport d'extraction OCI GoldenGate.
-
Allez à la console OCI, naviguez jusqu'à Base de données, GoldenGate, Déploiements et cliquez sur le nom du déploiement créé dans la tâche 2.
-
Cliquez sur Lancer la console et entrez les données d'identification de connexion.
-
Allez à Connexions à la base de données et cela devrait afficher la source affectée et la base de données OCI Database with PostgreSQL avec des connexions à la base de données PostgreSQL et vérifier la vérification de la connectivité.
Une connexion réussie permet de démarrer le chargement initial à ce stade.
-
Allez à la console OCI GoldenGate, naviguez jusqu'à Extraire et cliquez sur +.
Une fois l'extraction du chargement initial arrêtée, vérifiez les fichiers de rapport OCI GoldenGate et notez les détails LSN et gardez-le à portée de main pour l'utiliser dans la tâche 9.
Tâche 6 : Sauvegarder les métadonnées de base de données source à l'aide de la commande pg_dump
La commande pg_dump
est utilisée pour vider uniquement les métadonnées product_inventory
de la base de données source.
pg_dump -h localhost -U ggreplication -d product_inventory -F c -v -s --file=/tmp/exp_source_db.dump
Tâche 7 : Importer les métadonnées dans la base de données OCI Database with PostgreSQL
Utilisez le fichier binaire pg_restore pour l'importation dans la base de données OCI Database with PostgreSQL. Ici, le nom de la base de données OCI est targetdb
.
Exécutez la commande de restauration à partir du noeud de calcul OCI dans lequel nous avons exécuté avec succès la commande de connexion à la tâche 1.8.
pg_restore -h <OCI IP address> -U admin -d targetdb -v exp_source_db.dump
postgres=> \c targetdb
psql (15.12, server 15.6)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, compression: off)
You are now connected to database "targetdb" as user "admin".
targetdb=> \dn
List of schemas
Name | Owner
--------------+-------------------
data_analyze | admin
ordermanager | admin
public | pg_database_owner
(3 rows)
Note : Utilisez l'interrogation
select table_name,table_schema from information_schema.tables where table_type='BASE TABLE' and table_schema in ('data_analyze','ordermanager') order by table_schema,table_name;
pour vérifier les noms de table après l'importation des métadonnées sur la cible.
Tâche 8 : Créer une réplication de chargement initial à l'aide du fichier trace
-
Allez à la console OCI GoldenGate, naviguez jusqu'à Réplicats et cliquez sur + pour créer le processus de réplication.
-
Cliquez sur Créer et exécuter pour démarrer le chargement initial. Une fois le chargement terminé, vérifiez le nombre de rangées de la table.
-
Allez à Rapports et vérifiez le chargement initial des rapports de réplication. Vérifier le nombre de lignes de table dans les deux bases.
Tâche 9 : Créer une extraction CDC en modifiant le LSN de début pour Capture
L'extraction CDC est une extraction en ligne utilisée pour capturer les modifications en cours sur la base de données existante et l'extraction CDC commence à capturer à partir du numéro LSN collecté.
-
Allez à la console OCI GoldenGate, naviguez jusqu'à Extractions, cliquez sur + et entrez les informations requises, comme indiqué dans les images suivantes.
-
Une fois le CDC enregistré et créé, cliquez sur Commencer par les options pour indiquer la lecture à partir d'un LSN spécifique collecté dans la tâche 5.
Nous pouvons voir un décalage de zéro seconde sur l'extraction CDC après un certain temps.
Tâche 10 : Créer une réplication en ligne donnant un fichier de piste d'extraction CDC
-
Allez à la console OCI GoldenGate, naviguez jusqu'à Réplications, cliquez sur + et entrez les informations requises, comme indiqué dans les images suivantes.
-
Cliquez sur Créer et exécuter après avoir modifié la commande
MAP
.Nous pouvons voir un décalage de zéro seconde sur le processus de réplication en ligne après un certain temps.
Vérification
Exécutez les interrogations suivantes pour insérer dans la table source data_analyze.table3
se réplique dans la table data_analyze.table3
de la base de données cible.
Nombre et données de la table de vérification côté cible.
Liens connexes
-
Préparer les utilisateurs et les privilèges de base de données pour PostgreSQL
-
Instanciation précise entre les environnements PostgreSQL à l'aide de pg_dump
Reconnaissance
- Auteur - Sivakrishna Burle (ingénieur en nuage principal, services infonuagiques Oracle pour l'Amérique du Nord - NACIE)
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.
Provision OCI Database with PostgreSQL and Migrate from On-Premises with Minimum Downtime using OCI GoldenGate
G39912-02
Copyright ©2025, Oracle and/or its affiliates.