System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據庫同步,具體涉及一種私有云對公有云的數據庫全量同步方法。
技術介紹
1、數據庫同步是在兩個或多個系統之間保持記錄類型相同的持續過程。數據庫同步的核心目的是為了保持數據的一致性和準確性。通過同步機制,可以確保不同系統或數據庫之間的數據保持最新和一致,避免數據沖突和錯誤。在部分業務系統中,往往還涉及到對本地部署的云平臺,稱為私有云,向遠程部署的云平臺,稱為公有云進行數據同步的過程。
2、現有技術中,已存在有應用于私有云系統進行數據庫同步的技術方案。比如,中國專利cn202110255623.3公開了一種公開了私有云信息同步方法和裝置,涉及云計算
,進一步涉及云網絡
具體實現方案為:首先接收第一控制節點發送的信息同步請求,信息同步請求包括同步類型和同步標識,然后基于同步類型和同步標識,確定目標數量的同步信息,最后基于目標數量的同步信息,確定新的同步標識和新的同步類型,并向第一控制節點發送目標數量的同步信息、新的同步標識和新的同步類型。實現了分批次的信息同步,每次只進行目標數量的信息同步,使得信息同步發起方的請求響應不會引發超時,能夠避免阻塞其他協程。
3、但是,在實際實施過程中,專利技術人發現,由于私有云系統和公有云系統在傳輸過程中往往會涉及到跨越多級網關的傳輸過程,網絡波動較大,往往會導致數據實時同步出現問題而傳輸出錯。且考慮到私有云一側依照業務需求設計的表、列與公有云端對于存儲需求設計的表、列存在差異的問題,導致了同步過程愈發復雜。
技術實現思路<
1、針對現有技術中存在的上述問題,現提供一種私有云對公有云的數據庫全量同步方法。
2、具體技術方案如下:
3、一種私有云對公有云的數據庫全量同步方法,包括:
4、步驟s1:對第一數據庫獲取表名集合和對應的表名過濾規則,依照所述表名過濾規則對所述表名集合進行處理以得到待同步的表結構信息;
5、步驟s2:獲取全局列名過濾規則和單表列名過濾規則,依照所述全局列名過濾規則和所述單表列名過濾規則對所述表結構信息進行處理得到待同步表結構信息;
6、步驟s3:依照所述待同步表結構信息對第二數據庫進行預刪除,隨后依照所述待同步表結構信息對所述第二數據庫和所述第一數據庫的單表進行全量同步。
7、另一方面,所述步驟s1包括:
8、步驟s11:對所述第一數據庫獲取表名集合和所述表名過濾規則;
9、所述表名過濾規則包括數據庫表黑名單規則和/或數據庫表白名單規則;
10、步驟s12:依次依照所述數據庫表白名單規則、數據庫表黑名單規則對所述表名集合中包含的數據表信息進行篩選,得到篩選后數據表;
11、步驟s13:對所述篩選后數據表分別提取表結構以構建所述表結構信息。
12、另一方面,所述步驟s12包括:
13、步驟s121:判斷所述表名過濾規則中是否配置了所述數據庫表白名單規則;
14、若是,轉向步驟s122:
15、若否,轉向步驟s123;
16、步驟s122:依照所述數據庫表白名單規則對所述數據表信息進行篩選,以剔除所述數據庫表白名單規則中不存在的數據庫表,隨后轉向步驟s124;
17、步驟s123:依照所述數據庫表黑名單規則對所述數據表信息進行篩選,以剔除所述數據庫表黑名單規則中記錄的數據庫表,隨后轉向步驟s124;
18、步驟s124:將保留的所述數據庫表作為所述篩選后數據庫表輸出。
19、另一方面,所述步驟s12中,當所述數據庫表白名單規則和所述數據庫表黑名單規則存在相同的所述數據庫表時,保留所述數據庫表。
20、另一方面,所述步驟s2包括:
21、步驟s21:獲取所述全局列名過濾規則和所述單表列名過濾規則;
22、步驟s22:對所述表結構信息中包含的全局列名采用全局列名過濾規則進行篩選,生成全局列名篩選表結構信息;
23、步驟s23:對所述全局列名篩選表結構信息中的每個數據庫表的單表列名采用所述單表列名過濾規則進行篩選,生成所述待同步表結構信息。
24、另一方面,所述步驟s22包括:
25、步驟s221:判斷所述全局列名過濾規則中是否配置了全局列名白名單規則;
26、若是,轉向步驟s222;
27、若否,轉向步驟s223;
28、步驟s222:根據所述全局列名白名單規則對所述全局列名進行篩選,以剔除所述全局列名白名單規則中不存在的所述全局列名,隨后轉向步驟s224;
29、步驟s223:根據所述全局列名黑名單規則對所述全局列名進行篩選,以剔除所述全局列名黑名單規則中記錄的所述全局列名,隨后轉向步驟s224;
30、步驟s224:將保留的所述全局列名作為所述全局列名篩選表結構信息輸出。
31、另一方面,所述步驟s23包括:
32、步驟s231:針對每個所述數據庫表,分別判斷所述單表列名過濾規則中是否配置了單表列名白名單規則;
33、若是,轉向步驟s232;
34、若否,轉向步驟s233;
35、步驟s232:根據所述單表列名白名單規則對所述單表列名進行篩選,以剔除所述單表列名白名單規則中不存在的所述單表列名,隨后轉向步驟s234;
36、步驟s233:根據所述單表列名黑名單規則對所述單表列名進行篩選,以剔除所述單表列名黑名單規則中記錄的所述單表列名,隨后轉向步驟s234;
37、步驟s234:根據保留的所述單表列名生成所述待同步表結構信息。
38、另一方面,所述步驟s3包括:
39、步驟s31:依照所述待同步表結構信息對第二數據庫中已存在的對應于所述第一數據庫的列進行刪除;
40、步驟s32:逐行遍歷所述待同步表結構信息,依照所述待同步表結構信息選中所述第一數據庫中的對應行進行同步,直至同步完成。
41、另一方面,在執行所述步驟s31之后、執行所述步驟s32之前還包括:
42、步驟a31:判斷所述待同步表結構信息的總行數是否大于預設閾值,當大于所述預設閾值時進行分批同步。
43、另一方面,于執行所述步驟s1至所述步驟s3的過程中,根據所述表結構信息、所述待同步表結構信息和同步結果生成事務日志。
44、上述技術方案具有如下優點或有益效果:
45、針對現有技術中的私有云向公有云同步的過程受到網絡波動影響較大的問題,本方案中引入了基于表名、全局列名和單表列名三次的校驗過濾過程,剔除了傳輸過程中的無關列,避免了直接傳輸在云端做篩選對網絡依賴較大的問題,且便于配置同步信息,當存在多個重名的表時也不會出錯,提高了同步的準確度。
本文檔來自技高網...【技術保護點】
1.一種私有云對公有云的數據庫全量同步方法,其特征在于,包括:
2.根據權利要求1所述的數據庫全量同步方法,其特征在于,所述步驟S1包括:
3.根據權利要求2所述的數據庫全量同步方法,其特征在于,所述步驟S12包括:
4.根據權利要求3所述的數據庫全量同步方法,其特征在于,所述步驟S12中,當所述數據庫表白名單規則和所述數據庫表黑名單規則存在相同的所述數據庫表時,保留所述數據庫表。
5.根據權利要求1所述的數據庫全量同步方法,其特征在于,所述步驟S2包括:
6.根據權利要求5所述的數據庫全量同步方法,其特征在于,所述步驟S22包括:
7.根據權利要求5所述的數據庫全量同步方法,其特征在于,所述步驟S23包括:
8.根據權利要求1所述的數據庫全量同步方法,其特征在于,所述步驟S3包括:
9.根據權利要求8所述的數據庫全量同步方法,其特征在于,在執行所述步驟S31之后、執行所述步驟S32之前還包括:
10.根據權利要求1所述的數據庫全量同步方法,其特征在于,于執行所述步驟S1至
...【技術特征摘要】
1.一種私有云對公有云的數據庫全量同步方法,其特征在于,包括:
2.根據權利要求1所述的數據庫全量同步方法,其特征在于,所述步驟s1包括:
3.根據權利要求2所述的數據庫全量同步方法,其特征在于,所述步驟s12包括:
4.根據權利要求3所述的數據庫全量同步方法,其特征在于,所述步驟s12中,當所述數據庫表白名單規則和所述數據庫表黑名單規則存在相同的所述數據庫表時,保留所述數據庫表。
5.根據權利要求1所述的數據庫全量同步方法,其特征在于,所述步驟s2包括:
6.根據權利要求5...
【專利技術屬性】
技術研發人員:程功,丁軼,
申請(專利權)人:上海寰創通信科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。