[發(fā)明專利]一種數(shù)據(jù)庫同步方法在審
| 申請?zhí)枺?/td> | 202011072494.6 | 申請日: | 2020-10-09 |
| 公開(公告)號: | CN112256794A | 公開(公告)日: | 2021-01-22 |
| 發(fā)明(設(shè)計(jì))人: | 周宇;徐波;李帆;宋愛國;劉嘉 | 申請(專利權(quán))人: | 國網(wǎng)江西省電力有限公司檢修分公司;國家電網(wǎng)有限公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F16/22;G06F16/242;G06F16/28 |
| 代理公司: | 江西省專利事務(wù)所 36100 | 代理人: | 張文 |
| 地址: | 330096 江西省南昌*** | 國省代碼: | 江西;36 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)庫 同步 方法 | ||
1.一種數(shù)據(jù)庫同步方法,其特征在于:
A、加載所有數(shù)據(jù)庫同步文件和數(shù)據(jù)庫參數(shù)配置文件;
B、獲取第一個(gè)數(shù)據(jù)庫同步文件中的源數(shù)據(jù)庫表、目標(biāo)數(shù)據(jù)庫表、標(biāo)定字段組;
C、從源數(shù)據(jù)庫中讀取源數(shù)據(jù)庫表的數(shù)據(jù),再從目標(biāo)數(shù)據(jù)庫中讀取目標(biāo)數(shù)據(jù)庫表的數(shù)據(jù);
D、對源數(shù)據(jù)庫表與目標(biāo)數(shù)據(jù)庫表的標(biāo)定字段組的數(shù)據(jù)進(jìn)行比較,如果需要同步,則調(diào)用sql語句進(jìn)行同步操作;
E、如存在下一個(gè)數(shù)據(jù)庫同步文件,則獲取下一個(gè)數(shù)據(jù)庫同步文件中的源數(shù)據(jù)庫表、目標(biāo)數(shù)據(jù)庫表、標(biāo)定字段組,跳轉(zhuǎn)到C步驟;如不存在下一個(gè)數(shù)據(jù)庫同步文件,則跳轉(zhuǎn)B步驟。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫同步方法,其特征在于:本方法通過python腳本實(shí)現(xiàn),能在有python環(huán)境的系統(tǒng)下快速部署實(shí)施。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫同步方法,其特征在于:同步服務(wù)支持多進(jìn)程同步,如果有多組同步數(shù)據(jù)庫表,會(huì)創(chuàng)建多個(gè)子進(jìn)程,每個(gè)子進(jìn)程負(fù)責(zé)一部分同步數(shù)據(jù)庫表同步,提高效率,實(shí)現(xiàn)負(fù)載均衡。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫同步方法,其特征在于:在步驟A中,支持加載預(yù)設(shè)的數(shù)據(jù)庫參數(shù)配置文件,其中包括源數(shù)據(jù)庫的ip地址、端口號、用戶名、密碼、數(shù)據(jù)庫名,以及目標(biāo)數(shù)據(jù)庫的ip地址、端口號、用戶名、密碼、數(shù)據(jù)庫名。
5.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫同步方法,其特征在于:支持加載數(shù)據(jù)庫同步文件,源數(shù)據(jù)庫表、目標(biāo)數(shù)據(jù)庫表、標(biāo)定字段組按照約定格式配置為數(shù)據(jù)庫同步文件,并存放于數(shù)據(jù)庫同步文件目錄下;
其中,當(dāng)有多組源數(shù)據(jù)庫表、目標(biāo)數(shù)據(jù)庫表需要同步時(shí),按照同步文件規(guī)則創(chuàng)建多個(gè)數(shù)據(jù)庫同步文件放于數(shù)據(jù)庫同步文件目錄下;
其中,數(shù)據(jù)庫同步文件中,源表標(biāo)定字段與目標(biāo)表標(biāo)定字段的數(shù)量相同,源表標(biāo)定字段類型和目標(biāo)表標(biāo)定字段類型相同,源表標(biāo)定字段名與目標(biāo)表標(biāo)定字段名相同或不同,保持一一對應(yīng);
如果源數(shù)據(jù)庫表中存在主鍵,則需保證目標(biāo)數(shù)據(jù)庫表中存在相同的主鍵,且配置文件中的標(biāo)定字段組中必須包含主鍵,且均為第一個(gè)同步字段。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫同步方法,其特征在于:
在上述步驟D中,會(huì)獲取源數(shù)據(jù)庫表數(shù)據(jù)和目標(biāo)數(shù)據(jù)庫表數(shù)據(jù),并按照標(biāo)定字段組篩選過濾形成數(shù)據(jù)集合;
獲取源數(shù)據(jù)庫表數(shù)據(jù)組成集合S{Ts1、Ts2、Ts3、……、Tsn},其中n代表獲取源數(shù)據(jù)庫的數(shù)據(jù)數(shù)量,n為正整數(shù),Tsx(1=x=n)為第x條數(shù)據(jù)的源表標(biāo)定字段值的集合;
獲取目標(biāo)數(shù)據(jù)庫表數(shù)據(jù)組成集合D{Td1、Td2、Td3、……、Tdn},其中n代表獲取目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)數(shù)量,Tdx(1=x=n)為第x條數(shù)據(jù)的目標(biāo)表標(biāo)定字段值的集合;
集合Tsx與集合Tdx中的元素?cái)?shù)量相同。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫同步方法,其特征在于:
對于集合Tsx和集合Tdx中的數(shù)據(jù),判斷是否為同一條數(shù)據(jù),方法如下:
如果主鍵存在且相同時(shí),認(rèn)為是同一條數(shù)據(jù);
如果主鍵不存在,則標(biāo)定字段組的所有數(shù)值相同認(rèn)為是同一條數(shù)據(jù)。
將集合Tsx和集合Tdx逐一對比,針對某一條數(shù)據(jù),判斷是否需要同步,包括:
源數(shù)據(jù)庫表有數(shù)據(jù),目標(biāo)數(shù)據(jù)庫表無數(shù)據(jù),源數(shù)據(jù)庫表的數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫表;
源數(shù)據(jù)庫表有數(shù)據(jù),目標(biāo)數(shù)據(jù)庫表有數(shù)據(jù),但數(shù)值不同,源數(shù)據(jù)庫表數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫表;
源數(shù)據(jù)庫表沒有數(shù)據(jù),目標(biāo)數(shù)據(jù)庫表有數(shù)據(jù),將目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)刪除;將需要同步的操作按照刪除、更新、新增分類后,分別執(zhí)行,最終實(shí)現(xiàn)數(shù)據(jù)庫同步;
通過設(shè)置通用參數(shù)配置文件實(shí)現(xiàn)只執(zhí)行刪除、更新、新增中的部分操作;
其中通用參數(shù)文件配置文件存儲(chǔ)服務(wù)運(yùn)行所需的通用參數(shù)。
8.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫同步方法,其特征在于:在實(shí)現(xiàn)同步操作時(shí),依照源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的不同,服務(wù)調(diào)用python對應(yīng)的數(shù)據(jù)庫接口,實(shí)現(xiàn)不同種類數(shù)據(jù)庫間的同步操作。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于國網(wǎng)江西省電力有限公司檢修分公司;國家電網(wǎng)有限公司,未經(jīng)國網(wǎng)江西省電力有限公司檢修分公司;國家電網(wǎng)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011072494.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





