在本教學課程中,您將學習如何使用 Oracle GoldenGate (OGG) 擷取並複寫 Oracle 資料庫的 CDC(變更數據擷取)數據,通過 Eventstream 提供的自訂 Kafka 端點,將其複寫至 Microsoft Fabric 中的 Fabric Real-Time Intelligence。 此設定可讓您即時處理 Oracle CDC 數據,並讓它傳送至 Fabric 內的各種目的地,例如 Eventhouse、Reflex、衍生數據流或自定義端點目的地,以進行進一步分析。
在本教學課程中,您將:
- 建立 Oracle VM 和 Oracle 資料庫。
- 在 Oracle VM 上安裝 Oracle GoldenGate (OGG) 核心。
- 設定適用於 OGG 的 Oracle 資料庫和 OGG 擷取以擷取 CDC 數據。
- 在 Oracle VM 上安裝 Oracle GoldenGate (OGG) 巨量數據。
- 設定 OGG 巨量數據,將 CDC 數據復寫至 Eventstream 的 Kafka 端點。
- 驗證從 Oracle 到 Eventstream 的整個端對端流程。
先決條件
- 取得具有事件串流所在 參與者 或更高許可權的工作區存取權。
- 偏好的可支援環境:Windows、Linux 或 Azure Shell。
- 熟悉 unix 編輯器,例如
vi
或vim
,以及對 X Server 的基本瞭解。
建立 Oracle VM 和資料庫
本節提供使用 Azure CLI 命令來建立 Oracle 虛擬機,並在其中設定資料庫的指示。
建立 Oracle 虛擬機
開啟您慣用的終端機,然後使用
az login
命令登入您的 Azure 訂用帳戶。 然後遵循螢幕上的指示:$ az login
檢查您所使用的訂用帳戶名稱和識別碼,以確保其正確:
$ az account show
建立資源群組,以將本教學課程的所有 Azure 資源分組:
$ az group create --name esoggcdcrg --location eastus2
建立本教學課程所需的網路資源:
- 在本教學課程中建立用於虛擬機的虛擬網路(虛擬網路):
$ 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"
- 建立網路安全組 (NSG):
$ az network nsg create --resource-group esoggcdcrg --name oggVnetNSG
- 建立 NSG 規則以允許虛擬網路內的網路流量:
$ 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
- 建立 NSG 規則以允許 RDP 連線連線到 Windows VM。 它可用來從本機 Windows 電腦從遠端存取 Windows VM:
$ 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
- 建立 NSG 規則以拒絕所有輸入連線:
$ 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
- 將 NSG 指派給我們裝載伺服器的子網:
$ az network vnet subnet update --resource-group esoggcdcrg --vnet-name oggVNet --name oggSubnet1 --network-security-group oggVnetNSG
- 在本教學課程中建立用於虛擬機的虛擬網路(虛擬網路):
建立 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
建立及設定 X Server VM
若要建立 Oracle 資料庫,它需要使用 SSH 登入在上一個步驟中建立的虛擬機。 由於先前定義的 NSG 規則拒絕所有輸入連線,但允許虛擬網路內的連線和 RDP 3389 埠的連線,因此會建立一個 Windows 虛擬機以連接到 Oracle 虛擬機。 此 Windows 虛擬機也可用來裝載 X 伺服器,以在稍後在 Oracle VM 上安裝 GoldenGate 核心應用程式時接收圖形化安裝介面。
取代您的密碼並執行下列命令,以建立我們部署 X Server 的 Windows 工作站 VM。
$ 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>
建立之後,請移至 Azure 入口網站,從 oggXServer 資源下載 RDP 檔案,讓您可以使用它從遠端訪問此 Windows 計算機。 開啟 RDP 檔案,並使用您在建立 Windows VM 時指定的密碼 (oggXServer)。
在 Windows VM 上安裝 WSL (oggXServer),讓 SSH 可用來連線到 Oracle VM (oggVM)。 您也可以使用其他 SSH 工具,例如 putty 來連線。
PS C:\Users\azureuser> wsl --install -d Ubuntu
您必須從 oggVM 下載 ssh 登入 oggXServer 的私鑰。 下載金鑰之後,請使用此金鑰(將此金鑰移至您的 WSL 首頁 .ssh 目錄)來登入:
$ ssh -i ~/.ssh/id_rsa.pem azureuser@10.0.0.4
使用 SSH 將 Oracle VM 與其私人 IP 位址連線。
建立 Oracle 資料庫
現在,您應該能夠使用 SSH 登入 X 伺服器 Windows VM (oggXServer) 上的 Oracle VM。 請遵循下列步驟來建立 Oracle 資料庫。
使用 SSH 登入 Oracle VM (oggVM)。
$ chmod 400 ~/.ssh/oggVM.pem $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
將使用者變更為
oracle
。$ sudo su - oracle
使用下列命令建立資料庫。 此命令可能需要 30-40 分鐘才能完成。
$ 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
設定ORACLE_SID和LD_LIBRARY_PATH變數
$ export ORACLE_SID=cdb1 $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
將ORACLE_SID和LD_LIBRARY_PATH新增至 ~/.bashrc 檔案,以便儲存這些設定以供日後登入使用。 ORACLE_HOME變數應該已在 .bashrc 檔案中設定
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc $ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
啟動 Oracle 接聽程式
$ lsnrctl start
現在已建立 Oracle 資料庫。 若要啟用 Oracle CDC for GoldenGate,必須啟用封存記錄。 請遵循下列步驟來啟用它。
連接到 sqlplus:
$ sqlplus / as sysdba
使用下列命令啟用封存記錄。 逐一執行下列命令:
SQL> SELECT log_mode FROM v$database; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN;
啟用強制記錄和 GoldenGate 複寫,並確定至少有一個記錄檔存在。 逐一執行下列命令:
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;
安裝 Oracle GoldenGate Core
在本節中,您將瞭解如何下載 Oracle GoldenGate Core 應用程式,並傳輸至 Oracle VM (oggVM),並安裝它。 這些步驟都是在 X 伺服器 Windows VM 上執行(oggXServer)。
將 Oracle GoldenGate Core 應用程式下載並傳輸至 VM
開啟 X 伺服器視窗虛擬機器(oggXServer)的 RDP,然後從該 windows 虛擬機器(oggXServer)上的 Oracle Golden Gate 中下載
Oracle GoldenGate 21.3.0.0.0 for Oracle on Linux x86-64
。將下載的 zip 檔案通過安全複製協定(SCP)從 X 伺服器 Windows VM(oggXServer)傳輸至 Oracle VM(oggVM)。
$ scp -i ~/.ssh/oggVM.pem 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip azureuser@10.0.0.4:~/
若要使用 GUI 介面安裝 Oracle GoldenGate 核心應用程式,需要 Xming 應用程式才能安裝在 oggXServer 上。 下載 Xming X Server for Windows 至 ggXServer,並使用所有預設選項安裝。
- 確定您未在安裝結束時選取 [啟動]
- 從 [開始] 選單啟動 「XLAUNCH」 應用程式。
從 [開始] 功能表啟動 XLAUNCH 應用程式,以完成設定。 請務必選取 沒有存取控制。
在 oggVM 上安裝 Oracle GoldenGate Core 應用程式
本節中的所有作業都會在 Oracle VM (oggVM) 上執行。 因此,使用 SSH 登入此 VM,並遵循下列步驟來安裝它。
使用 SSH 連線到 oggVM。
$ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
將上傳的 zip 檔案移至 oracle home dir。
$ sudo su - $ mv /home/azureuser/213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip /home/oracle/
解壓縮檔案(如果尚未安裝,請安裝解壓縮公用程式)。
$ yum install unzip $ cd /home/oracle/ $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
變更權限。
$ chown -R oracle:oinstall fbo_ggs_Linux_x64_Oracle_shiphome/ $ exit
現在,讓我們啟動 Oracle GoldenGate Core 安裝。 'DISPLAY=10.0.0.5:0.0' 中的私人 IP 是 oggXServer 的私人 IP。
$ sudo su - oracle $ export DISPLAY=10.0.0.5:0.0 $ cd fbo_ggs_Linux_x64_Oracle_shiphome/Disk1 $ ./runInstaller
您應該會看到此安裝程式開啟 Xming 伺服器。
選取「Oracle GoldenGate for Oracle Database 21c」。 然後選取 [下一步] [下一步] 繼續。
選擇 [軟體安裝路徑] 作為 [/u01/app/oggcore],確定已選取 [開始管理員] 方塊,然後選取 [下一步] 繼續。
在摘要步驟中選取 [安裝]。
在最後一個步驟中選取 [關閉]。
現在,Oracle GoldenGate 核心應用程式已成功安裝在 Oracle VM (oggVM) 中。
設定適用於 OGG 和 OGG 擷取的 Oracle 資料庫以擷取 CDC 數據
安裝 Oracle GoldenGate 核心應用程式之後,即可設定為擷取 Oracle CDC 數據。 請遵循下列步驟來設定擷取。 本節中的所有作業仍會在具有 SSH 連線的 Oracle VM (oggVM) 上執行。
準備要擷取的資料庫
建立或更新 tnsnames.ora 檔案。
$ sudo su - oracle $ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
當vi編輯器開啟時,您必須按
i
切換至插入模式,然後複製並貼上檔案內容,然後按Esc
鍵,:wq
儲存盤案。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) ) )
建立 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;
建立 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;
您應該會看到建立兩個數據表(TCUSTMER 和 TCUSTORD),並在兩個數據表中插入兩筆記錄。
設定並啟用擷取
設定 Oracle GoldenGate Extract 的擷取參數檔案。
$ sudo su – oracle
確定
$TNS_ADMIN
是在~/.bashrc
中設定。 如果沒有,請將它設定為:~/.bashrc
中的export TNS_ADMIN=$ORACLE_HOME/network/admin
。 然後執行命令source ~/.bashrc
使其生效。$ 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;
登記文件提取—綜合摘錄。
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
設定擷取檢查點並啟動即時擷取。
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
已設定提取的煙霧測試。
使用測試帳戶登入 DB,並將記錄插入資料表:
$ 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;
檢查由金門選擇的交易(請注意總插入值):
$ 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.
安裝 Oracle GoldenGate 巨量數據
Oracle GoldenGate Big Data會將擷取的數據複製到所需的處理程序(目的地)。 在本教學課程中,處理程式是 Kafka 主題。 在本節中,系統會引導您下載所需的軟體套件,並加以安裝。
下載必要的軟體套件
Windows VM (oggXServer) 仍然用來下載這些軟體套件,並將其傳輸至 Oracle VM (oggVM)。
從 Oracle GoldenGate 下載適用於巨量數據的 OGG(適用於 Linux x86-64 的 Oracle GoldenGate for Big Data 21.4.0.0.0)。
使用 WSL 中的 SCP 命令將它們傳輸到 Oracle VM:
$ 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:~/
安裝三個軟體套件
若要安裝三個軟體套件,請將它們擷取至個別資料夾,並設定對應的環境變數。 本節中的所有作業都會在 Oracle VM (oggVM) 上執行。 因此,請使用 SSH 登入此 VM,並遵循下列步驟來安裝它們。
使用 SSH 連線到 oggVM。
$ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
將這些套件移至 oracle home dir。
$ 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
變更為 oracle 使用者,然後移至主目錄以準備個別資料夾。
$ 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
移至每個個別資料夾,並擷取套件。
$ 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
設定 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
設定 Oracle GoldenGate 巨量數據,將 CDC 數據復寫至 Eventstream 的 Kafka 端點
在本節中,您會引導您將 Oracle GoldenGate 巨量數據設定為將上一節中擷取的 CDC 數據復寫至 Eventstream 的 Kafka 端點。
準備 Kafka Eventstream 端點
遵循 Eventstream 及其自訂端點來源建立的一般建立程式,以取得 Kafka 端點資訊以供日後使用,請參閱 將自定義端點或自定義應用程式來源新增至 eventstream。
設定 Oracle GoldenGate Big Data 的複製進程
本節中的所有作業都會在 Oracle VM (oggVM) 上執行。 因此,請使用 SSH 登入此 VM,並遵循下列步驟進行設定。
如果您在上一節之後遺失連線,請使用 SSH 連線至 oggVM。
$ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4 $ sudo su - oracle
前往 Oracle GoldenGate 巨量數據套件已解壓縮的資料夾,並確認所需的資料夾已經建立。
$ 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
複製 Kafka 處理程式範本組態檔。
$ cp AdapterExamples/big-data/kafka/* dirprm/
開啟 rkafka.prm 檔案,並根據源資料庫的架構名稱變更 MAP/TARGET 架構名稱。
$ 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.*;
在 ./ggsci 命令中使用下列命令新增複寫。 請確定副本應該是擷取步驟中定義的副本。
$ ./ggsci GGSCI> ADD REPLICAT rkafka, exttrail /u01/app/oggcore/dirdat/rt GGSCI> EXIT
開啟 Kafka props 檔案,並將 gg.classpath 變更為 Apache Kafka #Sample gg.classpath 下的正確 kafka 安裝目錄路徑。 此外,也填入來自 Eventstream 自定義端點來源的 Kafka 主題名稱。
$ 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/*
- 您可以在 [Kafka] 索引標籤底下的 [SAS 密鑰驗證] 頁面找到 {YOUR.TOPIC.NAME} 值:
變更 custom_producer.properties 檔案,新增連線至 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
- 取代 {YOUR。啟動。SERVER} 具有 Bootstrap 伺服器 值,您可以從事件串流複製女巫。
- 請將 {YOUR.SASL.JASS.CONFIG} 替換為從您的事件流中複製的 SASL JASS 配置 值。
登入您的 GoldenGate 實例,然後啟動複寫程式。
$ ./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
驗證從 Oracle 到 Eventstream 的整個 E2E 流程
若要驗證整個 E2E 流程,讓我們使用 ggtest 帳戶登入 Oracle 資料庫,以插入一些記錄,然後移至 Eventstream 來檢查變更數據流。
使用測試帳戶登入 Oracle DB 以插入一些新記錄:
$ 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;
預覽您使用此 Kafka 端點來源傳送的數據。 選取預設數據流節點,這是顯示事件串流名稱的中間節點。