Oracle RAC+ASM 數據庫實時同步

採用Beedup對某省交警數據庫實施數據同步,主庫環境Oracle RAC+ASM,內存64G,歷史數據19T,日增歸檔100G,從庫單實例環境,內存192G。

以下是項目實施過程遇到的主要問題:

1 歷史數據同步

啓用Beedup批量複製功能(通過數據庫鏈接主從庫直接複製表數據),但在複製BLOB表時由於表記錄數太多(6000萬)導致執行週期太長而失敗。嘗試Oracle導入導出方式(IMP/EXP),同樣由於記錄數太多而失敗。

擴展Beedup程序,增加全量數據斷點續傳功能,在複製BLOB表失敗後通過斷點分批同步數據最終完成所有表歷史數據同步。

       

 

2 實時增量同步

Beedup中指定日誌捕獲起點後開始從日誌文件中解析同步增量數據,但是同步延遲很大,難以滿足實時同步要求。

依次對主從服務器內存、網絡、IO進行分析,最終確定性能瓶頸在於主庫的歸檔讀取性能,Oracle RAC的2個實例歸檔位置指向不同的ASM磁盤組(+FRADG和+DATADG),而其中一個實例的歸檔與數據文件共用同一磁盤組(+DATADG),由於業務數據頻繁寫入,導致該磁盤組的歸檔讀取性能很低。

將2個實例的歸檔位置合併到同一磁盤組(+FRADG),實現業務數據IO獨立於歸檔IO。

歸檔位置合併後的日誌讀取性能大幅提升,原來導入1G數據需要7秒,而調整後不到3秒,雖然該值與測試環境性能(單實例操作系統存儲,導入1G日誌不到300ms)差距較大,但可以滿足每日100G新增日誌的同步。

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章