Implémenter Oracle Golden Gate sur une machine virtuelle (VM) 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, vérifiez 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
Ouvrez votre interpréteur de commandes préféré sur Windows, Linux ou Azure Shell.
Connectez-vous à votre abonnement Azure avec la commande az login. Ensuite, suivez les instructions à l’écran.
$ az login
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)
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
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
Créer une règle NSG 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
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
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
Créer une adresse IP publique pour Bastion.
$ az network public-ip create \ --resource-group GoldenGateOnAzureLab \ --name ggBastionIP \ --sku Standard
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.
- Accédez à ggXServer à partir du Portail Microsoft Azure
- Rechercher la vue d’ensemble dans le volet de navigation gauche
- Sélectionnez Connecter>Bastion dans le menu en haut.
- Sélectionner l’onglet Bastion
- 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.
Téléchargez Xming X Server pour Windows sur ggXServer et installez-le avec toutes les options par défaut.
Vérifiez que vous n’avez pas sélectionné Lancer à la fin de l’installation
Lancez l’application XLAUNCH à partir du menu Démarrer.
Sélectionner Multiple Windows (Plusieurs fenêtres)
Sélectionnez Start no client (Démarrer sans client)
Sélectionnez No access control (Aucun contrôle d’accès)
Sélectionnez Allow Access (Autoriser l’accès) pour autoriser X Server via le Pare-feu Windows
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 sont utilisées.
Lorsque vous créez 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.
- Accédez à ggVM1 à partir du portail Azure.
- Accédez à Vue d’ensemble dans le panneau de gauche.
- Sélectionnez Connecter>Bastion dans le menu en haut.
- Sélectionnez l’onglet Bastion
- Sélectionnez 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.
- Exécutez le logiciel en tant qu’utilisateur
oracle
.
$ sudo su - oracle
- 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.
- Définissez les variables ORACLE_SID et LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- 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
- Démarrer l’écouteur d’Oracle
$ lsnrctl start
Se connecter à ggVM2 (machine virtuelle de réplication)
Connectez-vous à ggVM2 à l’aide de Bastion.
- Accédez à ggVM2 à partir du portail Azure.
- Accédez à Vue d’ensemble dans le panneau de gauche.
- Sélectionnez Connecter>Bastion dans le menu en haut.
- Sélectionnez l’onglet Bastion
- Sélectionnez 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)
- Basculer vers l’utilisateur
oracle
si nécessaire
$ sudo su - oracle
- 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
- Définissez les variables ORACLE_SID et ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- 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
- 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)
- Connectez-vous à
sqlplus
$ sqlplus / as sysdba
- 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;
- 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
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.
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.Copier vers ggVM1
Connectez-vous et vérifiez que vous utilisez l’abonnement approprié, comme décrit dans Se connecter à Azure
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
Pour vous connecter à votre machine virtuelle cible via le tunnel, laissez la première invite de commandes s’exécuter et ouvrez une deuxième invite de commandes. 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 commandescp
.scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Copier vers ggVM2
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
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 commandescp
.scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Installer le logiciel Golden Gate
Connectez-vous à ggVM1 à l’aide de Bastion.
- Accédez à ggVM1 à partir du portail Azure.
- Accédez à Vue d’ensemble dans le panneau de gauche
- Sélectionnez Connecter>Bastion dans le menu en haut.
- Sélectionnez l’onglet Bastion
- Sélectionnez Utiliser Bastion
Déplacez le fichier .zip vers le dossier /opt, puis modifiez le propriétaire
$ sudo su - $ mv /home/azureuser/*.zip /opt
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
Changer l’autorisation
$ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome $ exit
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.
Sélectionnez « Oracle GoldenGate for Oracle Database 21c ». Puis sélectionnez Suivant pour continuer.
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.
Dans l’écran Summary (Récapitulatif), sélectionnez Install (Installer) pour continuer.
Attendez que l'installation se termine.
Sélectionnez Close (Fermer) pour continuer.
Connectez-vous à ggVM2 à l’aide de Bastion.
- Accédez à ggVM2 à partir du portail Azure.
- Accédez à Vue d’ensemble dans le panneau de gauche
- Sélectionnez Connecter>Bastion dans le menu en haut.
- Sélectionnez l’onglet Bastion
- Sélectionnez Utiliser Bastion
Répétez les étapes 2 à 10 ci-dessus sur ggVM2
Configurer le service sur ggVM1 (machine virtuelle principale)
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 toucheEsc
,: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) ) )
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;
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;
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
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;
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
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 toucheEsc
,: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)
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 toucheEsc
,: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) ) )
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;
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;
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 toucheEsc
,: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.*;
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 toucheEsc
,: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é, 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
Se connecter à la base de données principale sur ggVM1
$ sqlplus test/test@pdb1
Sélectionner les enregistrements existants dans le tableau
SQL> select * from TCUSTORD;
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;
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.
Se connecter à la base de données principale sur ggVM2
$ sqlplus test/test@pdb1
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