1. 概述
1.1 版本
FineDataLink 版本 | 功能變動 |
---|---|
4.1 | - |
4.1.2 | 支持多租戶模式 |
4.2.2.3 | 數據管道源端适配 Oracle 21c |
CDC(Change Data Capture),即數據變更抓取,通過爲源端數據源開啓CDC,FineDataLink 數據管道可實現數據源的實時數據同步以及數據表的物理删除同步。
FineDataLink 數據管道支持 Oracle 的 XStream 和 LogMiner 兩種 CDC 模式,本章節主要介紹如何爲 Oracle 數據庫開啓 XStream 模式的 CDC 功能。
在執行同步任務前,需要參考本文在數據源中進行一些配置,爲後續的數據同步做好準備。
注:歸檔日志會占用較多的磁盤空間,若磁盤空間滿了會影響業務,請定期清理過期歸檔日志,詳情參見:清理Oracle归档日志
2. 前提條件
Oracle數據庫需具備OGG License 。
XStream的實現機制類似於PG的插槽,僅增量時,在設置管道任務時不支持「自定義任務起點」。
不支持采集二進制類型的字段,例如:BFILE、LONG、LONG RAW、RAW、BLOB、CLOB、NCLOB等。
确認是否爲數據管道同步任務所支持的版本。
數據管道支持讀取的 Oracle 數據庫版本如下表所示:
數據庫類型 | 支持數據庫版本 |
---|---|
Oracle | Oracle 10g、11g、12c、18c、19c、21c、Oracle RAC集群 |
命令提示符中輸入:sqlplus / as sysdba 進入數據庫操作界面。
同時可以查看到當前數據庫的版本,如下圖所示:
3. 數據來源爲 CDB 時 Oracle 數據庫權限配置
注:數據來源爲單實例時,參考本節内容進行操作。
3.1 開啓XStream
建議由數據庫管理員進行 CDC 功能的配置操作。
在命令行工具中執行以下命令連接到數據庫。
sqlplus / as sysdba
注:在實際使用過程中,可以有多種方式連接數據庫,此處以命令行方式爲例進行說明。
enable_goldengate_replication 可以控制是否允許使用 Golden Gate 來實現數據庫之間的複制功能。
使用命令查看是否已經開啓:

執行完成後再次查看,顯示 value爲 true 則開啓成功,如下圖所示:

3.2 開啓歸檔日志
建議由數據庫管理員進行 CDC 功能的配置操作。
參考 開啓 Archive Log 開啓歸檔日志。
3.3 建立XStream管理員并賦權
建議由數據庫管理員進行 CDC 功能的配置操作。
在連接的數據庫輸入以下命令:
xstream_adm_tbs爲XStream管理員用戶的表空間名,請根據實際規劃設置。
/opt/oracle/oradata/orcl/xstream_adm_tbs.dbf爲XStream管理員用戶的表空間文件,請根據實際規劃設置,此處的路徑爲 Oracle 安裝地址中存放 dbf 文件的位置。
xstrmadmin爲XStream管理員用戶名,請根據實際規劃設置。
password爲XStream管理員用戶密碼,請根據實際規劃設置。
“container => 'ALL'”僅當Oracle爲12c或以上版本并且開啓CDB時,才需要添加,否則删除此行内容。
判斷數據庫是否開啓 CDB 的語句如下,返回 true 或者 yes 則表示開啓了 CDB,返回 false 或者 No 表示未開啓:
然後爲 XStream 管理員賦權限,使用如下命令:
完成後即可使用命令檢查是否權限是否開啓成功:
例如此處授權的 XStream 管理員爲 c#roxy,則顯示其擁有了xstream權限,如下圖所示:
3.4 FineDataLink 工程配置
3.4.1 下載并解壓安裝 oracle client
下載地址:Oracle Instant Client Downloads
根據 FineDataLink 工程所在的操作系統下載對應的安裝包,并選擇 19.20 版本。
并将安裝包解壓安裝。
3.4.2 替換 JAR
将 xstream 和 ojdbc 兩個 JAR 包複制到 FineDataLink 安裝目錄:%finedatalink%/webapps/webroot/WEB-INF/lib中。
FineDataLink 部署在 Windows 系統:
将 oracle client 中的其他的文件複制到 %finedatalink%/jdk/jre/bin中,并重啓 FineDataLink 工程。
FineDataLink 部署在 Linux 系統:
将 oracle client 中的其他的文件複制到 %finedatalink%/jdk/jre/lib/amd64中。
然後重啓 FineDataLink 工程。
3.5 在 FineDataLink 中創建 Oracle 數據連接
由於 XStream 連接依賴了oci 連接,所以不能通過 thin 方式連接來同步。
因此數據連接 URL 需要改爲:
其中 localhost 爲 oracle 所在服務器 IP,PORT 爲端口、SID後需要寫數據庫名稱。
3.6 後續步驟
完成後即可配置管道任务。
4. 數據來源爲 PDB 時 Oracle 數據庫權限配置
4.1 開啓XStream
建議由數據庫管理員進行 CDC 功能的配置操作。
在命令行工具中執行以下命令連接到數據庫。
sqlplus / as sysdba
注:在實際使用過程中,可以有多種方式連接數據庫,此處以命令行方式爲例進行說明。
enable_goldengate_replication 可以控制是否允許使用 Golden Gate 來實現數據庫之間的複制功能。
使用命令查看是否已經開啓:

執行完成後再次查看,顯示 value爲 true 則開啓成功,如下圖所示:

4.2 開啓歸檔日志
建議由數據庫管理員進行 CDC 功能的配置操作。
參考 開啓 Archive Log 開啓歸檔日志。
4.3 在 CDB 中添加表空間
建議由數據庫管理員進行 CDC 功能的配置操作。
查詢表空間:
按照查詢的路徑添加 xstream 表空間:
xstream_adm_tbs 爲XStream管理員用戶的表空間名,請根據實際規劃設置。
/u01/app/oracle/oradata/fr/xstream_adm_tbs.dbf 爲XStream管理員用戶的表空間文件,請根據實際規劃設置,此處的路徑爲 oracle 安裝地址中存放 dbf 文件的位置。
4.4 在 PDB 中添加表空間
注:需保證 PDB 下有 xstream 表空間。
在 sqlplus 下使用命令查看當前 PDB 狀态,如下圖所示:
如果 PDB 表空間沒有開啓,則需要使用命令:
使用命令切換到 PDB 模式:
注:下面語法切換到了 ORCLPDB1 中。
在 PDB 模式下先查詢表空間:
如果未顯示有 xstream_adm_tbs 表空間,則需要添加:
xstream_adm_tbs 爲XStream管理員用戶的表空間名,請根據實際規劃設置。
/u01/app/oracle/oradata/fr/orclpdb1/xstream_adm_tbs.dbf 爲 XStream 管理員用戶的表空間文件,請根據實際規劃設置,此處的路徑爲 oracle 安裝地址中存放dbf文件的位置。注: PDB 表空間比 CDB 多一層。
4.5 爲用戶賦權
再返回 CDB下進行添加用戶和賦權操作。
使用命令:
然後使用命令賦權:
C##ROXY10 爲 XStream管理員用戶名,請根據實際規劃設置。
password爲XStream管理員用戶密碼,請根據實際規劃設置。
注:若在 sqlplus 執行語句,需要在 END;後加一個/,如下圖所示:
執行命令繼續賦權:
注:C##ROXY10 爲XStream管理員用戶的表空間名,請根據實際規劃設置。
然後執行命令,賦予建表權限:
執行後查詢是否還有建表權限:
此時可以正常建表。
如果需要插表、函數等權限,再繼續執行:
注:C##ROXY10 爲XStream管理員用戶的表空間名,請根據實際規劃設置。
然後即可使用命令檢查權限是否開啓成功:

4.5 FineDataLink 工程配置
參考本文 3.4 節進行配置。
4.6 在 FineDataLink 中創建 Oracle 數據連接
在創建數據連接時,需要将數據庫改爲 PDB 來源,如下圖所示:
4.7 後續操作
創建管道任務後,即可點擊數據源權限檢測,看到檢測成功,如下圖所示: