Udostępnij za pośrednictwem


Przesyłanie strumieniowe danych Oracle CDC do punktu końcowego Kafka Eventstream przy użyciu Oracle GoldenGate

Z tego samouczka dowiesz się, jak za pomocą rozwiązania Oracle GoldenGate (OGG) wyodrębniać i replikować dane cdC bazy danych Oracle (przechwytywanie zmian danych) do usługi Microsoft Fabric Real-Time Intelligence przy użyciu punktu końcowego platformy Kafka oferowanego z niestandardowego źródła punktu końcowego usługi Eventstream. Ta konfiguracja umożliwia przetwarzanie danych Oracle CDC w czasie rzeczywistym i umożliwia wysyłanie ich do różnych miejsc docelowych w ramach Fabric, takich jak Eventhouse, Reflex, Derived stream, lub do niestandardowego punktu końcowego w celu dalszej analizy.

W tym samouczku nauczysz się:

  • Utwórz maszynę wirtualną Oracle i bazę danych Oracle.
  • Zainstaluj platformę Oracle GoldenGate (OGG) Core na maszynie wirtualnej Oracle.
  • Skonfiguruj bazę danych Oracle dla OGG i komponent OGG Extract, aby wyodrębnić dane CDC.
  • Zainstaluj Oracle GoldenGate (OGG) Big Data na maszynie wirtualnej Oracle.
  • Skonfiguruj OGG Big Data, aby replikować dane CDC do punktu końcowego Kafka usługi Eventstream.
  • Zweryfikuj cały całościowy przepływ z bazy danych Oracle do usługi Eventstream.

Warunki wstępne

  • Uzyskaj dostęp do obszaru roboczego z uprawnieniami współautora lub wyższymi, w którym znajduje się Twój strumień zdarzeń.
  • Preferowany shell: Windows, Linux lub Azure Shell.
  • Znajomość edytorów systemu Unix, takich jak vi lub vim, oraz podstawowa wiedza na temat serwera X.

Tworzenie maszyny wirtualnej i bazy danych Oracle

Ta sekcja zawiera instrukcje dotyczące używania poleceń interfejsu wiersza polecenia platformy Azure w celu utworzenia maszyny wirtualnej Oracle i skonfigurowania w niej bazy danych.

Tworzenie maszyny wirtualnej Oracle

  1. Otwórz preferowaną konsolę, aby zalogować się do subskrypcji Azure za pomocą polecenia az login. Następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie:

    $ az login
    
  2. Sprawdź nazwę i identyfikator subskrypcji, którego używasz, aby upewnić się, że jest ona poprawna:

    $ az account show
    
  3. Utwórz grupę zasobów, która służy do grupowania wszystkich zasobów platformy Azure na potrzeby tego samouczka:

    $ az group create --name esoggcdcrg --location eastus2
    
  4. Utwórz zasoby sieciowe wymagane w tym samouczku:

    1. Utwórz sieć wirtualną, która jest wykorzystywana przez maszyny wirtualne w tym samouczku:
      $ az network vnet create --name oggVnet --resource-group esoggcdcrg --address-prefixes "10.0.0.0/16" --subnet-name oggSubnet1 --subnet-prefixes "10.0.0.0/24"
      
    2. Utwórz sieciową grupę zabezpieczeń:
      $ az network nsg create --resource-group esoggcdcrg --name oggVnetNSG
      
    3. Utwórz regułę sieciowej grupy zabezpieczeń, aby zezwolić na ruch sieciowy w sieci wirtualnej:
      $ az network nsg rule create --resource-group esoggcdcrg --nsg-name oggVnetNSG --name oggAllowVnet --protocol '*' --direction inbound --priority 3400 --source-address-prefix 'VirtualNetwork' --source-port-range '*' --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
      
    4. Utwórz regułę grupy zabezpieczeń sieciowych, aby umożliwić połączenie za pomocą RDP z maszyną wirtualną z systemem Windows. Służy do zdalnego uzyskiwania dostępu do maszyny wirtualnej z systemem Windows z komputera lokalnego z systemem Windows:
      $ az network nsg rule create --resource-group esoggcdcrg --nsg-name oggAllowRDP --protocol '*' --direction inbound --priority 3410 --source-address-prefix '*' --source-port-range '*' --destination-address-prefix '*' --destination-port-range '3389' --access allow
      
    5. Utwórz regułę sieciowej grupy zabezpieczeń, aby odmówić wszystkich połączeń przychodzących:
      $ az network nsg rule create --resource-group esoggcdcrg --nsg-name oggDenyAllInBound --protocol '*' --direction inbound --priority 3500 --source-address-prefix '*' --source-port-range '*' --destination-address-prefix '*' --destination-port-range '*' --access deny
      
    6. Przypisz sieciową grupę zabezpieczeń do podsieci, w której hostujemy nasze serwery:
      $ az network vnet subnet update --resource-group esoggcdcrg --vnet-name oggVNet --name oggSubnet1 --network-security-group oggVnetNSG
      
  5. Utwórz maszynę wirtualną Oracle:

    $ az vm create --resource-group esoggcdcrg --name oggVM --image Oracle:oracle-database:oracle_db_21:21.0.0 --size Standard_D2s_v3 --generate-ssh-keys --admin-username azureuser --vnet-name oggVnet --subnet oggSubnet1 --public-ip-address "" --nsg "" --zone 1
    

Tworzenie i konfigurowanie maszyny wirtualnej X Server

Aby utworzyć bazę danych Oracle, należy użyć protokołu SSH do zalogowania się do maszyny wirtualnej utworzonej w poprzednim kroku. Ponieważ reguła sieciowej grupy zabezpieczeń zdefiniowana wcześniej blokuje wszystkie połączenia przychodzące, ale zezwala na połączenia w ramach sieci wirtualnej oraz na port RDP 3389, utworzono maszynę wirtualną z systemem Windows do połączenia z maszyną wirtualną Oracle. Ta maszyna wirtualna z systemem Windows jest również używana do hostowania serwera X, który ma odbierać graficzny interfejs instalacji podczas instalowania aplikacji podstawowej GoldenGate na maszynie wirtualnej Oracle później.

  1. Zastąp hasło i uruchom następujące polecenie, aby utworzyć maszynę wirtualną stacji roboczej z systemem Windows, na której wdrażamy serwer X.

    $ az vm create --resource-group esoggcdcrg --name oggXServer --image MicrosoftWindowsDesktop:windows-11:win11-24h2-pro:26100.2605.241207 --size Standard_D2s_v3 --vnet-name oggVnet --subnet oggSubnet1 --public-ip-sku Standard --nsg "" --data-disk-delete-option Delete --os-disk-delete-option Delete --nic-delete-option Delete --security-type Standard --admin-username azureuser --admin-password <YOUR_OWN_PASSWORD>
    
  2. Po utworzeniu przejdź do portalu Azure, aby pobrać plik RDP z zasobu oggXServer, dzięki czemu będziesz mógł zdalnie uzyskać dostęp do tej maszyny z systemem Windows. Otwórz plik RDP i użyj hasła określonego podczas tworzenia maszyny wirtualnej z systemem Windows (oggXServer).

    Zrzut ekranu przedstawiający sposób tworzenia maszyny wirtualnej z systemem Windows.

  3. Zainstaluj program WSL na maszynie wirtualnej z systemem Windows (oggXServer), aby protokół SSH mógł służyć do nawiązywania połączenia z maszyną wirtualną Oracle (oggVM). Możesz również użyć innych narzędzi SSH, takich jak putty, aby nawiązać połączenie.

    PS C:\Users\azureuser> wsl --install -d Ubuntu
    

    Zrzut ekranu przedstawiający sposób instalowania programu WSL na maszynie wirtualnej z systemem Windows.

  4. Musisz pobrać klucz prywatny dla logowania SSH na serwerze oggXServer z maszyny oggVM. Po pobraniu klucza użyj tego klucza (przenieś ten klucz do głównego katalogu WSL ssh), aby się zalogować:

    $ ssh -i ~/.ssh/id_rsa.pem azureuser@10.0.0.4
    

    Zrzut ekranu przedstawiający sposób aktualizowania klucza SSH.

  5. Połącz maszynę wirtualną Oracle z prywatnym adresem IP przy użyciu protokołu SSH.

    Zrzut ekranu przedstawiający sposób uzyskiwania prywatnego adresu IP.

Tworzenie bazy danych Oracle

Teraz powinno być możliwe zalogowanie się do maszyny wirtualnej Oracle na maszynie wirtualnej z systemem Windows X (oggXServer) przy użyciu protokołu SSH. Wykonaj następujące kroki, aby utworzyć bazę danych Oracle.

  1. Użyj protokołu SSH, aby zalogować się do maszyny wirtualnej Oracle (oggVM).

    $ chmod 400 ~/.ssh/oggVM.pem
    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Zmień użytkownika na oracle.

    $ sudo su - oracle
    
  3. 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
    
  4. Ustawianie zmiennych ORACLE_SID i LD_LIBRARY_PATH

    $ export ORACLE_SID=cdb1
    $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    
  5. Dodaj ORACLE_SID i LD_LIBRARY_PATH do pliku ~/.bashrc, aby te ustawienia były zapisywane na potrzeby przyszłych logowań. zmienna ORACLE_HOME 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
    
  6. Uruchamianie odbiornika Oracle

    $ lsnrctl start
    

Do tej pory baza danych Oracle została utworzona. Aby włączyć usługę Oracle CDC for GoldenGate, należy włączyć dziennik archiwum. Wykonaj następujące kroki, aby włączyć tę funkcję.

  1. Nawiązywanie połączenia z programem sqlplus:

    $ sqlplus / as sysdba
    
  2. Włącz dziennik archiwum za pomocą następującego polecenia. Wykonaj następujące polecenia jeden po drugim:

    SQL> SELECT log_mode FROM v$database;
    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    
  3. Włącz rejestrowanie wymuszone i replikację GoldenGate i upewnij się, że istnieje co najmniej jeden plik dziennika. Wykonaj następujące polecenia jeden po drugim:

    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;
    

Instalowanie programu Oracle GoldenGate Core

W tej sekcji dowiesz się, jak pobrać aplikację Oracle GoldenGate Core i przenieść ją do maszyny wirtualnej Oracle (oggVM) i pobrać ją. Wszystkie te kroki są wykonywane na maszynie wirtualnej z systemem Windows X (oggXServer).

Pobieranie i przenoszenie aplikacji Oracle GoldenGate Core do maszyny wirtualnej

  1. Otwórz protokół RDP maszyny wirtualnej z systemem Windows serwera X (oggXServer) i pobierz Oracle GoldenGate 21.3.0.0.0 for Oracle on Linux x86-64 z Oracle Golden Gate na maszynie wirtualnej z systemem Windows (oggXServer).

  2. Przenieś pobrany plik zip do maszyny wirtualnej Oracle (oggVM) przy użyciu protokołu Secure Copy Protocol (SCP) na maszynie wirtualnej X serwera systemu Windows (oggXServer).

    $ scp -i ~/.ssh/oggVM.pem 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip azureuser@10.0.0.4:~/
    
  3. Aby zainstalować aplikację Oracle GoldenGate core z interfejsem GUI, aplikacja Xming jest wymagana do zainstalowania na serwerze oggXServer. Pobierz Xming X Server dla systemu Windows do serwera ggXServer i zainstaluj ze wszystkimi opcjami domyślnymi.

    • Upewnij się, że nie wybrano opcji Uruchom na końcu instalacji
    • Uruchom aplikację "XLAUNCH" z menu Start.
  4. Ukończ konfigurację, uruchamiając aplikację XLAUNCH z menu Start. Upewnij się, że wybrano pozycję Brak kontroli dostępu.

Instalowanie aplikacji Oracle GoldenGate Core na maszynie oggVM

Wszystkie operacje w tej sekcji są wykonywane na maszynie wirtualnej Oracle (oggVM). Dlatego użyj logowania SSH do tej maszyny wirtualnej i wykonaj następujące kroki, aby go zainstalować.

  1. Nawiąż połączenie z maszyną oggVM przy użyciu protokołu SSH.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Przenieś przesłany plik zip do katalogu domowego Oracle.

    $ sudo su -
    $ mv /home/azureuser/213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip /home/oracle/
    
  3. Rozpakuj pliki (zainstaluj program do rozpakowywania, jeśli jeszcze nie zainstalowano).

    $ yum install unzip
    $ cd /home/oracle/
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Zmień uprawnienia.

    $ chown -R oracle:oinstall fbo_ggs_Linux_x64_Oracle_shiphome/
    $ exit
    
  5. Teraz rozpocznijmy instalację oracle GoldenGate Core. Prywatny adres IP w adresie "DISPLAY=10.0.0.5:0.0" to prywatny adres IP serwera OggXServer.

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

    Powinieneś zobaczyć, że ten instalator otworzył serwer Xming.

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

  7. Wybierz ścieżkę instalacji oprogramowania jako /u01/app/oggcore, upewnij się, że wybrano opcję Start Manager i wybierz pozycję Dalej, aby kontynuować.

  8. Wybierz pozycję Zainstaluj w kroku podsumowania.

  9. Wybierz opcję Zamknij w ostatnim kroku.

Teraz podstawowa aplikacja Oracle GoldenGate została pomyślnie zainstalowana na maszynie wirtualnej Oracle (oggVM).

Konfigurowanie bazy danych Oracle dla OGG i OGG Extract w celu wyodrębnienia danych CDC

Po zainstalowaniu aplikacji Oracle GoldenGate core można ją skonfigurować do wyodrębniania danych oracle CDC. Wykonaj następujące kroki, aby skonfigurować Extract. Wszystkie operacje w tej sekcji są nadal wykonywane na maszynie wirtualnej Oracle (oggVM) z połączeniem SSH.

Przygotowywanie bazy danych do wyodrębnienia

  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ąć i, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku, a następnie nacisnąć Esc, :wq 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 właściciela i użytkownika Golden Gate.

    $ 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. Utwórz konto użytkownika Golden Gate ggtest.

    $ cd /u01/app/oggcore
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER ggtest identified by ggtest DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO ggtest;
    SQL> ALTER USER ggtest QUOTA 100M on USERS;
    SQL> connect ggtest/ggtest@pdb1
    SQL> @demo_ora_create
    SQL> @demo_ora_insert
    SQL> select * from TCUSTMER;
    SQL> select * from TCUSTORD;
    SQL> EXIT;
    

Powinny być widoczne dwie tabele (TCUSTMER i TCUSTORD), a dwa rekordy są wstawiane w każdej z dwóch tabel.

Konfiguruj i włącz wyodrębnianie

  1. Skonfiguruj plik parametru wyodrębniania dla Oracle GoldenGate Extract.

    $ sudo su – oracle
    
  2. Upewnij się, że $TNS_ADMIN jest ustawiona w ~/.bashrc. Jeśli nie, ustaw go jako: export TNS_ADMIN=$ORACLE_HOME/network/admin w ~/.bashrc. Uruchom polecenie source ~/.bashrc, aby zaczęły obowiązywać.

    $ cd /u01/app/oggcore
    $ ./ggsci
    GGSCI> DBLOGIN USERID ggtest@pdb1
    
    Successfully logged into database  pdb1
    
    GGSCI> ADD SCHEMATRANDATA pdb1.ggtest
    
    2025-01-04 15:57:42  INFO    OGG-01788  SCHEMATRANDATA has been added on schema "ggtest".
    2025-01-04 15:57:42  INFO    OGG-01976  SCHEMATRANDATA for scheduling columns has been added on schema "ggtest".
    2025-01-04 15:57:42  INFO    OGG-10154  Schema level PREPARECSN set to mode NOWAIT on schema "ggtest".
    
    GGSCI> EDIT PARAMS EXT1
    
    EXTRACT EXT1
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.4, MGRPORT 7809
    RMTTRAIL ./dirdat/rt
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    TABLE pdb1.ggtest.TCUSTMER;
    TABLE pdb1.ggtest.TCUSTORD;
    
  3. Wyciąg z rejestru -- zintegrowany wyciąg.

    GGSCI> dblogin userid C##GGADMIN@cdb1
    
    Successfully logged into database CDB$ROOT.
    
    GGSCI> REGISTER EXTRACT EXT1 DATABASE CONTAINER(pdb1)
    
    2025-01-04 16:04:58  INFO    OGG-02003  Extract group EXT1 successfully registered with database at SCN 2147164.
    
    GGSCI> exit
    
  4. Ustaw wyodrębnianie punktów kontrolnych i rozpocznij wyodrębnianie w czasie rzeczywistym.

    GGSCI> ADD EXTRACT EXT1, INTEGRATED TRANLOG, BEGIN NOW
    GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT EXT1, MEGABYTES 10
    
    RMTTRAIL added.
    
    GGSCI> START EXTRACT EXT1
    
    Sending START request to MANAGER ...
    EXTRACT EXT1 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
    
  5. Test dymny dla skonfigurowanego wyciągu.

    1. Zaloguj się do bazy danych przy użyciu konta testowego i wstaw rekord do tabeli:

      $ sqlplus ggtest
      
      SQL> select * from TCUSTORD;
      SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-JAN-25'),'CYCLE',400,16000,1,102);
      SQL> COMMIT;
      SQL> EXIT;
      
    2. Sprawdź transakcję odebraną przez Golden Gate (Uwaga: łączna wartość wstawiania):

      $ cd /u01/app/oggcore
      $ ./ggsci
      GGSCI> STATS EXT1
      
      Sending STATS request to Extract group EXT1 ...
      Start of statistics at 2025-01-04 16:12:16.
      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.GGTEST.TCUSTORD to PDB1.GGTEST.TCUSTORD:
      *** Total statistics since 2025-01-04 16:11:02 ***
          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 2025-01-04 16:11:02 ***
          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 2025-01-04 16:11:02 ***
          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 2025-01-04 16:11:02 ***
          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.
      

Zainstaluj Oracle GoldenGate Big Data

Dane big data Oracle GoldenGate replikują wyodrębnione dane do żądanej procedury obsługi (miejsca docelowego). W tym samouczku program obsługi jest tematem platformy Kafka. W tej sekcji przedstawiono instrukcje pobierania potrzebnych pakietów oprogramowania i ich zainstalowania.

Pobieranie wymaganych pakietów oprogramowania

Maszyna wirtualna z systemem Windows (oggXServer) jest nadal używana do pobierania tych pakietów oprogramowania i przenoszenia ich do maszyny wirtualnej Oracle (oggVM).

  1. Pobierz plik OGG for big data (Oracle GoldenGate for Big Data 21.4.0.0.0 w systemie Linux x86-64) z witryny Oracle GoldenGate Downloads.

  2. Pobierz pakiet Kafka (kafka_2.13-3.9.0.tgz).

  3. Pobierz zestaw SDK java (jdk-8u202-linux-x64.tar.gz.

  4. Użyj polecenia SCP w programie WSL, aby przenieść je na maszynę wirtualną Oracle:

    $ scp -i ~/.ssh/oggVM.pem kafka_2.13-3.9.0.tgz jdk-8u202-linux-x64.tar.gz 214000_ggs_Linux_x64_BigData_64bit.zip azureuser@10.0.0.4:~/
    

Instalowanie trzech pakietów oprogramowania

Aby zainstalować trzy pakiety oprogramowania, pobierz je do poszczególnych folderów i uzyskaj odpowiednie zmienne środowiskowe skonfigurowane. Wszystkie operacje w tej sekcji są wykonywane na maszynie wirtualnej Oracle (oggVM). Dlatego użyj logowania SSH do tej maszyny wirtualnej i wykonaj następujące kroki, aby je zainstalować.

  1. Nawiąż połączenie z maszyną oggVM przy użyciu protokołu SSH.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Przenieś te pakiety do katalogu domowego Oracle.

    $ sudo su –
    $ mv /home/azureuser/214000_ggs_Linux_x64_BigData_64bit.zip /home/azureuser/kafka_2.13-3.9.0.tgz /home/azureuser/jdk-8u202-linux-x64.tar.gz /home/oracle/
    $ exit
    
  3. Przejdź do użytkownika oracle i przejdź do katalogu macierzystego, aby przygotować poszczególne foldery.

    $ sudo su – oracle
    $ mkdir kafka java oggbd
    $ mv 214000_ggs_Linux_x64_BigData_64bit.zip oggbd/
    $ mv jdk-8u202-linux-x64.tar.gz java/
    $ mv kafka_2.13-3.9.0.tgz kafka
    
  4. Przejdź do każdego pojedynczego folderu i pobierz wyodrębniony pakiet.

    $ cd java
    $ tar -xvf jdk-8u202-linux-x64.tar.gz
    $ cd ../kafka
    $ tar -xvf kafka_2.13-3.9.0.tgz
    $ cd ../oggbd
    $ mkdir /u01/app/oggbd
    $ tar -xvf ggs_Linux_x64_BigData_64bit.tar -C /u01/app/oggbd
    
  5. Skonfiguruj zmienne środowiskowe dla języka JAVA.

    $ export JAVA_HOME=/home/oracle/java/jdk1.8.0_202
    $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$JAVA_HOME/lib:/$JAVA_HOME/jre/lib/amd64/server
    

Skonfiguruj Oracle GoldenGate Big Data, aby replikować dane CDC do punktu końcowego Kafka usługi Eventstream.

W tej sekcji przedstawiono, jak skonfigurować Oracle GoldenGate Big Data do replikacji danych CDC wyodrębnionych w poprzedniej sekcji do punktu końcowego Kafka Eventstream.

Przygotuj punkt końcowy Eventstream Kafka

Zgodnie ze zwykłymi procedurami tworzenia strumienia zdarzeń oraz konfiguracji niestandardowego źródła punktu końcowego, aby uzyskać informacje o punkcie końcowym platformy Kafka do późniejszego wykorzystania, zobacz Dodaj niestandardowy punkt końcowy lub niestandardowe źródło aplikacji do strumienia zdarzeń.

Zrzut ekranu pokazujący, że niestandardowe źródło punktu końcowego zostało pomyślnie utworzone.

Konfiguracja repliki dla Oracle GoldenGate Big Data

Wszystkie operacje w tej sekcji są wykonywane na maszynie wirtualnej Oracle (oggVM). Dlatego użyj logowania SSH do tej maszyny wirtualnej i wykonaj następujące kroki, aby go skonfigurować.

  1. Połącz się z oggVM za pomocą SSH, jeśli utraciłeś połączenie po poprzedniej sekcji.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    $ sudo su - oracle
    
  2. Przejdź do folderu, w którym został wyodrębniony pakiet Oracle GoldenGate Big Data, i upewnij się, że wymagane foldery są utworzone.

    $ cd /u01/app/oggbd
    $ ./ggsci
    GGSCI> CREATE SUBDIRS
    GGSCI> EDIT PARAMS MGR
    
    PORT 7801
    
    GGSCI> START MGR
    GGSCI> INFO ALL
    
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING
    
    GGSCI> EXIT
    
  3. Skopiuj pliki konfiguracji szablonu programu obsługi platformy Kafka.

    $ cp AdapterExamples/big-data/kafka/* dirprm/
    
  4. Otwórz plik rkafka.prm i zmień nazwę schematu MAP/TARGET zgodnie z nazwą schematu w źródłowej bazie danych.

    $ vim dirprm/rkafka.prm
    
    REPLICAT rkafka
    TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props
    REPORTCOUNT EVERY 1 MINUTES, RATE
    GROUPTRANSOPS 10000
    MAP pdb1.ggtest.*, TARGET pdb1.ggtest.*;
    
  5. Dodaj replikę przy użyciu następującego polecenia w poleceniu ./ggsci. Upewnij się, że replika to ta zdefiniowana w kroku wyodrębniania.

    $ ./ggsci
    GGSCI> ADD REPLICAT rkafka, exttrail /u01/app/oggcore/dirdat/rt
    GGSCI> EXIT
    
  6. Otwórz plik props dla Apache Kafka i zmień gg.classpath na odpowiednią ścieżkę katalogu instalacji w sekcji #Sample gg.classpath dla Apache Kafka. Wprowadź również nazwę tematu platformy Kafka, która pochodzi ze źródła niestandardowego punktu końcowego usługi Eventstream.

    $ vim dirprm/kafka.props
    
    gg.handlerlist=kafkahandler
    gg.handler.kafkahandler.type=kafka
    gg.handler.kafkahandler.kafkaProducerConfigFile=custom_kafka_producer.properties
    #The following resolves the topic name using the fixed topic which is from eventstream
    gg.handler.kafkahandler.topicMappingTemplate={YOUR.TOPIC.NAME}
    #The following selects the message key using the concatenated primary keys
    #A null Kafka message key distributes to the partitions on a round-robin basis
    gg.handler.kafkahandler.keyMappingTemplate=${null}
    #gg.handler.kafkahandler.schemaTopicName=mySchemaTopic
    gg.handler.kafkahandler.blockingSend=false
    gg.handler.kafkahandler.includeTokens=false
    gg.handler.kafkahandler.mode=op
    #gg.handler.kafkahandler.metaHeadersTemplate=${alltokens}
    gg.handler.kafkahandler.transactionsEnabled=false
    gg.handler.kafkahandler.format=json
    gg.handler.kafkahandler.format.metaColumnsTemplate=${objectname[table]},${optype[op_type]},${timestamp[op_ts]},${currenttimestamp[current_ts]},${position[pos]}
    #Sample gg.classpath for Apache Kafka
    gg.classpath=dirprm/:/var/lib/kafka/libs/*:/home/oracle/kafka/kafka_2.13-3.9.0/libs/*
    #Sample gg.classpath for HDP
    #gg.classpath=/etc/kafka/conf:/usr/hdp/current/kafka-broker/libs/*
    
    • Wartość {YOUR.TOPIC.NAME} można znaleźć na stronie uwierzytelniania kluczy SAS w karcie Kafka.

    Zrzut ekranu przedstawiający sposób pobierania nazwy tematu.

  7. Wprowadź zmiany w pliku custom_producer.properties, dodając ciąg połączenia Eventstream i hasło potrzebne do połączenia z Eventstream.

    $ vim dirprm/custom_kafka_producer.properties
    
    bootstrap.servers={YOUR.BOOTSTRAP.SERVER}
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config={YOUR.SASL.JASS.CONFIG};
    
    acks=1
    reconnect.backoff.ms=1000
    
    value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
    key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
    # 100KB per partition
    batch.size=16384
    linger.ms=0
    
    • Zastąp ciąg {YOUR.BOOTSTRAP.SERVER} wartością serwera Bootstrap , którą można skopiować ze strumienia zdarzeń.
    • Zastąp {YOUR.SASL.JASS.CONFIG} wartością SASL JASS config, którą można skopiować ze strumienia zdarzeń.

    Zrzut ekranu przedstawiający sposób pobierania klucza rozruchu i połączenia.

  8. Zaloguj się do wystąpienia GoldenGate i uruchom proces replikacji.

    $ ./ggsci
    GGSCI> START RKAFKA
    
    Sending START request to Manager ...
    Replicat group RKAFKA starting.
    
    GGSCI> INFO ALL
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    
    MANAGER     RUNNING
    REPLICAT    RUNNING     RKAFKA      00:00:00      00:53:17
    
    GGSCI> EXIT
    

Weryfikowanie całego przepływu E2E z oracle do eventstream

Aby zweryfikować cały przepływ E2E, zalogujmy się do bazy danych Oracle przy użyciu konta ggtest, aby wstawić kilka rekordów, a następnie przejdź do usługi Eventstream, aby sprawdzić, czy dane ze zmianami przepływają.

  1. Zaloguj się do bazy danych Oracle DB przy użyciu konta testowego, aby wstawić kilka nowych rekordów:

    $ sqlplus ggtest
    
    SQL> select * from TCUSTORD;
    SQL> INSERT INTO TCUSTORD VALUES ('MSFT',TO_DATE('3-JAN-25'),'M365',100,80000,2,104);
    SQL> INSERT INTO TCUSTMER VALUES ('TOM','SUNRISE SOFTWARE INC.','SAN FRANCISCO','CA');
    SQL> COMMIT;
    SQL> EXIT;
    
  2. Wyświetl podgląd danych, które wysłałeś przy użyciu tego źródła końcowego Kafka. Wybierz domyślny węzeł strumienia, czyli środkowy węzeł, który pokazuje nazwę strumienia zdarzeń.

    Zrzut ekranu pokazujący, jak wyświetlić podgląd danych w strumieniu zdarzeń.