Implémenter Oracle Golden Gate sur une machine virtuelle Azure Linux

S’applique à : ✔️ Machines virtuelles Linux

L’interface de ligne de commande (CLI) Azure permet de créer et gérer des ressources Azure à partir de la ligne de commande ou dans les scripts. Ce guide explique comment utiliser l’interface CLI Azure pour déployer une base de données Oracle 19c depuis une image de la galerie de la Place de marché Azure.

Ce document vous explique pas à pas comment créer, installer et configurer Oracle Golden Gate sur une machine virtuelle Azure. Dans ce tutoriel, deux machines virtuelles sont configurées dans un groupe à haute disponibilité dans une seule région. Le même tutoriel peut être utilisé pour configurer OracleGolden Gate pour des machines virtuelles dans différentes zones de disponibilité dans une même région Azure ou pour la configuration de machines virtuelles dans deux régions différentes.

Avant de commencer, assurez-vous que l’interface de ligne de commande Azure est installée. Pour plus d’informations, consultez le Guide d’installation de l’interface de ligne de commande Azure.

Introduction

GoldenGate est un logiciel de réplication logique qui permet la réplication, le filtrage et la transformation en temps réel des données d’une base de données source vers une base de données cible. Cette fonctionnalité garantit que les modifications apportées à la base de données source sont répliquées en temps réel, ce qui permet à la base de données cible d’être à jour avec les données les plus récentes.

Utilisez GoldenGate principalement pour des cas de réplication hétérogènes, tels que la réplication de données de différentes bases de données sources vers une base de données unique. Par exemple, un entrepôt de données. Vous pouvez également l’utiliser pour les migrations multi-plateformes, telles que SPARC et AIX vers des environnements Linux x86, ainsi que pour des scénarios avancés de haute disponibilité et de scalabilité.

En outre, GoldenGate convient également pour les migrations avec temps d’arrêt quasi nul, car il prend en charge les migrations en ligne avec une interruption minimale des systèmes sources.

Bien que GoldenGate facilite la réplication bidirectionnelle, l’application doit être configurée en conséquence. En outre, le logiciel permet le filtrage et la transformation des données pour répondre à des exigences métier spécifiques, ce qui permet aux utilisateurs d’utiliser les données répliquées à diverses fins.

Préparer l’environnement

Pour installer Oracle Golden Gate, vous devez créer deux machines virtuelles Azure sur le même groupe à haute disponibilité. L’image Place de marché que vous utilisez pour créer la machine virtuelle est Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.

Vous devez également savoir utiliser l’éditeur Unix vi et avoir une connaissance élémentaire de X Server.

Le tableau suivant est un résumé de la configuration de l’environnement :

Site principal Site de réplication
Version d’Oracle Oracle Database 19.3.1.0 Oracle Database 19.3.1.0
Nom de la machine ggVM1 ggVM2
Système d'exploitation Oracle Linux 7.x Oracle Linux 7.x
SID Oracle CDB1 CDB1
Schéma de réplication TEST TEST
Propriétaire Golden Gate/réplication C##GGADMIN REPUSER
Processus Golden Gate EXTORA REPORA

Connexion à Azure

  1. Ouvrez votre interpréteur de commandes préféré sur Windows, Linux ou Azure Shell.

  2. Connectez-vous à votre abonnement Azure avec la commande az login. Ensuite, suivez les instructions à l’écran.

    $ az login
    
  3. Vérifiez que vous êtes connecté à l’abonnement approprié en vérifiant le nom et/ou l’ID de l’abonnement.

    $ az account show
    
    {
      "environmentName": "XXXXX",
      "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "id": "<SUBSCRIPTION_ID>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<SUBSCRIPTION_NAME>",
      "state": "Enabled",
      "tenantId": XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "user": {
        "cloudShellID": true,
        "name": "aaaaa@bbbbb.com",
        "type": "user"
      }
    }
    

Générer des clés d’authentification

Nous utilisons l’authentification basée sur les fichiers de clé avec ssh pour nous connecter à la machine virtuelle Oracle Database. Assurez-vous que vos fichiers de clés privé (nommé id_rsa) et public (nommé id_rsa.pub) sont créés sur votre interpréteur de commandes.

L’emplacement des fichiers de clés dépend de votre système source.

Windows : %USERPROFILE%.ssh Linux: ~/.ssh

S’ils n’existent pas, vous pouvez créer une paire de fichiers clés.

ssh-keygen -m PEM -t rsa -b 4096

Le répertoire .ssh et les fichiers de clés sont créés. Pour plus d’informations, consultez Créer et gérer des clés SSH pour l’authentification sur une machine virtuelle Linux dans Azure.

Créer un groupe de ressources

Pour créer un groupe de ressources, utilisez la commande az group create. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.

$ az group create --name GoldenGateOnAzureLab --location westus

Créer et configurer un réseau

Création d’un réseau virtuel

Utilisez la commande suivante pour créer le réseau virtuel qui héberge les ressources que nous créons dans ce labo.

$ az network vnet create \
  --name ggVnet \
  --resource-group GoldenGateOnAzureLab \
  --address-prefixes "10.0.0.0/16" \
  --subnet-name ggSubnet1 \
  --subnet-prefixes "10.0.0.0/24"

Créer un groupe de sécurité réseau (NSG)

  1. Créez un groupe de sécurité réseau (NSG) pour verrouiller votre réseau virtuel.

    $ az network nsg create \
      --resource-group GoldenGateOnAzureLab \
      --name ggVnetNSG
    
  2. Créez une règle de groupe de sécurité réseau pour autoriser la communication au sein du réseau virtuel.

    $ az network nsg rule create  --resource-group GoldenGateOnAzureLab --nsg-name ggVnetNSG \
        --name ggAllowVnet \
        --protocol '*' --direction inbound --priority 3400 \
        --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
        --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
    
  3. Créer une règle de groupe de sécurité réseau pour refuser toutes les connexions entrantes

    $ az network nsg rule create \
      --resource-group GoldenGateOnAzureLab \
      --nsg-name ggVnetNSG \
      --name ggDenyAllInBound \
      --protocol '*' --direction inbound --priority 3500 \
      --source-address-prefix '*' --source-port-range '*' \
      --destination-address-prefix '*' --destination-port-range '*' --access deny
    
  4. Attribuez un groupe de sécurité réseau au sous-réseau où nous hébergeons nos serveurs.

    $ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
    

Créer un réseau Bastion

  1. Créez un sous-réseau Bastion. Le nom du sous-réseau doit être AzureBastionSubnet

    $ az network vnet subnet create  \
        --resource-group GoldenGateOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name ggVnet \
        --address-prefixes 10.0.1.0/24
    
  2. Créer une adresse IP publique pour Bastion

    $ az network public-ip create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastionIP \
        --sku Standard
    
  3. Créez une ressource Azure Bastion. Le déploiement de la ressource nécessite environ 10 minutes.

    $ az network bastion create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastion \
        --public-ip-address ggBastionIP \
        --vnet-name ggVnet \
        --sku Standard \
        --enable-tunneling \
        --enable-ip-connect true
    

Créer une machine virtuelle X Server (ggXServer)

Remplacez votre mot de passe et exécutez la commande suivante pour créer une machine virtuelle de station de travail Windows sur laquelle nous déployons X Server.

$ az vm create \
     --resource-group GoldenGateOnAzureLab \
     --name ggXServer \
     --image MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207 \
     --size Standard_DS1_v2  \
     --vnet-name ggVnet \
     --subnet ggSubnet1 \
     --public-ip-sku Standard \
     --nsg "" \
     --data-disk-delete-option Delete \
     --os-disk-delete-option Delete \
     --nic-delete-option Delete \
     --admin-username azureuser \
     --admin-password <ENTER_YOUR_PASSWORD_HERE>

Se connecter à ggXServer via Bastion

Connectez-vous à ggXServer à l’aide de Bastion.

  1. Accédez à ggXServer à partir du portail Azure.
  2. Accédez à Vue d’ensemble dans le panneau de gauche
  3. Sélectionnez Connecter>Bastion dans le menu en haut.
  4. Sélectionner l’onglet Bastion
  5. Cliquez sur Utiliser Bastion.

Préparer ggXServer pour exécuter X Server

X Server est requis pour les étapes ultérieures de ce labo. Effectuez les étapes suivantes pour installer et démarrer X Server.

  1. Téléchargez Xming X Server pour Windows sur ggXServer et installez-le avec toutes les options par défaut.

  2. Vérifiez que vous n’avez pas sélectionné Lancer à la fin de l’installation

  3. Lancez l’application XLAUNCH à partir du menu Démarrer.

  4. Sélectionner Multiple Windows (Plusieurs fenêtres)

    Capture d’écran de l’étape 1 de l’Assistant XLaunch.

  5. Sélectionnez Start no client (Démarrer sans client)

    Capture d’écran de l’étape 2 de l’Assistant XLaunch.

  6. Sélectionnez No access control (Aucun contrôle d’accès)

    Capture d’écran de l’étape 3 de l’Assistant XLaunch.

  7. Sélectionnez Allow Access (Autoriser l’accès) pour autoriser X Server via le Pare-feu Windows

    Capture d’écran de l’étape 4 de l’Assistant XLaunch.

Si vous redémarrez votre machine virtuelle ggXServer, suivez les étapes 2 à 6 ci-dessus pour redémarrer l’application X Server.

Créer des machines virtuelles Oracle Database

Pour ce labo, nous créons des machines virtuelles ggVM1 et ggVM2 à partir d’une image Oracle Database 19c. Cette commande crée également des clés SSH si elles n’existent pas encore à un emplacement de clé par défaut. Pour utiliser un ensemble spécifique de clés, utilisez l’option --ssh-key-value. Si vous avez déjà créé vos clés SSH dans la section Générer des clés d’authentification, ces clés seront utilisées.

Lors de la création d’une machine virtuelle, le paramètre size indique la taille et le type de machine virtuelle créée. Selon la région Azure que vous avez sélectionnée pour créer une machine virtuelle et les paramètres de votre abonnement, certaines tailles et types de machines virtuelles peuvent ne pas être disponibles. L’exemple suivant utilise la taille minimale requise pour ce labo Standard_DS1_v2. Si vous souhaitez modifier les spécifications de la machine virtuelle, sélectionnez l’une des tailles disponibles dans Tailles de machine virtuelle Azure. À des fins de test, vous pouvez choisir parmi les types de machines virtuelles à usage général (série D). Pour les déploiements de production ou pilotes, la mémoire optimisée (séries E et M) est plus appropriée.

Créer ggVM1 (machine virtuelle principale)

$ az vm create \
     --resource-group GoldenGateOnAzureLab \
     --name ggVM1 \
     --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
     --size Standard_DS1_v2 \
     --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 1

Créer ggVM2 (machine virtuelle de réplication)

$ az vm create \
    --resource-group GoldenGateOnAzureLab \
    --name ggVM2 \
    --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
    --size Standard_DS1_v2  \
    --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 2

Se connecter à ggVM1 (machine virtuelle principale)

Connectez-vous à ggVM1 à l’aide de Bastion.

  1. Accédez à ggVM1 à partir du portail Azure.
  2. Accédez à Vue d’ensemble dans le panneau de gauche.
  3. Sélectionnez Connecter>Bastion dans le menu en haut.
  4. Sélectionner l’onglet Bastion
  5. Cliquez sur Utiliser Bastion.

Créer la base de données sur ggVM1 (machine virtuelle principale)

Le logiciel Oracle est déjà installé sur l’image Place de marché. L’étape suivante consiste donc à créer la base de données.

  1. Exécutez le logiciel en tant qu’utilisateur oracle.
$ sudo su - oracle
  1. Créez la base de données à l’aide de la commande suivante. Cette commande peut prendre entre 30 et 40 minutes.
$ dbca -silent \
   -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbname cdb1 \
   -sid cdb1 \
   -responseFile NO_VALUE \
   -characterSet AL32UTF8 \
   -sysPassword OraPasswd1 \
   -systemPassword OraPasswd1 \
   -createAsContainerDatabase true \
   -numberOfPDBs 1 \
   -pdbName pdb1 \
   -pdbAdminPassword OraPasswd1 \
   -databaseType MULTIPURPOSE \
   -automaticMemoryManagement false \
   -storageType FS \
   -datafileDestination "/u01/app/oracle/oradata/" \
   -ignorePreReqs

Les résultats doivent ressembler à la réponse suivante.

Copying database files
1% complete
2% complete
8% complete
13% complete
19% complete
27% complete
Creating and starting Oracle instance
29% complete
32% complete
33% complete
34% complete
38% complete
42% complete
43% complete
45% complete
Completing Database Creation
48% complete
51% complete
53% complete
62% complete
70% complete
72% complete
Creating Pluggable Databases
78% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for more details.
  1. Définissez les variables ORACLE_SID et LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Exécutez le code ci-dessous pour ajouter ORACLE_SID et LD_LIBRARY_PATH au fichier .bashrc, afin que ces paramètres soient enregistrés pour les prochaines connexions. La variable ORACLE_HOME doit déjà être définie dans le fichier .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Démarrer l’écouteur d’Oracle
$ lsnrctl start

Se connecter à ggVM2 (machine virtuelle de réplication)

Connectez-vous à ggVM2 à l’aide de Bastion.

  1. Accédez à ggVM2 à partir du portail Azure.
  2. Accédez à Vue d’ensemble dans le panneau de gauche.
  3. Sélectionnez Connecter>Bastion dans le menu en haut.
  4. Sélectionner l’onglet Bastion
  5. Cliquez sur Utiliser Bastion.

Ouvrir les ports de pare-feu pour ggVM1

Configurez le pare-feu pour autoriser les connexions à partir de ggVM1. La commande suivante est exécutée sur ggVM2.

$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit

Créer la base de données sur ggVM2 (machine virtuelle de réplication)

  1. Basculer vers l’utilisateur oracle si nécessaire
$ sudo su - oracle
  1. Création de la base de données
$ dbca -silent \
   -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbname cdb1 \
   -sid cdb1 \
   -responseFile NO_VALUE \
   -characterSet AL32UTF8 \
   -sysPassword OraPasswd1 \
   -systemPassword OraPasswd1 \
   -createAsContainerDatabase true \
   -numberOfPDBs 1 \
   -pdbName pdb1 \
   -pdbAdminPassword OraPasswd1 \
   -databaseType MULTIPURPOSE \
   -automaticMemoryManagement false \
   -storageType FS \
   -datafileDestination "/u01/app/oracle/oradata/" \
   -ignorePreReqs
  1. Définissez les variables ORACLE_SID et ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Exécutez le code ci-dessous pour ajouter ORACLE_SID et LD_LIBRARY_PATH au fichier .bashrc, afin que ces paramètres soient enregistrés pour les prochaines connexions. La variable ORACLE_HOME doit déjà être définie dans le fichier .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Démarrer l’écouteur d’Oracle
$ lsnrctl start

Configurer Golden Gate sur ggVM1

Suivez les étapes de cette section pour installer et configurer Golden Gate.

Activer le mode de journalisation d’archive sur ggVM1 (machine virtuelle principale)

  1. Connectez-vous à sqlplus
$ sqlplus / as sysdba
  1. Activer la journalisation d’archive
SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
  1. Activez la journalisation forcée et assurez-vous qu’au moins un fichier journal est présent.
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER SYSTEM set enable_goldengate_replication=true;
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN;
SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SESSION SET CONTAINER=PDB1;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> EXIT;

Télécharger le logiciel Golden Gate

  1. Téléchargez le fichier 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip à partir de la page de téléchargement Oracle Golden Gate. Sous le titre de téléchargement Oracle GoldenGate 21.3.0.0.0 pour Oracle sur Linux x86-64.

  2. Une fois que vous avez téléchargé les fichiers .zip sur votre ordinateur client, vous pouvez utiliser SCP (Secure Copy Protocol) pour les copier sur vos machines virtuelles (ggVM1 et ggVM2). Assurez-vous que la commande scp pointe vers le chemin d’accès correct du fichier .zip.

  3. Copier vers ggVM1

    1. Connectez-vous et vérifiez que vous utilisez l’abonnement approprié, comme décrit dans Se connecter à Azure

    2. Ouvrez le tunnel vers votre machine virtuelle cible à l’aide de la commande PowerShell

      $ggVM1id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM1 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM1id --resource-port 22 --port 57500
      
    3. Laissez la première invite de commandes s’exécuter et ouvrez une deuxième invite de commandes pour vous connecter à votre machine virtuelle cible via le tunnel. Dans cette deuxième fenêtre d’invite de commandes, vous pouvez charger des fichiers à partir de votre machine locale vers votre machine virtuelle cible à l’aide de la commande suivante. Le fichier de clés approprié id_rsa pour accéder à la machine virtuelle doit résider dans le répertoire .ssh ou vous pouvez pointer vers un autre fichier de clé à l’aide du paramètre -i pour la commande scp.

       scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      
  4. Copier vers ggVM2

    1. Ouvrez le tunnel vers votre machine virtuelle cible à l’aide de la commande PowerShell

      $ggVM2id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM2 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM2id --resource-port 22 --port 57501
      
    2. Laissez la première invite de commandes s’exécuter et ouvrez une deuxième invite de commandes pour vous connecter à votre machine virtuelle cible via le tunnel. Dans cette deuxième fenêtre d’invite de commandes, vous pouvez charger des fichiers à partir de votre machine locale vers votre machine virtuelle cible à l’aide de la commande suivante. Le fichier de clés approprié id_rsa pour accéder à la machine virtuelle doit résider dans le répertoire .ssh ou vous pouvez pointer vers un autre fichier de clé à l’aide du paramètre -i pour la commande scp.

      scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      

Installer le logiciel Golden Gate

  1. Connectez-vous à ggVM1 à l’aide de Bastion.

    1. Accédez à ggVM1 à partir du portail Azure.
    2. Accédez à Vue d’ensemble dans le panneau de gauche
    3. Sélectionnez Connecter>Bastion dans le menu en haut.
    4. Sélectionner l’onglet Bastion
    5. Cliquez sur Utiliser Bastion.
  2. Déplacez le fichier .zip vers le dossier /opt, puis modifiez le propriétaire

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    
  3. Décompressez les fichiers (installez l’utilitaire unzip de Linux s’il n’est pas déjà installé)

    $ yum install unzip
    $ cd /opt
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Changer l’autorisation

    $ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome
    $ exit
    
  5. Démarrer le programme d’installation de Golden Gate

    $ sudo su - oracle
    $ export DISPLAY=10.0.0.4:0.0
    $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1
    $ ./runInstaller
    

    Le programme d’installation s’ouvre sur ggXServer.

  6. Sélectionnez « Oracle GoldenGate for Oracle Database 21c ». Puis sélectionnez Suivant pour continuer.

    Capture d’écran de l’étape 1 de l’Assistant d’installation de Golden Gate.

  7. Définissez l’emplacement du logiciel sur /u01/app/oracle/product/19.0.0/oggcore_1, assurez-vous que la case Start Manager (Gestionnaire de démarrage) est cochée et sélectionnez Next (Suivant) pour continuer.

    Capture d’écran de l’étape 2 de l’Assistant d’installation de Golden Gate.

  8. Dans l’écran Summary (Récapitulatif), sélectionnez Install (Installer) pour continuer.

    Capture d’écran de l’étape 3 de l’Assistant d’installation de Golden Gate.

  9. Attendez que l'installation se termine.

    Capture d’écran de l’étape 4 de l’Assistant d’installation de Golden Gate.

  10. Sélectionnez Close (Fermer) pour continuer.

Capture d’écran de l’étape 5 de l’Assistant d’installation de Golden Gate.

  1. Connectez-vous à ggVM2 à l’aide de Bastion.

    1. Accédez à ggVM2 à partir du portail Azure.
    2. Accédez à Vue d’ensemble dans le panneau de gauche
    3. Sélectionnez Connecter>Bastion dans le menu en haut.
    4. Sélectionner l’onglet Bastion
    5. Cliquez sur Utiliser Bastion.
  2. Répétez les étapes 2 à 10 ci-dessus sur ggVM2

Configurer le service sur ggVM1 (machine virtuelle principale)

  1. Créez ou mettez à jour le fichier tnsnames.ora.

    $ sudo su - oracle
    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    Lorsque l’éditeur vi s’ouvre, vous devez appuyer sur i pour basculer vers le mode d’insertion, puis copier-coller le contenu du fichier et appuyer sur la touche Esc, :wq! pour enregistrer le fichier.

    cdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=cdb1)
       )
     )
    
    pdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=pdb1)
       )
     )
    
  2. Créez les comptes propriétaire et utilisateur de Golden Gate.

    Notes

    Le compte propriétaire doit avoir le préfixe C##.

    $ sqlplus / as sysdba
    
     SQL> CREATE USER C##GGADMIN identified by ggadmin;
     SQL> EXEC dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL');
     SQL> GRANT DBA to C##GGADMIN container=all;
     SQL> connect C##GGADMIN/ggadmin
     SQL> ALTER SESSION SET CONTAINER=PDB1;
     SQL> EXIT;
    
  3. Créer le compte d’utilisateur de test de Golden Gate

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> connect test/test@pdb1
    SQL> @demo_ora_create
    SQL> @demo_ora_insert
    SQL> EXIT;
    
  4. Configurez le fichier de paramètres d’extraction.

    Démarrez l’interface de ligne de commande Golden Gate (ggsci) :

    $ sudo su - oracle
    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> DBLOGIN USERID test@pdb1, PASSWORD test
    Successfully logged into database  pdb1
    GGSCI>  ADD SCHEMATRANDATA pdb1.test
    2017-05-23 15:44:25  INFO    OGG-01788  SCHEMATRANDATA has been added on schema test.
    2017-05-23 15:44:25  INFO    OGG-01976  SCHEMATRANDATA for scheduling columns has been added on schema test.
    
    GGSCI> EDIT PARAMS EXTORA
    
  5. Appuyez sur la touche i pour basculer vers le mode d’insertion et copier-coller (cliquez avec le bouton droit sur la fenêtre SSH) en suivant le fichier de paramètres EXTRACT. Appuyez sur la touche Échap, :wq! pour enregistrer le fichier.

    EXTRACT EXTORA
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.5, MGRPORT 7809
    RMTTRAIL ./dirdat/rt
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    TABLE pdb1.test.TCUSTMER;
    TABLE pdb1.test.TCUSTORD;
    
  6. Extrait de registre--extrait intégré.

    GGSCI> dblogin userid C##GGADMIN@cdb1, password ggadmin
    Successfully logged into database CDB$ROOT.
    
    GGSCI> REGISTER EXTRACT EXTORA DATABASE CONTAINER(pdb1)
    
    2023-03-03 19:37:01  INFO    OGG-02003  Extract group EXTORA successfully registered with database at SCN 2142014.
    
    GGSCI> exit
    
  7. Configurer des points de contrôle d’extraction et démarrer l’extraction en temps réel

    $ ./ggsci
    
    GGSCI>  ADD EXTRACT EXTORA, INTEGRATED TRANLOG, BEGIN NOW
    EXTRACT (Integrated) added.
    
    GGSCI>  ADD RMTTRAIL ./dirdat/rt, EXTRACT EXTORA, MEGABYTES 10
    RMTTRAIL added.
    
    GGSCI>  START EXTRACT EXTORA
    
    Sending START request to MANAGER ...
    EXTRACT EXTORA starting
    
    GGSCI > INFO ALL
    
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    
    MANAGER     RUNNING
    EXTRACT     RUNNING     EXTORA      00:00:11      00:00:04
    
    GGSCI > EXIT
    

    Dans cette étape, vous recherchez le SCN de départ, qui est utilisé ultérieurement, dans une autre section.

    $ sqlplus / as sysdba
    
    SQL> alter session set container = pdb1;
    SQL> SELECT current_scn from v$database;
    CURRENT_SCN
    -----------
       2172191
    SQL> EXIT;
    
    $ ./ggsci
    GGSCI> EDIT PARAMS INITEXT
    

    Lorsque l’éditeur vi s’ouvre, vous devez appuyer sur i pour basculer vers le mode d’insertion, puis copier-coller le contenu du fichier et appuyer sur la touche Esc, :wq! pour enregistrer le fichier.

    EXTRACT INITEXT
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.6, MGRPORT 7809
    RMTTASK REPLICAT, GROUP INITREP
    TABLE pdb1.test.*, SQLPREDICATE 'AS OF SCN 2172191';
    
    GGSCI> ADD EXTRACT INITEXT, SOURCEISTABLE
    Extract added.
    GGSCI> EXIT
    

Configurer le service sur ggVM2 (machine virtuelle de réplication)

  1. Créez ou mettez à jour le fichier tnsnames.ora.

    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    Lorsque l’éditeur vi s’ouvre, vous devez appuyer sur i pour basculer vers le mode d’insertion, puis copier-coller le contenu du fichier et appuyer sur la touche Esc, :wq! pour enregistrer le fichier.

    cdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=cdb1)
       )
     )
    
    pdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=pdb1)
       )
     )
    
  2. Créez un compte de réplication.

    $ sqlplus / as sysdba
    
    SQL> ALTER SYSTEM set enable_goldengate_replication=true;
    SQL> ALTER SESSION SET CONTAINER = pdb1;
    SQL> CREATE USER REPUSER IDENTIFIED BY REP_PASS CONTAINER=CURRENT;
    SQL> GRANT DBA TO REPUSER;
    SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('REPUSER',CONTAINER=>'PDB1');
    SQL> CONNECT REPUSER/REP_PASS@PDB1
    SQL> EXIT;
    
  3. Créez un compte d’utilisateur de test de Golden Gate.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> CONNECT test/test@pdb1
    SQL> @demo_ora_create
    SQL> EXIT;
    
  4. Fichier de paramètres REPLICAT pour répliquer les modifications.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> EDIT PARAMS REPORA
    

    Lorsque l’éditeur vi s’ouvre, vous devez appuyer sur i pour basculer vers le mode d’insertion, puis copier-coller le contenu du fichier et appuyer sur la touche Esc, :wq! pour enregistrer le fichier.

    REPLICAT REPORA
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/repora.dsc, PURGE, MEGABYTES 100
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
  5. Configurez un point de contrôle de réplication.

    GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt
    GGSCI> EDIT PARAMS INITREP
    

    Lorsque l’éditeur vi s’ouvre, vous devez appuyer sur i pour basculer vers le mode d’insertion, puis copier-coller le contenu du fichier et appuyer sur la touche Esc, :wq! pour enregistrer le fichier.

    REPLICAT INITREP
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/tcustmer.dsc, APPEND
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
    GGSCI> ADD REPLICAT INITREP, SPECIALRUN
    GGSCI> EXIT
    

Configurer la réplication (ggVM1 et ggVM2)

1. Configurer la réplication sur ggVM2 (machine virtuelle de réplication)

Connectez-vous à ggsci.

$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR

Mettez le fichier à jour avec le contenu suivant.

PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW

Redémarrez le service Manager.

GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT

2. Configurer la réplication sur ggVM1 (machine virtuelle principale)

Démarrez la charge initiale et recherchez les erreurs.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT

3. Configurer la réplication sur ggVM2 (machine virtuelle de réplication)

Remplacez le numéro SCN par le numéro que vous avez obtenu précédemment.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191

La réplication a commencé et vous pouvez la tester en insérant de nouveaux enregistrements dans les tables TEST.

Afficher l’état du travail et la résolution des problèmes

Afficher les rapports

  • Pour afficher des rapports sur ggVM1, exécutez les commandes suivantes.

    GGSCI> VIEW REPORT EXTORA
    
  • Pour afficher des rapports sur ggVM2, exécutez les commandes suivantes.

    GGSCI> VIEW REPORT REPORA
    

Afficher l’état et l’historique

  • Pour afficher l’état et l’historique sur ggVM1, exécutez les commandes suivantes.

    GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin
    GGSCI> INFO EXTRACT EXTORA, DETAIL
    
  • Pour afficher l’état et l’historique sur ggVM2, exécutez les commandes suivantes.

    GGSCI> DBLOGIN USERID REPUSER@PDB1 PASSWORD REP_PASS
    GGSCI> INFO REP REPORA, DETAIL
    
    $ sqlplus test/test@pdb1
    
    SQL> select * from TCUSTMER;
    SQL> select * from TCUSTORD;
    

Observer la réplication des données

  1. Se connecter à la base de données principale sur ggVM1

    $ sqlplus test/test@pdb1
    
  2. Sélectionner les enregistrements existants dans le tableau

    SQL> select * from TCUSTORD;
    
  3. Créer un enregistrement test

    SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102);
    SQL> COMMIT;
    SQL> EXIT;
    
  4. Observez la transaction récupérée par Golden Gate (notez la valeur Total inserts (Nombre total d’insertions))

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> STATS EXTORA
  Sending STATS request to Extract group EXTORA ...

  Start of statistics at 2023-03-24 19:41:54.

  DDL replication statistics (for all trails):

  *** Total statistics since extract started     ***
  Operations                           0.00
  Mapped operations                    0.00
  Unmapped operations                    0.00
  Other operations                    0.00
  Excluded operations                    0.00

  Output to ./dirdat/rt:

  Extracting from PDB1.TEST.TCUSTORD to PDB1.TEST.TCUSTORD:

  *** Total statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Daily statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Hourly statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Latest statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  End of statistics.
  1. Se connecter à la base de données principale sur ggVM2

    $ sqlplus test/test@pdb1
    
  2. Vérifier que le nouvel enregistrement est répliqué

    SQL> select * from TCUSTORD;
    
     CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
     ---- --------- -------- ---------- ------------- -------------- --------------
     OLLJ 11-APR-99 CYCLE       400   16000      1    102
     WILL 30-SEP-94 CAR       144   17520      3    100
     JANE 11-NOV-95 PLANE       256  133300      1    100
    

L’installation et la configuration de Golden Gate sur Oracle Linux sont maintenant terminées.

Supprimer la machine virtuelle ggXServer

La machine virtuelle ggXServer est utilisée uniquement pendant l’installation. Vous pouvez la supprimer en toute sécurité après avoir terminé ce document de labo, mais conservez votre configuration GoldenGate sur le labo Azure intacte.

$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes

$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP

Supprimer la configuration Golden Gate sur le labo Azure

La commande suivante permet de supprimer le groupe de ressources, la machine virtuelle et toutes les ressources associées pour ce labo lorsque vous n’en avez plus besoin.

$ az group delete --name GoldenGateOnAzureLab

Étapes suivantes

Didacticiel de création de machines virtuelles hautement disponibles

Découvrir des exemples de commande de déploiement de machine virtuelle