濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解MySQL實時同步到Oracle解決方案

詳解MySQL實時同步到Oracle解決方案

熱門標簽:外呼系統(tǒng)打電話上限是多少 電話外呼系統(tǒng)改號 啥是企業(yè)400電話辦理 百應(yīng)電話機器人優(yōu)勢 曲靖移動外呼系統(tǒng)公司 南昌三維地圖標注 地圖標注費用是多少 武漢網(wǎng)絡(luò)外呼系統(tǒng)服務(wù)商 怎樣在地圖標注銷售區(qū)域

1 需求概述

將MySQL5.6生產(chǎn)庫多張表的數(shù)據(jù)實時同步到Oracle11g數(shù)據(jù)倉庫,MySQL歷史數(shù)據(jù)700G,平均每天產(chǎn)生50G左右日志文件,MySQL日志空間50G,超過后滾動刪除日志文件。整個同步過程不可影響MySQL業(yè)務(wù)操作。

2 技術(shù)原理

采用靈蜂數(shù)據(jù)集成軟件BeeDI將MySQL數(shù)據(jù)實時同步到Oracle,通過ETL全量同步歷史數(shù)據(jù),通過日志解析方式實時同步增量數(shù)據(jù)。

受限于日志空間,如果將所有歷史數(shù)據(jù)一次性同步,需要的時間會超過一天,全量同步過程產(chǎn)生的日志會被刪除,造成實時日志解析任務(wù)數(shù)據(jù)缺失,所以需要分批同步歷史數(shù)據(jù),基本操作如下:

a 全量同步部分表。

b 在實時日志解析任務(wù)中添加已全量同步完成的表并啟動任務(wù),當MySQL和Oracle兩端對應(yīng)表數(shù)據(jù)一致時,停止日志解析任務(wù)。

重復(fù)上面a和b步驟,直到所有表都加入實時日志解析任務(wù)。

3 MySQL環(huán)境配置

3.1 創(chuàng)建用戶

在主庫創(chuàng)建同步用戶,以用戶sync為例,創(chuàng)建用戶及權(quán)限分配語句如下:

CREATE USER 'sync'@'%' IDENTIFIED BY 'xxxxx';

GRANT SELECT,PROCESS,SUPER, REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'sync'@'%';

3.2 啟用BinLog

查詢主庫日志開啟狀態(tài)及日志記錄格式:

show variables like 'log_bin';

show variables like "%binlog_format%";

如果日志狀態(tài)為OFF或日志記錄格式不為ROW,則編輯my.ini文件,設(shè)置以下項目內(nèi)容:

log-bin="xxxxxx" --開啟日志

binlog_format="ROW" --日志記錄格式

4 BeeDI同步操作

4.1 配置全量同步任務(wù)

在BeeDI中新建ETL作業(yè),在【ETL模板屬性】對話框的【映射屬性】中設(shè)置【LOB裝載】為綁定存儲。

【LOB裝載】用于指定Oracle LOB數(shù)據(jù)載入方式,定位存儲通過定位LOB指針更新LOB內(nèi)容,綁定存儲通過參數(shù)綁定方式更新LOB內(nèi)容。

為優(yōu)化數(shù)據(jù)抽取性能,建議在抽取組件的【選項】對話框中設(shè)置【異步】抽取模式。

為優(yōu)化數(shù)據(jù)加載性能,建議在裝載組件的【選項】對話框中選擇【批量】裝載模式。

全量同步任務(wù)配置完成如下

按照以上方式,創(chuàng)建多個ETL作業(yè),其中每個ETL作業(yè)對應(yīng)一張同步表。

4.2 配置實時日志解析任務(wù)

實時解析任務(wù)使用一個腳本作業(yè),在其中指定所有要同步的表,腳本代碼如下

4.3 執(zhí)行全量同步任務(wù)

選中要執(zhí)行的全量同步作業(yè),點擊工具欄【啟動】按鈕,可以同時啟動多個全量同步作業(yè),只要生產(chǎn)庫資源及BeeDI所在機器資源充足。

4.4 執(zhí)行實時日志解析任務(wù)

當所有全量同步作業(yè)運行結(jié)束后,編輯實時任務(wù)腳本,在變量cdc_tables中指定已經(jīng)全量同步完成的表;在inquireLog函數(shù)參數(shù)中設(shè)置日志捕獲起始點,可將最先運行的全量同步作業(yè)的啟動時間指定為日志捕獲起始點,日志捕獲點只需在任務(wù)初次執(zhí)行時設(shè)置一次,以后任務(wù)運行將自動管理日志捕獲點。

在【調(diào)度窗口】通過快捷菜單【添加】把將要執(zhí)行的實時日志解析作業(yè)載入,選中調(diào)度窗口的實時作業(yè),點擊工具欄【定時】按鈕,設(shè)置按秒定時,運行周期1秒。

實時任務(wù)運行后,在日志窗口輸出MySQL數(shù)據(jù)庫日志解析信息,包含每分鐘讀取的日志記錄,最近解析日志時間點。

4.5 添加更多同步表

當實時任務(wù)對應(yīng)的作業(yè)狀態(tài)頻繁出現(xiàn)定時圖標時,表明任務(wù)進入實時狀態(tài),此時MySQL源表和Oracle目標表數(shù)據(jù)一致,停止實時日志解析任務(wù),配置運行其它表的全量同步任務(wù)(參考4.1和4.3)。當全量任務(wù)結(jié)束后,編輯實時日志解析任務(wù),增加已全量同步完成的其他表,啟動實時任務(wù)(參考4.2和4.4)。

5 效驗同步數(shù)據(jù)一致性

依次在源庫和目標庫執(zhí)行 select count(*) from [表] 比較表記錄數(shù)是否相等。

依次在源庫和目標庫執(zhí)行 select sum([數(shù)值列]) from [表] 比較指定字段算術(shù)和是否相等。

到此這篇關(guān)于詳解MySQL實時同步到Oracle解決方案的文章就介紹到這了,更多相關(guān)MySQL實時同步到Oracle內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Mysql和Oracle之間的誤區(qū)
  • SpringBoot多數(shù)據(jù)庫連接(mysql+oracle)的實現(xiàn)
  • MySQL版oracle下scott用戶建表語句實例
  • mysql、oracle默認事務(wù)隔離級別的說明
  • MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對應(yīng)關(guān)系說明
  • mysql和oracle的區(qū)別小結(jié)(功能性能、選擇、使用它們時的sql等對比)
  • mysql類似oracle rownum寫法實例詳解
  • 淺談Mysql、SqlServer、Oracle三大數(shù)據(jù)庫的區(qū)別
  • Oracle更換為MySQL遇到的問題及解決

標簽:隨州 滄州 甘南 荊州 吉林 資陽 黑河 錦州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解MySQL實時同步到Oracle解決方案》,本文關(guān)鍵詞  詳解,MySQL,實時,同步,到,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解MySQL實時同步到Oracle解決方案》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解MySQL實時同步到Oracle解決方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    海宁市| 桐柏县| 竹山县| 灵璧县| 康平县| 开化县| 衢州市| 垫江县| 罗山县| 营口市| 兴城市| 安庆市| 临夏市| 图们市| 宜兴市| 舟山市| 平罗县| 河北区| 嵊泗县| 湘阴县| 谷城县| 正定县| 林口县| 苗栗县| 揭东县| 寿阳县| 广平县| 中卫市| 浠水县| 铜陵市| 仁化县| 牡丹江市| 读书| 彰武县| 和林格尔县| 库尔勒市| 华容县| 洛宁县| 樟树市| 衡阳县| 安泽县|