Implementowanie programu Oracle Golden Gate na maszynie wirtualnej z systemem Linux na platformie Azure

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux

Interfejs wiersza polecenia platformy Azure umożliwia tworzenie zasobów Azure i zarządzanie nimi z poziomu wiersza polecenia lub skryptów. W tym przewodniku szczegółowo przedstawiono sposób wdrażania bazy danych Oracle 19c przy użyciu interfejsu wiersza polecenia platformy Azure z obrazu galerii Azure Marketplace.

W tym dokumencie pokazano krok po kroku, jak utworzyć, zainstalować i skonfigurować rozwiązanie Oracle Golden Gate na maszynie wirtualnej platformy Azure. W tym samouczku dwie maszyny wirtualne są konfigurowane w zestawie dostępności w jednym regionie. Ten sam samouczek może służyć do konfigurowania bramy OracleGolden dla maszyn wirtualnych w różnych Strefy dostępności w jednym regionie platformy Azure lub w przypadku maszyn wirtualnych skonfigurowanych w dwóch różnych regionach.

Przed rozpoczęciem upewnij się, że interfejs wiersza polecenia platformy Azure został zainstalowany. Aby uzyskać więcej informacji, zobacz Azure CLI installation guide (Przewodnik instalacji interfejsu wiersza polecenia platformy Azure).

Wprowadzenie

GoldenGate to oprogramowanie do replikacji logicznej, które umożliwia replikację, filtrowanie i przekształcanie danych ze źródłowej bazy danych do docelowej bazy danych w czasie rzeczywistym. Ta funkcja zapewnia, że zmiany w źródłowej bazie danych są replikowane w czasie rzeczywistym, dzięki czemu docelowa baza danych może być aktualna z najnowszymi danymi.

Funkcja GoldenGate jest używana głównie w przypadku heterogenicznych przypadków replikacji, takich jak replikowanie danych z różnych źródłowych baz danych do pojedynczej bazy danych. Na przykład magazyn danych. Można go również używać do migracji międzyplatformowych, takich jak z SPARC i AIX do środowisk x86 systemu Linux oraz zaawansowanych scenariuszy wysokiej dostępności i skalowalności.

Ponadto rozwiązanie GoldenGate jest również odpowiednie do migracji niemal zerowych przestojów, ponieważ obsługuje migracje online z minimalnymi zakłóceniami w systemach źródłowych.

Chociaż goldenGate ułatwia replikację dwukierunkową, należy odpowiednio skonfigurować aplikację. Ponadto oprogramowanie umożliwia filtrowanie i przekształcanie danych w celu spełnienia określonych wymagań biznesowych, umożliwiając użytkownikom korzystanie z replikowanych danych do różnych celów.

Przygotowywanie środowiska

Aby przeprowadzić instalację programu Oracle Golden Gate, należy utworzyć dwie maszyny wirtualne platformy Azure w tym samym zestawie dostępności. Obraz witryny Marketplace używany do tworzenia maszyn wirtualnych to Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.

Musisz również zapoznać się z edytorem systemu Unix vi i mieć podstawową wiedzę na temat serwera X.

Poniższa tabela zawiera podsumowanie konfiguracji środowiska:

Lokacja główna Replikowanie lokacji
Wydanie oracle Oracle Database 19.3.1.0 Oracle Database 19.3.1.0
Nazwa maszyny ggVM1 ggVM2
System operacyjny Oracle Linux 7.x Oracle Linux 7.x
Oracle SID CDB1 CDB1
Schemat replikacji TEST TEST
Właściciel/replikowanie bramy Golden Gate C##GGADMIN REPUSER
Proces Golden Gate EXTORA REPORA

Logowanie do platformy Azure

  1. Otwórz preferowaną powłokę w systemach Windows, Linux lub Azure Shell.

  2. Zaloguj się do subskrypcji platformy Azure za pomocą polecenia az login . Następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

    $ az login
    
  3. Upewnij się, że masz połączenie z poprawną subskrypcją, weryfikując nazwę subskrypcji i/lub identyfikator.

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

Generowanie kluczy uwierzytelniania

Używamy uwierzytelniania opartego na plikach kluczy za pomocą protokołu SSH, aby nawiązać połączenie z maszyną wirtualną bazy danych Oracle. Upewnij się, że masz prywatne (nazwane id_rsa) i publiczne (nazwane id_rsa.pub) pliki kluczy są tworzone w powłoce.

Lokalizacja plików kluczy zależy od systemu źródłowego.

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

Jeśli nie istnieją, możesz utworzyć nową parę plików kluczy.

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

Tworzone są pliki katalogów i kluczy ssh. Aby uzyskać więcej informacji, zobacz Create and manage SSH keys for authentication to a Linux VM in Azure (Tworzenie kluczy SSH i zarządzanie nimi na potrzeby uwierzytelniania na maszynie wirtualnej z systemem Linux na platformie Azure)

Tworzenie grupy zasobów

Aby utworzyć grupę zasobów, użyj polecenia az group create . Grupa zasobów platformy Azure to logiczny kontener, w którym zasoby platformy Azure są wdrażane i zarządzane.

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

Tworzenie i konfigurowanie sieci

Tworzenie sieci wirtualnej

Użyj następującego polecenia, aby utworzyć sieć wirtualną, która hostuje zasoby tworzone w tym laboratorium.

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

Tworzenie sieciowej grupy zabezpieczeń

  1. Utwórz sieciową grupę zabezpieczeń, aby zablokować sieć wirtualną.

    $ az network nsg create \
      --resource-group GoldenGateOnAzureLab \
      --name ggVnetNSG
    
  2. Utwórz regułę sieciowej grupy zabezpieczeń, aby zezwolić na komunikację w sieci wirtualnej.

    $ 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. Tworzenie reguły sieciowej grupy zabezpieczeń w celu odmowy wszystkich połączeń przychodzących

    $ 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. Przypisz sieciową grupę zabezpieczeń do podsieci, w której hostujemy nasze serwery.

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

Tworzenie sieci usługi Bastion

  1. Utwórz podsieć usługi Bastion. Nazwa podsieci musi być azureBastionSubnet

    $ az network vnet subnet create  \
        --resource-group GoldenGateOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name ggVnet \
        --address-prefixes 10.0.1.0/24
    
  2. Tworzenie publicznego adresu IP dla usługi Bastion

    $ az network public-ip create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastionIP \
        --sku Standard
    
  3. Utwórz zasób usługi Azure Bastion. Wdrożenie zasobu trwa około 10 minut.

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

Tworzenie maszyny wirtualnej X Server (ggXServer)

Zastąp hasło i uruchom następujące polecenie, aby utworzyć maszynę wirtualną stacji roboczej z systemem Windows, na której wdrażamy program 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>

Nawiązywanie połączenia z serwerem ggXServer za pośrednictwem usługi Bastion

Połącz się z serwerem ggXServer przy użyciu usługi Bastion.

  1. Przejdź do serwera ggXServer z Azure Portal.
  2. Przejdź do obszaru Przegląd w bloku po lewej stronie
  3. Wybierz pozycję Połącz>bastion w menu u góry
  4. Wybieranie karty Bastion
  5. Kliknij pozycję Użyj bastionu

Przygotowywanie serwera ggXServer do uruchamiania serwera X

Program X Server jest wymagany do wykonania dalszych kroków tego laboratorium. Wykonaj następujące kroki, aby zainstalować i uruchomić program X Server.

  1. Pobierz program Xming X Server dla systemu Windows do serwera ggXServer i zainstaluj go przy użyciu wszystkich opcji domyślnych.

  2. Upewnij się, że nie wybrano opcji Uruchom na końcu instalacji

  3. Uruchom aplikację "XLAUNCH" z menu Start.

  4. Wybierz wiele okien

    Zrzut ekranu przedstawiający krok 1 kreatora XLaunch.

  5. Wybierz pozycję Uruchom bez klienta

    Zrzut ekranu przedstawiający krok 2 kreatora XLaunch.

  6. Wybierz pozycję Brak kontroli dostępu

    Zrzut ekranu przedstawiający kreatora XLaunch, krok 3.

  7. Wybierz pozycję Zezwalaj na dostęp , aby zezwolić na serwer X za pośrednictwem zapory systemu Windows

    Zrzut ekranu przedstawiający krok 4 kreatora XLaunch.

Jeśli uruchomisz ponownie maszynę wirtualną ggXServer , wykonaj kroki 2–6 powyżej, aby ponownie uruchomić aplikację X Server.

Tworzenie maszyn wirtualnych bazy danych Oracle

W tym laboratorium utworzymy maszyny ggVM1 wirtualne i ggVM2 obraz Oracle Database 19c. Jeśli jeszcze nie istnieją w domyślnej lokalizacji klucza, to polecenie tworzy również klucze SSH. Aby użyć określonego zestawu kluczy, użyj opcji --ssh-key-value. Jeśli klucze SSH zostały już utworzone w sekcji Generowanie kluczy uwierzytelniania , te klucze będą używane.

Podczas tworzenia nowego parametru maszyny size wirtualnej wskazuje rozmiar i typ utworzonej maszyny wirtualnej. W zależności od regionu platformy Azure wybranego do utworzenia maszyny wirtualnej i ustawień subskrypcji niektóre rozmiary i typy maszyn wirtualnych mogą nie być dostępne do użycia. W poniższym przykładzie użyto minimalnego wymaganego rozmiaru dla tego laboratorium Standard_DS1_v2. Jeśli chcesz zmienić specyfikację maszyny wirtualnej, wybierz jeden z dostępnych rozmiarów z obszaru Rozmiary maszyn wirtualnych platformy Azure. Do celów testowych można wybrać spośród typów maszyn wirtualnych Ogólnego przeznaczenia (D-Series). W przypadku wdrożeń produkcyjnych lub pilotażowych zoptymalizowane pod kątem pamięci (seria E i seria M) są bardziej odpowiednie.

Tworzenie maszyny wirtualnej ggVM1 (podstawowa)

$ 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

Tworzenie maszyny wirtualnej ggVM2 (replikowanie)

$ 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

Nawiązywanie połączenia z maszyną ggVM1 (podstawową)

Połącz się z maszyną ggVM1 przy użyciu usługi Bastion.

  1. Przejdź do maszyny ggVM1 z Azure Portal.
  2. Przejdź do pozycji Przegląd w okienku po lewej stronie.
  3. Wybierz pozycję Połącz usługę>Bastion w menu u góry
  4. Wybierz kartę Bastion
  5. Kliknij pozycję Użyj usługi Bastion

Tworzenie bazy danych na maszynie ggVM1 (podstawowa)

Oprogramowanie Oracle jest już zainstalowane na obrazie witryny Marketplace, więc następnym krokiem jest utworzenie bazy danych.

  1. Uruchom oprogramowanie jako oracle użytkownik.
$ sudo su - oracle
  1. Utwórz bazę danych przy użyciu następującego polecenia. Wykonanie tego polecenia może potrwać od 30 do 40 minut.
$ 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

Dane wyjściowe powinny wyglądać podobnie do poniższej odpowiedzi.

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. Ustaw zmienne ORACLE_SID i LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Uruchom następujące polecenie, aby dodać ORACLE_SID i LD_LIBRARY_PATH do pliku bashrc, aby te ustawienia były zapisywane w przyszłych logowaniach. ORACLE_HOME zmienna powinna być już ustawiona w pliku bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Uruchamianie odbiornika Oracle
$ lsnrctl start

Nawiązywanie połączenia z maszyną ggVM2 (replikowanie)

Połącz się z maszyną ggVM2 przy użyciu usługi Bastion.

  1. Przejdź do pozycji ggVM2 z Azure Portal.
  2. Przejdź do pozycji Przegląd w okienku po lewej stronie.
  3. Wybierz pozycję Połącz usługę>Bastion w menu u góry
  4. Wybierz kartę Bastion
  5. Kliknij pozycję Użyj usługi Bastion

Otwieranie portów zapory dla maszyny ggVM1

Skonfiguruj zaporę tak, aby zezwalała na połączenia z maszyny wirtualnej ggVM1. Następujące polecenie jest uruchamiane na maszynie wirtualnej ggVM2.

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

Tworzenie bazy danych na maszynie ggVM2 (replikowanie)

  1. Przełącz się do oracle użytkownika w razie potrzeby
$ sudo su - oracle
  1. Tworzenie bazy danych
$ 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. Ustaw zmienne ORACLE_SID i ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Uruchom następujące polecenie, aby dodać ORACLE_SID i LD_LIBRARY_PATH do pliku bashrc, aby te ustawienia były zapisywane w przyszłych logowaniach. ORACLE_HOME zmienna powinna być już ustawiona w pliku bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Uruchamianie odbiornika Oracle
$ lsnrctl start

Konfigurowanie golden gate na maszynie ggVM1

Wykonaj kroki opisane w tej sekcji, aby zainstalować i skonfigurować golden gate.

Włączanie trybu dziennika archiwum na maszynie ggVM1 (podstawowa)

  1. Nawiązywanie połączenia z sqlplus
$ sqlplus / as sysdba
  1. Włączanie dziennika archiwum
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. Włącz rejestrowanie wymuszone i upewnij się, że istnieje co najmniej jeden plik dziennika.
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;

Pobierz oprogramowanie Golden Gate

  1. Pobierz plik 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip ze strony pobierania Oracle Golden Gate. W ramach tytułu pobierania Oracle GoldenGate 21.3.0.0.0 for Oracle w systemie Linux x86-64.

  2. Po pobraniu pliku .zip na komputer kliencki można użyć protokołu Secure Copy Protocol (SCP), aby skopiować pliki do maszyn wirtualnych (ggVM1 i ggVM2). Upewnij się, że scp polecenie wskazuje poprawną ścieżkę pliku .zip.

  3. Kopiowanie do maszyny ggVM1

    1. Zaloguj się i upewnij się, że używasz odpowiedniej subskrypcji zgodnie z opisem w temacie Logowanie do platformy Azure

    2. Otwórz tunel na docelowej maszynie wirtualnej przy użyciu następującego polecenia programu 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. Pozostaw pierwszy wiersz polecenia uruchomiony i otwórz drugi wiersz polecenia, aby nawiązać połączenie z docelową maszyną wirtualną za pośrednictwem tunelu. W tym drugim oknie wiersza polecenia możesz przekazać pliki z maszyny lokalnej do docelowej maszyny wirtualnej przy użyciu następującego polecenia. Prawidłowy id_rsa plik klucza, aby uzyskać dostęp do maszyny wirtualnej, musi znajdować się w .ssh katalogu lub można wskazać inny plik klucza przy użyciu -i parametru do scp polecenia.

       scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      
  4. Kopiowanie do maszyny wirtualnej ggVM2

    1. Otwórz tunel na docelowej maszynie wirtualnej przy użyciu następującego polecenia programu 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. Pozostaw pierwszy wiersz polecenia uruchomiony i otwórz drugi wiersz polecenia, aby nawiązać połączenie z docelową maszyną wirtualną za pośrednictwem tunelu. W tym drugim oknie wiersza polecenia możesz przekazać pliki z maszyny lokalnej do docelowej maszyny wirtualnej przy użyciu następującego polecenia. Prawidłowy id_rsa plik klucza, aby uzyskać dostęp do maszyny wirtualnej, musi znajdować się w .ssh katalogu lub można wskazać inny plik klucza przy użyciu -i parametru do scp polecenia.

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

Instalowanie oprogramowania Golden Gate

  1. Połącz się z maszyną ggVM1 przy użyciu usługi Bastion.

    1. Przejdź do maszyny ggVM1 z Azure Portal.
    2. Przejdź do pozycji Przegląd w panelu po lewej stronie
    3. Wybierz pozycję Połącz usługę>Bastion w menu u góry
    4. Wybierz kartę Bastion
    5. Kliknij pozycję Użyj usługi Bastion
  2. Przenieś plik .zip do folderu /opt , a następnie zmień właściciela

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    
  3. Rozpakuj pliki (zainstaluj narzędzie rozpakuj, jeśli nie jest jeszcze zainstalowane)

    $ yum install unzip
    $ cd /opt
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Zmień uprawnienie

    $ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome
    $ exit
    
  5. Uruchom instalatora Golden Gate

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

    Instalator zostanie otwarty na serwerze ggXServer.

  6. Wybierz pozycję "Oracle GoldenGate for Oracle Database 21c". Następnie wybierz przycisk Dalej , aby kontynuować.

    Zrzut ekranu przedstawiający kreatora instalacji Golden Gate krok 1.

  7. Ustaw lokalizację oprogramowania na /u01/app/oracle/product/19.0.0/oggcore_1, upewnij się, że wybrano pole Start Manager i wybierz przycisk Dalej , aby kontynuować.

    Zrzut ekranu przedstawiający kreatora instalacji Golden Gate krok 2.

  8. Na ekranie Podsumowanie wybierz pozycję Zainstaluj , aby kontynuować.

    Zrzut ekranu przedstawiający kreatora instalacji Golden Gate krok 3.

  9. Poczekaj na zakończenie instalacji.

    Zrzut ekranu przedstawiający kreatora instalacji Golden Gate krok 4.

  10. Wybierz pozycję Zamknij , aby kontynuować.

Zrzut ekranu przedstawiający kreatora instalacji Golden Gate krok 5.

  1. Połącz się z maszyną ggVM2 przy użyciu usługi Bastion.

    1. Przejdź do pozycji ggVM2 z Azure Portal.
    2. Przejdź do pozycji Przegląd w okienku po lewej stronie
    3. Wybierz pozycję Połącz usługę>Bastion w menu u góry
    4. Wybierz kartę Bastion
    5. Kliknij pozycję Użyj usługi Bastion
  2. Powtórz kroki 2–10 powyżej na maszynie ggVM2

Konfigurowanie usługi na maszynie ggVM1 (podstawowa)

  1. Utwórz lub zaktualizuj plik tnsnames.ora.

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

    Po otwarciu edytora vi musisz nacisnąć klawisz i , aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąć Esc klawisz, :wq! aby zapisać plik.

    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. Utwórz konta właściciela i użytkownika golden gate.

    Uwaga

    Konto właściciela musi mieć prefiks języka 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. Tworzenie konta użytkownika testowego aplikacji 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. Skonfiguruj plik parametrów wyodrębniania.

    Uruchom interfejs wiersza polecenia 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. Naciśnij i klawisz, aby przełączyć się do trybu wstawiania i skopiować i wkleić (kliknij prawym przyciskiem myszy okno SSH) po pliku parametrów EXTRACT. Naciśnij klawisz Esc, :wq! aby zapisać plik.

    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. Zarejestruj wyodrębnianie zintegrowanego wyodrębniania.

    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. Konfigurowanie wyodrębniania punktów kontrolnych i uruchamiania wyodrębniania w czasie rzeczywistym

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

    W tym kroku znajdziesz początkową nazwę SCN, która jest używana później, w innej sekcji.

    $ 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
    

    Po otwarciu edytora vi musisz nacisnąć klawisz i , aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąć Esc klawisz, :wq! aby zapisać plik.

    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
    

Konfigurowanie usługi na maszynie ggVM2 (replikowanie)

  1. Utwórz lub zaktualizuj plik tnsnames.ora.

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

    Po otwarciu edytora vi musisz nacisnąć klawisz i , aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąć Esc klawisz, :wq! aby zapisać plik.

    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. Utwórz konto replikowania.

    $ 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. Utwórz konto użytkownika testowego 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. Plik parametrów REPLICAT do replikowania zmian.

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

    Po otwarciu edytora vi musisz nacisnąć klawisz i , aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąć Esc klawisz, :wq! aby zapisać plik.

    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. Konfigurowanie replikowanego punktu kontrolnego.

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

    Po otwarciu edytora vi musisz nacisnąć klawisz i , aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąć Esc klawisz, :wq! aby zapisać plik.

    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
    

Konfigurowanie replikacji (ggVM1 i ggVM2)

1. Konfigurowanie replikacji na maszynie wirtualnej ggVM2 (replikowanie)

Zaloguj się do ggsci.

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

Zaktualizuj plik, wykonując następujące czynności.

PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW

Uruchom ponownie usługę Manager.

GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT

2. Konfigurowanie replikacji na maszynie wirtualnej ggVM1 (podstawowej)

Uruchom początkowe ładowanie i sprawdź błędy.

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

3. Konfigurowanie replikacji na maszynie wirtualnej ggVM2 (replikowanie)

Zmień numer SCN na liczbę uzyskaną wcześniej.

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

Rozpoczęto replikację i można ją przetestować, wstawiając nowe rekordy do tabel TEST.

Wyświetlanie stanu zadania i rozwiązywanie problemów

Wyświetlanie raportów

  • Aby wyświetlić raporty na maszynie ggVM1, uruchom następujące polecenia.

    GGSCI> VIEW REPORT EXTORA
    
  • Aby wyświetlić raporty na maszynie ggVM2, uruchom następujące polecenia.

    GGSCI> VIEW REPORT REPORA
    

Wyświetlanie stanu i historii

  • Aby wyświetlić stan i historię na maszynie ggVM1, uruchom następujące polecenia.

    GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin
    GGSCI> INFO EXTRACT EXTORA, DETAIL
    
  • Aby wyświetlić stan i historię na maszynie wirtualnej ggVM2, uruchom następujące polecenia.

    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;
    

Obserwowanie replikacji danych

  1. Nawiązywanie połączenia z podstawową bazą danych na maszynie ggVM1

    $ sqlplus test/test@pdb1
    
  2. Wybieranie istniejących rekordów z tabeli

    SQL> select * from TCUSTORD;
    
  3. Tworzenie rekordu testowego

    SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102);
    SQL> COMMIT;
    SQL> EXIT;
    
  4. Obserwowanie transakcji odebranych przez Golden Gate (Uwaga Całkowita wartość wstawiania )

$ 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. Nawiązywanie połączenia z podstawową bazą danych na maszynie wirtualnej ggVM2

    $ sqlplus test/test@pdb1
    
  2. Sprawdź, czy nowy rekord jest replikowany

    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
    

Instalacja i konfiguracja Golden Gate w systemie Oracle Linux została ukończona.

Usuwanie maszyny wirtualnej ggXServer

Maszyna wirtualna ggXServer jest używana tylko podczas instalacji. Można go bezpiecznie usunąć po ukończeniu tego dokumentu laboratoryjnego, ale zachować konfigurację laboratorium GoldenGate na platformie Azure bez zmian.

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

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

Usuwanie golden gate w konfiguracji laboratorium platformy Azure

Gdy grupa zasobów, maszyna wirtualna i wszystkie powiązane zasoby dla tego laboratorium nie będą już potrzebne, można użyć następującego polecenia.

$ az group delete --name GoldenGateOnAzureLab

Następne kroki

Samouczek dotyczący tworzenia maszyn wirtualnych o wysokiej dostępności

Przegląd przykładowych poleceń interfejsu wiersza polecenia umożliwiających wdrożenie maszyny wirtualnej