2.3 Sota系統構架
Bus :總線模塊
Planner :作業管理和調度模塊
Sucker :日誌抽取模塊
Parser : 交易分析模塊
Loader : 交易裝載模塊
沃信數據同步工具SOTA不需要在生產系統和備份系統上安裝任何程序,只需要一個具有操作相應數據權限的數據庫連接即可正常工作,不會影響生產系統和備份系統的可用性,只與生產系統和備份系統保留必須的交互,對生產系統的性能影響也非常小。
沃信數據同步工具SOTA的抽取組件從源數據庫的聯機日誌(Online Log)和歸檔日誌(Archive Log)中捕獲數據庫日誌(Redo Log)記錄,再通過分析組件對獲取的Redo Log進行分析,獲取完整的交易記錄和針對每個數據庫表操作的SQL語句,然後通過裝載組件在目標數據庫中執行該SQL語句,同步數據庫變更。
2.3.1 oBus
oBus是用於存取數據,把數據信息在各個模塊裏進行交換,減少各個模塊的拓樸結構構成星型拓樸。oBus位於星型拓樸結構的中心,其他各個模塊在它的周圍,它們是通過oBus進行信息傳遞而不是它們之間相互傳遞。oBus沒有配置文件,它使用默認的配置文件,使用默認的端口號爲6379。
2.3.2 Planner
Planner對應的模塊名稱爲oPlanner.
oPlanner根據定義的作業內容來控制和調度Sucker/Parser/Loader各個進程。
oPlanner的作用:
· 管理作業
· 控制license
· 控制組件
· 調度組件
管理作業包括創建作業,更改作業,刪除作業,啓動作業,關閉作業。
2.3.3 Sucker
oSucker程序以儘可能快的方式來讀取源端oracle數據庫日誌文件內容,包含DDL和DML的日誌。
2.3.4 Parser
oParser 組件是分析數據程序,它是被oSucker程序驅動的。oParser也是按照批次來運行程序。oParser根據對錶操作的交易作爲一個事務把它從oSucker提取出來的日誌信息進行分析,分析後的數據操作再分成兩部分:提交事務和未提交事務。
提交的事務經分析程序後保存到相對應表的索引文件中。
2.3.5 Loader
oLoader組件是用於從對源數據庫的操作裝載到目標數據庫下。OLoader組件由planner驅動。
2.4 目錄說明
2.4.1 Sota目錄
目錄 | 文件名 | 文件說明 |
sota/bin | oSucker oParser oLoader oPlanner oLic sotaCC | oSucker是sota系統的抽取數據日誌程序 oParser是sota系統的分析數據程序 oLoader是數據裝載同步遷移程序 oPlanner是管理和調度oSucker/oParser/Loader的程序,oLic是使用sota系統的認證程序 sotaCC是字符界面管理sota系統程序 |
sota/conf | oPlanner.cfg
License.dat | oPlanner.cfg文件是關於配置sota系統服務端的IP和端口信息及工作路徑。 License.dat文件無須配置是運行oLic程序後自動產生,決定使用者使用該SOTA系統的程度和時間。 |
sota/lib | ReadMe | 說明文件 |
sota/run | JobList.xml
JobLoadFilter.xml | JobList.xml 文件是關於作業信息的文件,在該文件中可以通過添加作業名來實現創建作業,刪除作業名來實現刪除作業操作,更改作業名來完成更改作業操作。 JobLoadFilter.xml是作業裝載同步配置文件。 |
sota/log | oPlanner.log
oPlanner.log.old | 各有5M的空間用來存放運行程序日誌文件,當oPlanner.log存滿了之後,就將oPlanner.log的內容轉到oPlanner.log.old中,繼續存放新文件。 |
2.4.2 sotaData目錄
sotaData文件可以供用戶放多個作業(SOTA將數據從源庫同步到目的庫的過程抽象爲一個作業),用來動態的存放數據文件。將它指向其他的磁盤陣列時 ,它可以不消耗本地資源。
目錄 | 文件名 | 文件說明 |
sotaData/作業名/batData | | |
sotaData/作業名/conf | E_Config.xml Filter.xml P_Config.xml L_Config_**.xml | 存放作業的相關配置信息 |
sotaData/作業名/err | | 存放的是出錯誤或着裝載失敗的信息 |
sotaData/作業名/idxData | | 存放Tabsum的信息 |
sotaData/作業名/log | | 存放oSucker/oParser/Loader運行的日誌信息 |
sotaData/作業名/metaData | | 存放表結構信息 |
sotaData/作業名/rowData | | |
sotaData/作業名/run | | 存放運行之中產生的文件(如斷點信息等) |
sotaData/作業名/txnData | | 存放tabLoad_XX(備庫)的信息 |