Oracle Golden Gate implementeren op een virtuele Azure Linux-machine

Van toepassing op: ✔️ Linux-VM's

De Azure CLI wordt gebruikt voor het maken en beheren van Azure-resources vanaf de opdrachtregel of in scripts. In deze handleiding wordt beschreven hoe u de Azure CLI gebruikt om een Oracle 19c-database te implementeren vanuit de installatiekopieën van de Azure Marketplace galerie.

In dit document wordt stapsgewijs beschreven hoe u Oracle Golden Gate maakt, installeert en configureert op een Azure-VM. In deze zelfstudie worden twee virtuele machines ingesteld in een beschikbaarheidsset in één regio. Dezelfde zelfstudie kan worden gebruikt voor het instellen van OracleGolden Gate voor VM's in verschillende Beschikbaarheidszones in één Azure-regio of voor VM's die zijn ingesteld in twee verschillende regio's.

Voordat u begint, moet u controleren of de Azure-CLI is geïnstalleerd. Zie voor meer informatie de Installatiehandleiding van de Azure CLI.

Introductie

GoldenGate is een logische replicatiesoftware die realtime replicatie, filtering en transformatie van gegevens van een brondatabase naar een doeldatabase mogelijk maakt. Deze functie zorgt ervoor dat wijzigingen in de brondatabase in realtime worden gerepliceerd, waardoor de doeldatabase kan worden bijgewerkt met de meest recente gegevens.

Gebruik GoldenGate voornamelijk voor heterogene replicatiegevallen, zoals het repliceren van gegevens van verschillende brondatabases naar één database. Bijvoorbeeld een datawarehouse. U kunt het ook gebruiken voor platformoverschrijdende migraties, zoals van SPARC en AIX naar Linux x86-omgevingen, en geavanceerde scenario's voor hoge beschikbaarheid en schaalbaarheid.

Daarnaast is GoldenGate ook geschikt voor migraties met bijna nul downtime, omdat het ondersteuning biedt voor onlinemigraties met minimale onderbreking van de bronsystemen.

Hoewel GoldenGate bidirectionele replicatie mogelijk maakt, moet de toepassing dienovereenkomstig worden geconfigureerd. Bovendien kunnen met de software gegevens worden gefilterd en getransformeerd om te voldoen aan specifieke bedrijfsvereisten, zodat gebruikers de gerepliceerde gegevens voor verschillende doeleinden kunnen gebruiken.

De omgeving voorbereiden

Als u de Oracle Golden Gate-installatie wilt uitvoeren, moet u twee Azure-VM's op dezelfde beschikbaarheidsset maken. De Marketplace-installatiekopieën die u gebruikt om de VM's te maken, is Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.

U moet ook bekend zijn met unix-editor vi en basiskennis van X Server hebben.

De volgende tabel bevat een overzicht van de omgevingsconfiguratie:

Primaire site Site repliceren
Oracle-release Oracle Database 19.3.1.0 Oracle Database 19.3.1.0
Computernaam ggVM1 ggVM2
Besturingssysteem Oracle Linux 7.x Oracle Linux 7.x
Oracle SID CDB1 CDB1
Replicatieschema TEST TEST
Golden Gate eigenaar/repliceren C##GGADMIN REPUSER
Golden Gate-proces EXTORA REPORA

Aanmelden bij Azure

  1. Open de shell van uw voorkeur in Windows, Linux of Azure Shell.

  2. Meld u aan bij uw Azure-abonnement met de opdracht az login . Volg vervolgens de aanwijzingen op het scherm.

    $ az login
    
  3. Zorg ervoor dat u bent verbonden met het juiste abonnement door de naam en/of id van het abonnement te verifiëren.

    $ 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"
      }
    }
    

Verificatiesleutels genereren

We gebruiken verificatie op basis van sleutelbestanden met ssh om verbinding te maken met de Oracle Database-VM. Zorg ervoor dat uw persoonlijke (met naam id_rsa) en openbare (benoemde id_rsa.pub) sleutelbestanden zijn gemaakt in uw shell.

De locatie van de sleutelbestanden is afhankelijk van uw bronsysteem.

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

Als ze niet bestaan, kunt u een nieuw sleutelbestandpaar maken.

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

De .ssh-map en de sleutelbestanden worden gemaakt. Raadpleeg SSH-sleutels maken en beheren voor verificatie bij een Linux-VM in Azure voor meer informatie

Een resourcegroep maken

Gebruik de opdracht az group create om een resourcegroep te maken. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.

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

Netwerk maken en configureren

Virtueel netwerk maken

Gebruik de volgende opdracht om het virtuele netwerk te maken dat als host fungeert voor resources die we in dit lab maken.

$ 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"

Een netwerkbeveiligingsgroep (NSG) maken

  1. Maak een netwerkbeveiligingsgroep (NSG) om uw virtuele netwerk te vergrendelen.

    $ az network nsg create \
      --resource-group GoldenGateOnAzureLab \
      --name ggVnetNSG
    
  2. Maak een NSG-regel om communicatie binnen een virtueel netwerk toe te staan.

    $ 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. NSG-regel maken om alle binnenkomende verbindingen te weigeren

    $ 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. Wijs NSG toe aan het subnet waar we onze servers hosten.

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

Bastionnetwerk maken

  1. Bastion-subnet maken. De naam van het subnet moet AzureBastionSubnet zijn

    $ az network vnet subnet create  \
        --resource-group GoldenGateOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name ggVnet \
        --address-prefixes 10.0.1.0/24
    
  2. Een openbaar IP-adres maken voor Bastion

    $ az network public-ip create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastionIP \
        --sku Standard
    
  3. Azure Bastion-resource maken. Het duurt ongeveer 10 minuten voordat de resource is geïmplementeerd.

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

X Server-VM maken (ggXServer)

Vervang uw wachtwoord en voer de volgende opdracht uit om een Windows-werkstation-VM te maken waarop X Server wordt geïmplementeerd.

$ 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>

Verbinding maken met ggXServer via Bastion

Maak verbinding met ggXServer met behulp van Bastion.

  1. Navigeer vanuit Azure Portal naar ggXServer.
  2. Ga naar Overzicht op de linkerblade
  3. Selecteer Verbinding maken met>Bastion in het menu bovenaan
  4. Het tabblad Bastion selecteren
  5. Klik op Bastion gebruiken

ggXServer voorbereiden om X Server uit te voeren

X Server is vereist voor latere stappen van dit lab. Voer de volgende stappen uit om X Server te installeren en te starten.

  1. Download Xming X Server voor Windows naar ggXServer en installeer met alle standaardopties.

  2. Zorg ervoor dat u starten niet hebt geselecteerd aan het einde van de installatie

  3. Start de toepassing XLAUNCH vanuit het startmenu.

  4. Meerdere vensters selecteren

    Schermopname van stap 1 van de wizard XLaunch.

  5. Selecteer Geen client starten

    Schermopname van stap 2 van de wizard XLaunch.

  6. Selecteer Geen toegangsbeheer

    Schermopname van stap 3 van de wizard XLaunch.

  7. Selecteer Toegang toestaan om X Server via Windows Firewall toe te staan

    Schermopname van stap 4 van de wizard XLaunch.

Als u uw ggXServer-VM opnieuw opstart, volgt u de bovenstaande stappen 2-6 om de X Server-toepassing opnieuw te starten.

Virtuele Oracle-databasemachines maken

Voor dit lab maken we virtuele machines ggVM1 en ggVM2 van oracle database 19c-installatiekopieën. Als ze nog niet bestaan op de standaardsleutellocatie, maakt deze opdracht ook SSH-sleutels. Als u een specifieke set sleutels wilt gebruiken, gebruikt u de optie --ssh-key-value. Als u uw SSH-sleutels al hebt gemaakt in de sectie Verificatiesleutels genereren , worden deze sleutels gebruikt.

Bij het maken van een nieuwe virtuele-machineparameter size worden de grootte en het type van de gemaakte virtuele machine aangegeven. Afhankelijk van de Azure-regio die u hebt geselecteerd om de virtuele machine te maken en uw abonnementsinstellingen, zijn sommige grootten en typen virtuele machines mogelijk niet beschikbaar voor gebruik. In het volgende voorbeeld wordt de minimale vereiste grootte voor dit lab Standard_DS1_v2gebruikt. Als u de specificaties van de virtuele machine wilt wijzigen, selecteert u een van de beschikbare grootten in Azure VM-grootten. Voor testdoeleinden kunt u kiezen uit Algemeen virtuele machinetypen (D-serie). Voor productie- of testimplementaties zijn geoptimaliseerd voor geheugen (E-serie en M-serie) meer geschikt.

ggVM1 maken (primair)

$ 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

ggVM2 maken (repliceren)

$ 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

Verbinding maken met ggVM1 (primair)

Maak verbinding met ggVM1 met behulp van Bastion.

  1. Navigeer vanuit Azure Portal naar ggVM1.
  2. Ga naar Overzicht in het linkerdeelvenster.
  3. Selecteer Verbinding maken met>Bastion in het menu bovenaan
  4. Het tabblad Bastion selecteren
  5. Klik op Bastion gebruiken

De database maken op ggVM1 (primair)

De Oracle-software is al geïnstalleerd op de Marketplace-installatiekopieën, dus de volgende stap is het maken van de database.

  1. Voer de software uit als de oracle gebruiker.
$ sudo su - oracle
  1. Maak de database met behulp van de volgende opdracht. Het kan 30-40 minuten duren voordat deze opdracht is voltooid.
$ 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

De uitvoer moet er ongeveer uitzien als in het volgende antwoord.

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. Stel de variabelen ORACLE_SID en LD_LIBRARY_PATH in.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Voer de volgende opdracht uit om ORACLE_SID en LD_LIBRARY_PATH toe te voegen aan het bashrc-bestand, zodat deze instellingen worden opgeslagen voor toekomstige aanmeldingen. ORACLE_HOME variabele moet al zijn ingesteld in het .bashrc-bestand.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Oracle-listener starten
$ lsnrctl start

Verbinding maken met ggVM2 (repliceren)

Maak verbinding met ggVM2 met behulp van Bastion.

  1. Navigeer vanuit Azure Portal naar ggVM2.
  2. Ga naar Overzicht in het linkerdeelvenster.
  3. Selecteer Verbinding maken met>Bastion in het menu bovenaan
  4. Het tabblad Bastion selecteren
  5. Klik op Bastion gebruiken

Open firewallpoorten voor ggVM1

Configureer de firewall om verbindingen van ggVM1 toe te staan. De volgende opdracht wordt uitgevoerd op ggVM2.

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

De database maken op ggVM2 (repliceren)

  1. Indien nodig overschakelen naar oracle gebruiker
$ sudo su - oracle
  1. De database maken
$ 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. Stel de variabelen ORACLE_SID en ORACLE_HOME in.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Voer de volgende opdracht uit om ORACLE_SID en LD_LIBRARY_PATH toe te voegen aan het bashrc-bestand, zodat deze instellingen worden opgeslagen voor toekomstige aanmeldingen. ORACLE_HOME variabele moet al zijn ingesteld in het .bashrc-bestand.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Oracle-listener starten
$ lsnrctl start

Golden Gate configureren op ggVM1

Volg de stappen in deze sectie om Golden Gate te installeren en configureren.

Archieflogboekmodus inschakelen op ggVM1 (primair)

  1. Verbinding maken met sqlplus
$ sqlplus / as sysdba
  1. Archieflogboek inschakelen
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. Schakel geforceerde logboekregistratie in en zorg ervoor dat er ten minste één logboekbestand aanwezig is.
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;

Golden Gate-software downloaden

  1. Download het 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip-bestand op de downloadpagina van Oracle Golden Gate. Onder de downloadtitel Oracle GoldenGate 21.3.0.0.0 voor Oracle op Linux x86-64.

  2. Nadat u het .zip-bestand naar uw clientcomputer hebt gedownload, kunt u SCP (Secure Copy Protocol) gebruiken om de bestanden te kopiëren naar uw virtuele machines (ggVM1 en ggVM2). Zorg ervoor dat scp de opdracht verwijst naar het juiste pad van .zip bestand.

  3. Kopiëren naar ggVM1

    1. Meld u aan en zorg ervoor dat u het juiste abonnement gebruikt, zoals beschreven in Aanmelden bij Azure

    2. Open de tunnel naar uw doel-VM met behulp van de volgende PowerShell-opdracht

      $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. Laat de eerste opdrachtprompt actief en open een tweede opdrachtprompt om via de tunnel verbinding te maken met de doel-VM. In dit tweede opdrachtpromptvenster kunt u bestanden van uw lokale computer uploaden naar uw doel-VM met behulp van de volgende opdracht. Het juiste id_rsa sleutelbestand voor toegang tot de virtuele machine moet zich in .ssh de map bevinden of u kunt naar een ander sleutelbestand verwijzen met behulp van -i parameter naar scp opdracht.

       scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      
  4. Kopiëren naar ggVM2

    1. Open de tunnel naar uw doel-VM met behulp van de volgende PowerShell-opdracht

      $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. Laat de eerste opdrachtprompt actief en open een tweede opdrachtprompt om via de tunnel verbinding te maken met de doel-VM. In dit tweede opdrachtpromptvenster kunt u bestanden van uw lokale computer uploaden naar uw doel-VM met behulp van de volgende opdracht. Het juiste id_rsa sleutelbestand voor toegang tot de virtuele machine moet zich in .ssh de map bevinden of u kunt naar een ander sleutelbestand verwijzen met behulp van -i parameter naar scp opdracht.

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

Golden Gate-software installeren

  1. Maak verbinding met ggVM1 met behulp van Bastion.

    1. Navigeer vanuit Azure Portal naar ggVM1.
    2. Ga naar Overzicht in het linkerdeelvenster
    3. Selecteer Verbinding maken met>Bastion in het menu bovenaan
    4. Het tabblad Bastion selecteren
    5. Klik op Bastion gebruiken
  2. Verplaats het .zip bestand naar de map /opt en wijzig vervolgens de eigenaar

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    
  3. Pak de bestanden uit (installeer het hulpprogramma voor uitpakken als dit nog niet is geïnstalleerd)

    $ yum install unzip
    $ cd /opt
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Machtiging wijzigen

    $ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome
    $ exit
    
  5. Golden Gate-installatieprogramma starten

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

    Het installatieprogramma wordt geopend op ggXServer.

  6. Selecteer Oracle GoldenGate voor Oracle Database 21c. Selecteer vervolgens Volgende om door te gaan.

    Schermopname van stap 1 van de installatiewizard van Golden Gate.

  7. Stel de softwarelocatie in op /u01/app/oracle/product/19.0.0/oggcore_1, zorg ervoor dat het vak Startbeheer is geselecteerd en selecteer Volgende om door te gaan.

    Schermopname van stap 2 van de installatiewizard van Golden Gate.

  8. Selecteer In het scherm Samenvatting de optie Installeren om door te gaan.

    Schermopname van stap 3 van de installatiewizard van Golden Gate.

  9. Wacht tot de installatie is voltooid.

    Schermopname van stap 4 van de installatiewizard van Golden Gate.

  10. Selecteer Sluiten om door te gaan.

Schermopname van stap 5 van de installatiewizard van Golden Gate.

  1. Maak verbinding met ggVM2 met behulp van Bastion.

    1. Navigeer vanuit Azure Portal naar ggVM2.
    2. Ga naar Overzicht in het linkerdeelvenster
    3. Selecteer Verbinding maken met>Bastion in het menu bovenaan
    4. Het tabblad Bastion selecteren
    5. Klik op Bastion gebruiken
  2. Herhaal stap 2-10 hierboven op ggVM2

Service instellen op ggVM1 (primair)

  1. Maak of werk het bestand tnsnames.ora bij.

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

    Wanneer vi editor wordt geopend, moet u drukken i om over te schakelen naar de invoegmodus, kopieer en plak bestandsinhoud en druk op Esc toets, :wq! om het bestand op te slaan.

    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. Maak de Golden Gate-eigenaar en gebruikersaccounts.

    Notitie

    Het eigenaarsaccount moet het C##-voorvoegsel hebben.

    $ 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. Het Golden Gate-testgebruikersaccount maken

    $ 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. Configureer het parameterbestand voor extraheren.

    Start de Golden Gate-opdrachtregelinterface (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. Druk op i de toets om over te schakelen naar de invoegmodus en kopieer en plak (klik met de rechtermuisknop op het SSH-venster) na het parameterbestand EXTRACT. Druk op Esc :wq! om het bestand op te slaan.

    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. Uitpakken registreren- geïntegreerd extract.

    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. Controlepunten extraheren instellen en realtime-extract starten

    $ ./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
    

    In deze stap vindt u de begin-SCN, die later wordt gebruikt, in een andere sectie.

    $ 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
    

    Wanneer vi editor wordt geopend, moet u drukken i om over te schakelen naar de invoegmodus, kopieer en plak bestandsinhoud en druk op Esc toets, :wq! om het bestand op te slaan.

    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
    

Service instellen op ggVM2 (repliceren)

  1. Maak of werk het bestand tnsnames.ora bij.

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

    Wanneer vi editor wordt geopend, moet u drukken i om over te schakelen naar de invoegmodus, kopieer en plak bestandsinhoud en druk op Esc toets, :wq! om het bestand op te slaan.

    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. Maak een replicatieaccount.

    $ 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. Maak een Golden Gate-testgebruikeraccount.

    $ 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. REPLICAT-parameterbestand om wijzigingen te repliceren.

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

    Wanneer vi editor wordt geopend, moet u drukken i om over te schakelen naar de invoegmodus, kopieer en plak bestandsinhoud en druk op Esc toets, :wq! om het bestand op te slaan.

    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. Stel een replicatiecontrolepunt in.

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

    Wanneer vi editor wordt geopend, moet u drukken i om over te schakelen naar de invoegmodus, kopieer en plak bestandsinhoud en druk op Esc toets, :wq! om het bestand op te slaan.

    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
    

Replicatie instellen (ggVM1 en ggVM2)

1. De replicatie instellen op ggVM2 (repliceren)

Meld u aan bij ggsci.

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

Werk het bestand bij met het volgende.

PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW

Start de Manager-service opnieuw.

GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT

2. De replicatie instellen op ggVM1 (primair)

Start de eerste laadtijd en controleer op fouten.

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

3. Stel de replicatie in op ggVM2 (repliceren)

Wijzig het SCN-nummer door het nummer dat u eerder hebt verkregen.

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

De replicatie is gestart en u kunt deze testen door nieuwe records in te voegen in TEST-tabellen.

Taakstatus en probleemoplossing weergeven

Rapporten weergeven

  • Voer de volgende opdrachten uit om rapporten op ggVM1 weer te geven.

    GGSCI> VIEW REPORT EXTORA
    
  • Voer de volgende opdrachten uit om rapporten op ggVM2 weer te geven.

    GGSCI> VIEW REPORT REPORA
    

Status en geschiedenis weergeven

  • Voer de volgende opdrachten uit om de status en geschiedenis op ggVM1 weer te geven.

    GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin
    GGSCI> INFO EXTRACT EXTORA, DETAIL
    
  • Voer de volgende opdrachten uit om de status en geschiedenis op ggVM2 weer te geven.

    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;
    

Gegevensreplicatie observeren

  1. Verbinding maken met de primaire database op ggVM1

    $ sqlplus test/test@pdb1
    
  2. Bestaande records uit tabel selecteren

    SQL> select * from TCUSTORD;
    
  3. Een testrecord maken

    SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102);
    SQL> COMMIT;
    SQL> EXIT;
    
  4. Bekijk de transactie die is opgehaald door Golden Gate (Note Total voegt waarde in )

$ 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. Verbinding maken met de primaire database op ggVM2

    $ sqlplus test/test@pdb1
    
  2. Controleren of de nieuwe record is gerepliceerd

    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
    

De installatie en configuratie van Golden Gate op Oracle Linux is nu voltooid.

De ggXServer-VM verwijderen

ggXServer VM wordt alleen gebruikt tijdens de installatie. U kunt deze veilig verwijderen nadat u dit labdocument hebt voltooid, maar houd de installatie van uw GoldenGate in Azure-lab intact.

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

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

Golden Gate verwijderen in Azure Lab Setup

Wanneer u deze niet meer nodig hebt, kunt u de volgende opdracht gebruiken om de resourcegroep, vm en alle gerelateerde resources voor dit lab te verwijderen.

$ az group delete --name GoldenGateOnAzureLab

Volgende stappen

Zelfstudie voor het maken van virtuele machines met een hoge beschikbaarheid

CLI-voorbeelden voor VM-implementatie verkennen