Réplication de données de PostgreSQL vers Autonomous Transaction Processing

Découvrez comment répliquer des données d'une base de données de serveur PostgreSQL vers Autonomous Transaction Processing à l'aide d'OCI GoldenGate.

Avant de commencer

Pour mener à bien ce démarrage rapide, vous devez disposer des éléments suivants :

Environnement configuré : PostgreSQL

Afin de configurer l'environnement pour ce démarrage rapide, procédez comme suit :
  1. Exécutez les commandes suivantes pour installer PostgreSQL.
    1. Installez le serveur PostgreSQL :
      sudo yum install postgresql-server
    2. Installez le module postgresql-contrib pour éviter cette exception SQL :
      sudo yum install postgresql-contrib
    3. Créez un cluster de base de données PostgreSQL :
      sudo postgresql-setup --initdb
    4. Activez postgresql.service :
      sudo systemctl enable postgresql.service
    5. Démarrez postgresql.service :
      sudo systemctl start postgresql.service
  2. Par défaut, PostgreSQL autorise uniquement les connexions locales. Autorisez la connectivité à distance à PostgreSQL.
    1. Dans /var/lib/pgsql/data/postgresql.conf, préparez la base de données pour la réplication.
    2. Localisez et annulez le commentaire de listen_addresses = 'localhost', puis remplacez localhost par un astérisque (*) :
      listen_addresses = '*'
    3. Définissez les paramètres suivants :
      • wal_level = logical
      • max_replication_slots = 1
      • max_wal_senders = 1
      • track_commit_timestamp = on

      Remarques :

      Configurez /var/lib/pgsql/data/pg_hba.conf pour vous assurer que l'authentification client est définie afin d'autoriser les connexions à partir d'un hôte Oracle GoldenGate. Par exemple, ajoutez ce qui suit :
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      Pour plus d'informations, reportez-vous à Fichier pg_hba.conf.
    4. Redémarrez le serveur PostgreSQL :
      sudo systemctl restart postgresql.service
  3. Si vous utilisez Oracle Cloud Compute pour héberger PostgreSQL, ouvrez le port 5432 :
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. Ouvrez le port 5432 dans la liste de sécurité de votre VCN.
  5. Connectez-vous à PostgreSQL.
    > sudo su - postgres
    > psql

    Remarques :

    Vous pouvez également entrer sudo su - postgres psql si l'exemple ci-dessus ne fonctionne pas.
  6. Configurez PostgreSQL.
    1. Téléchargez et exécutez seedSRCOCIGGLL_PostgreSQL.sql pour configurer la base de données et charger les données échantillon.
    2. Exécutez les commandes suivantes pour configurer l'utilisateur (assurez-vous de remplacer <password> par un mot de passe réel) :
      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Configuration de l'environnement : Autonomous Transaction Processing (ATP)

  1. Téléchargez et décompressez le schéma échantillon de base de données.
  2. Déverrouillez l'utilisateur GGADMIN.
    1. Dans la console Oracle Cloud, sélectionnez votre instance ATP sur la page Bases de données autonomes pour en visualiser les détails et accéder à Database Actions.
    2. Cliquez sur Actions de base de données, puis sur Utilisateurs de base de données.
    3. Localisez GGADMIN, puis cliquez sur le menu représenté par des points de suspension et sélectionnez Modifier.
    4. Dans le panneau Modifier l'utilisateur, entrez le mot de passe GGADMIN, confirmez le mot de passe, puis désélectionnez Compte verrouillé.
    5. Cliquez sur Appliquer les modifications.
  3. Chargez le schéma échantillon cible et les données.
    1. Dans le menu Database Actions, sélectionnez SQL.
    2. Copiez le script de OCIGGLL_OCIGGS_SETUP_USERS_ADW.sql et collez-le dans la feuille de calcul SQL.
    3. Cliquez sur Exécuter un script. L'onglet Sortie de script affiche des messages de confirmation.
    4. Effacez la feuille de calcul SQL, puis copiez-la et collez-la à partir d'OCIGGLL_OCIGGS_SRC_MIRROR_USER_SEED_DATA.sql.
    5. Pour vérifier que les tables ont bien été créées, fermez la fenêtre SQL et rouvrez-la. Dans l'onglet Navigateur, recherchez le schéma SRC_OCIGGLL, puis sélectionnez des tables dans les listes déroulantes correspondantes.

Tâche 1 : créer les ressources OCI GoldenGate

Cet exemple de démarrage rapide nécessite des déploiements et des connexions pour la source et la cible.
  1. Créez un déploiement pour la base de données PostgreSQL source.
  2. Créer un déploiement pour l'instance Autonomous Transaction Processing cible.
  3. Créez une connexion à la base de données PostgreSQL source.
    1. Dans Type, assurez-vous de sélectionner PostgreSQL Server.
    2. Dans Nom de base de données, entrez ociggll.
    3. Dans Hôte, entrez l'adresse IP publique de l'instance de calcul sur laquelle PostgreSQL s'exécute.
    4. Dans Port, saisissez 5432.
    5. Dans Nom utilisateur, saisissez ggadmin.
    6. Dans Mot de passe, entrez un mot de passe.
    7. Dans Protocole de sécurité, sélectionnez Plain.
  4. Créer une connexion pour l'instance Autonomous Transaction Processing cible.
  5. Créez une connexion à GoldenGate, puis affectez cette connexion au déploiement PostgreSQL source.
  6. Affectez la connexion source au déploiement PostgreSQL source.
  7. Affectez la connexion cible au déploiement Oracle cible.

Tâche 2 : activer la journalisation supplémentaire

Pour activer la journalisation supplémentaire, procédez comme suit :
  1. Lancez la console de déploiement PostgreSQL GoldenGate :
    1. Sur la page Déploiements, sélectionnez le déploiement PostgreSQL pour en visualiser les détails.
    2. Sur la page des détails du déploiement PostgreSQL, cliquez sur Lancer la console.
    3. Sur la page de connexion à la console de déploiement, entrez les informations d'identification d'administrateur GoldenGate fournies à l'étape 1 de la tâche 1.
  2. Dans GoldenGate 23ai, cliquez sur Connexions de base de données dans la navigation de gauche, puis sur la base de données PostgreSQL source et sur Trandata.
  3. Sur la page TRANDATA, en regard de Informations sur TRANDATA, cliquez sur Ajouter TRANDATA (icône Plus).
  4. Dans le panneau Trandata, pour Nom de schéma, entrez src_ociggll.*, puis cliquez sur Soumettre.

    Remarques :

    Utilisez le champ de recherche pour rechercher src_ociggll et vérifier que les tables ont été ajoutées.

Tâche 3 : créer les extractions

  1. Ajoutez Change Data Capture Extract :
    1. Dans la navigation de gauche, cliquez sur Extractions,
    2. Sur la page Extractions, cliquez sur Ajouter une extraction (icône Plus), puis renseignez les champs comme suit :
      • Sur la page Informations extraction :
        1. Dans Type d'extraction, sélectionnez Extraction pour la capture de données de modification.
        2. Dans Nom de processus, entrez le nom de l'extraction, par exemple ECDC.
        3. Cliquez sur Suivant.
      • Sur la page Options d'extraction :
        1. Pour les informations d'identification source, sélectionnez Oracle GoldenGate dans la liste déroulante Domaine.
        2. Sélectionnez la base de données PostgreSQL source dans la liste déroulante Alias.
        3. Dans Nom de trace d'extraction, saisissez un nom de trace à deux caractères, tel que C1.
        4. Cliquez sur Suivant.
      • Sur la page Paramètres d'extraction, remplacez MAP *.*, TARGET *.*; par l'élément suivant :
        TABLE SRC_OCIGGLL.*;
    3. Cliquez sur Créer et exécuter.
  2. Ajoutez l'extraction du chargement initial :
    1. Sur la page Extractions, cliquez sur Ajouter une extraction, puis remplissez le formulaire Ajouter une extraction comme suit :
      • Sur la page Informations sur l'extraction :
        1. Pour le type Extraire, sélectionnez Chargement initial Extraire.
        2. Dans Nom de processus, entrez un nom, tel que EIL.
        3. Cliquez sur Suivant.
      • Sur la page Options d'extraction :
        1. Pour les informations d'identification source, sélectionnez Oracle GoldenGate dans la liste déroulante Domaine.
        2. Sélectionnez la base de données PostgreSQL dans la liste déroulante Alias.
        3. Dans Nom de trace d'extraction, saisissez un nom de trace à deux caractères, tel que I1.
        4. Cliquez sur Suivant.
      • Sur la page Paramètres d'extraction, remplacez le contenu de la zone de texte par ce qui suit :
        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;

        Remarques :

        Veillez à enlever le paramètre SOURCEDB devant USERIDALIAS avant de passer à l'étape suivante.
    2. Cliquez sur Créer et exécuter.
Vous revenez à la page Extractions, où vous pouvez observer le début de l'extraction.

Tâche 4 : créez le fichier Distribution Path pour Initial Load Extraire.

  1. Sur la page Déploiements, sélectionnez le déploiement Autonomous Database cible.
  2. Sur la page des détails du déploiement, cliquez sur Lancer la console, puis connectez-vous en tant qu'administrateur.
  3. Si vous utilisez la banque d'informations d'identification IAM, passez à l'étape Créer une Distribution Path. Si vous utilisez la banque d'informations d'identification GoldenGate, créez un utilisateur avec lequel la source GoldenGate utilise pour se connecter à la cible GoldenGate.
    1. Dans le menu de navigation, cliquez sur Administration des utilisateurs.
    2. Cliquez sur Ajouter un nouvel utilisateur (icône Plus), renseignez les champs ci-dessous, puis cliquez sur Envoyer :
      • Dans Nom utilisateur, entrez ggsnet.
      • Dans Rôle, sélectionnez Opérateur.
      • Indiquez le mot de passe à deux reprises pour vérification.
  4. Dans la console de déploiement source PostgreSQL, créez une connexion de chemin pour l'utilisateur créé à l'étape précédente.
    1. Dans le menu de navigation, cliquez sur Connexions de chemin.
    2. Cliquez sur Ajouter une connexion de chemin (icône plus), renseignez les champs comme suit, puis cliquez sur Soumettre :
      • Dans Alias d'informations d'identification, entrez dpuser.
      • Dans ID utilisateur, entrez ggsnet.
      • Dans Mot de passe, entrez le mot de passe utilisé à l'étape précédente.
  5. Créez un fichier Distribution Path.
    1. Dans la barre de menus du service, cliquez sur Distribution Service, puis sur Ajouter Distribution Path (icône Plus).
    2. Renseignez le formulaire Ajouter un chemin comme suit :
      • Sur la page Informations sur le chemin :
        1. Dans Nom de chemin, saisissez le nom de ce chemin.
        2. Cliquez sur Suivant.
      • Sur la page Options source :
        1. Laissez le champ Source Extract vide.
        2. Dans Nom de trace, saisissez le nom de trace Initial Load Extract (I1).
        3. Cliquez sur Suivant.
      • Dans la page Target Options :
        1. Dans Cible, sélectionnez Wss.
        2. Dans Hôte cible, entrez l'URL de déploiement cible, sans https :// ni barres obliques de fin.
        3. Dans Nombre de port, saisissez 443.
        4. Dans Nom de trace, entrez I1.
        5. Dans Méthode d'authentification cible, sélectionnez UserID Alias.
        6. Dans Domaine, entrez le nom de domaine créé à l'étape précédente.
        7. Dans Alias, entrez l'alias créé à l'étape précédente (dpuser).
        8. Cliquez sur Suivant.
    3. Cliquez sur Créer et exécuter.
    Vous revenez à la page Distribution Service, où vous pouvez examiner le chemin créé.
  6. Dans la console de déploiement Autonomous Database cible, vérifiez le chemin de destinataire créé suite à la création du chemin de distribution :
    1. Cliquez sur Receiver Service.
    2. Vérifiez les détails de Distribution Path.

Tâche 5 : ajouter une valeur Replicat pour Initial Load

  1. Dans le déploiement Autonomous Database cible, ajoutez une table Checkpoint.
    1. Dans le menu de navigation, cliquez sur Connexions de base de données.
    2. Sélectionnez l'instance Autonomous Database cible, puis Checkpoints.
    3. Sur la page Checkpoints, cliquez sur Ajouter un point de reprise (icône Plus).
    4. Dans le panneau Checkpoint, pour Table de schéma, entrez SRCMIRROR_OCIGGLL.CHECKTABLE.
    5. Cliquez sur Soumettre.
  2. Ajoutez Replicat.
    1. Dans le menu de navigation, cliquez sur Replicats.
    2. Sur la page Replicats, cliquez sur Ajouter Replicat (icône Plus), puis renseignez les champs Ajouter Replicat comme suit :
      • Sur la page d'informations Replicat :
        1. Pour Replicat type, sélectionnez Nonintegrated Replicat.
        2. Dans Nom de processus, entrez un nom, tel que RIL.
        3. Cliquez sur Suivant.
      • Sur la page Options Replicat :
        1. Dans Replicat Nom de trace, saisissez le nom de la trace de la tâche 2 (I1).
        2. Dans Informations d'identification cible, sélectionnez le domaine et l'alias de la connexion Autonomous Database.
        3. Dans Table de point de reprise, sélectionnez la table de point de reprise créée à l'étape 1.
        4. Cliquez sur Suivant.
      • Sur la page Fichier de paramètres, remplacez MAP *.*, TARGET *.*; par ce qui suit :
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Cliquez sur Créer et exécuter.
      Vous revenez à la page Replicats, sur laquelle vous pouvez consulter les détails Replicat.
  3. Sélectionnez Replicat (RIL) et visualisez les Détails correspondants.
  4. Cliquez sur Statistics et vérifiez le nombre d'insertions. Actualisez la page.
    • Si le nombre d'insertion ne change pas, tous les enregistrements de Initial Load ont été chargés et vous pouvez arrêter Replicat (RIL).
    • Si le nombre d'insertion continue d'augmenter, actualisez la page jusqu'à ce que tous les enregistrements Initial Load soient chargés avant de continuer.
  5. Vérifiez Initial Load.
    1. Sur la page de détails de l'instance Autonomous Database, sur la console Oracle Cloud, cliquez sur Actions de base de données, puis sur SQL.
    2. Dans l'outil SQL, entrez chacune des instructions suivantes dans la feuille de calcul et cliquez sur Run Statement :
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CITY;
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
    La sortie doit renvoyer les données chargées dans les tables de base de données cible suite à Initial Load.

Tâche 6 : créer un fichier Distribution Path pour Change Data Capture Extract

  1. Dans la console de déploiement source PostgreSQL, cliquez sur Distribution Service.
  2. Cliquez sur Ajouter Distribution Path.
  3. Renseignez le formulaire Ajouter un chemin comme suit :
    1. Sur la page Informations sur le chemin :
      1. Dans Nom de chemin, entrez un nom.
      2. Cliquez sur Suivant.
    2. Sur la page Options source :
      1. Pour Source Extract, sélectionnez Change Data Capture Extract (ECDC)).
      2. Dans Nom de trace, sélectionnez le fichier de trace Change Data Capture (C1).
      3. Cliquez sur Suivant.
    3. Dans la page Target Options :
      1. Dans Cible, sélectionnez Wss.
      2. Dans Hôte cible, entrez l'URL de la console de déploiement cible (vous pouvez le trouver sur la page de détails du déploiement, sans https :// ni barres obliques de fin).
      3. Dans Nombre de port, saisissez 443.
      4. Dans Nom de trace, entrez C1.
      5. Dans Méthode d'authentification cible, sélectionnez UserID Alias.
      6. Dans Domaine, entrez le nom du domaine.
      7. Dans Alias, saisissez l'alias.
    4. Cliquez sur Créer un chemin et exécuter.
  4. Dans la console de déploiement Autonomous Database cible, cliquez sur Service de destinataire, puis vérifiez le chemin de destinataire créé.

Tâche 7 : ajoutez Replicat pour Change Data Capture.

  1. Dans la console de déploiement Autonomous Database cible, ajoutez Replicat.
    1. Dans le menu de navigation Service d'administration, cliquez sur Replicats.
    2. Sur la page Replicats, cliquez sur Ajouter Replicat (icône Plus), puis remplissez le formulaire Ajouter Replicat comme suit :
      • Sur la page Informations sur la réplication :
        1. Pour Replicat type, sélectionnez Nonintegrated Replicat.
        2. Dans Nom de processus, entrez un nom, tel que RCDC.
        3. Cliquez sur Suivant.
      • Sur la page Options Replicat :
        1. Dans Replicat Nom de trace, saisissez le nom de la trace de la tâche 3 (C1).
        2. Dans Informations d'identification cible, sélectionnez le domaine et l'alias de la connexion Autonomous Database.
        3. Dans Table de point de reprise, sélectionnez la table de point de reprise.
      • Sur la page Paramètres Replicat, remplacez MAP *.*, TARGET *.*; par le mapping suivant :
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Cliquez sur Créer. N'exécutez pas le fichier Replicat.
  2. Sur la page Replicats, sélectionnez Replicat pour Initial Load (RIL) et consultez ses détails.
  3. Cliquez sur Statistics et vérifiez le nombre d'insertions. Actualisez la page.
    • Si le nombre d'insertion ne change pas, tous les enregistrements de Initial Load ont été chargés et vous pouvez arrêter Replicat (RIL).
    • Si le nombre d'insertion continue d'augmenter, actualisez la page jusqu'à ce que tous les enregistrements Initial Load soient chargés avant de continuer.

    Remarques :

    Si vous ne voyez aucune insertion, cliquez sur Service de mesures de performances, sélectionnez l'extraction, puis cliquez sur Statistiques de base de données.
  4. Revenez à la page Replicats, puis lancez Replicat pour Change Data Capture (RCDC).
  5. Après avoir démarré Replicat pour Change Data Capture, consultez ses détails et ses statistiques afin de connaître le nombre d'insertions.
  6. Vérifiez la réplication :
    1. Exécutez le script suivant pour effectuer des opérations d'insertion dans la base de données PostgreSQL :
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. Dans la console de déploiement PostgreSQL source, sélectionnez Change Data Capture Extract (ECDC), puis cliquez sur Statistiques. Vérifiez que src_ociggll.src_city comporte 10 insérations.

      Remarques :

      Si Extract n'a capturé aucune insertion, redémarrez ECDC Extract.
    3. Dans la console de déploiement Autonomous Database cible, sélectionnez le nom Replicat (RCDC), affichez ses détails, puis consultez les statistiques. Vérifiez que SRCMIRROR_OCIGGLL.SRC_CITY comporte 10 insérations.

Tâche 8 : surveiller les processus et en assurer la maintenance

  1. Surveillez les performances.
  2. Gérez les fichiers de trace.