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
lubvim
, 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
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
Sprawdź nazwę i identyfikator subskrypcji, którego używasz, aby upewnić się, że jest ona poprawna:
$ az account show
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
Utwórz zasoby sieciowe wymagane w tym samouczku:
- 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"
- Utwórz sieciową grupę zabezpieczeń:
$ az network nsg create --resource-group esoggcdcrg --name oggVnetNSG
- 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
- 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
- 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
- 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
- Utwórz sieć wirtualną, która jest wykorzystywana przez maszyny wirtualne w tym samouczku:
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.
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>
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).
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
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
Połącz maszynę wirtualną Oracle z prywatnym adresem IP przy użyciu protokołu SSH.
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.
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
Zmień użytkownika na
oracle
.$ sudo su - oracle
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
Ustawianie zmiennych ORACLE_SID i LD_LIBRARY_PATH
$ export ORACLE_SID=cdb1 $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
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
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ę.
Nawiązywanie połączenia z programem sqlplus:
$ sqlplus / as sysdba
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;
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
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).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:~/
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.
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ć.
Nawiąż połączenie z maszyną oggVM przy użyciu protokołu SSH.
$ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
Przenieś przesłany plik zip do katalogu domowego Oracle.
$ sudo su - $ mv /home/azureuser/213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip /home/oracle/
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
Zmień uprawnienia.
$ chown -R oracle:oinstall fbo_ggs_Linux_x64_Oracle_shiphome/ $ exit
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.
Wybierz pozycję Oracle GoldenGate for Oracle Database 21c. Następnie wybierz pozycję Dalej, aby kontynuować.
Wybierz ścieżkę instalacji oprogramowania jako /u01/app/oggcore, upewnij się, że wybrano opcję Start Manager i wybierz pozycję Dalej, aby kontynuować.
Wybierz pozycję Zainstaluj w kroku podsumowania.
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
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) ) )
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;
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
Skonfiguruj plik parametru wyodrębniania dla Oracle GoldenGate Extract.
$ sudo su – oracle
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 poleceniesource ~/.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;
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
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
Test dymny dla skonfigurowanego wyciągu.
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;
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).
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.
Pobierz pakiet Kafka (kafka_2.13-3.9.0.tgz).
Pobierz zestaw SDK java (jdk-8u202-linux-x64.tar.gz.
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ć.
Nawiąż połączenie z maszyną oggVM przy użyciu protokołu SSH.
$ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
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
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
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
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ń.
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ć.
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
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
Skopiuj pliki konfiguracji szablonu programu obsługi platformy Kafka.
$ cp AdapterExamples/big-data/kafka/* dirprm/
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.*;
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
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.
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ń.
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ą.
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;
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ń.