[發明專利]一種數據庫同步方法有效
| 申請號: | 201611207095.X | 申請日: | 2016-12-23 |
| 公開(公告)號: | CN106874341B | 公開(公告)日: | 2022-04-05 |
| 發明(設計)人: | 吳方才;林殷;安西民 | 申請(專利權)人: | 中科星圖股份有限公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27 |
| 代理公司: | 北京安博達知識產權代理有限公司 11271 | 代理人: | 徐國文 |
| 地址: | 101399 北京市順義區臨空經濟核*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 同步 方法 | ||
1.一種數據庫同步方法,其特征在于,該方法對一個主數據庫服務器S0和n個副數據庫服務器S1,S2,……,Sn進行數據庫同步,由一個管理服務器對上述數據庫服務器進行管理,并對外提供數據庫服務,該方法包括寫操作同步過程和讀操作同步過程,其中寫操作同步過程如下:
步驟100:在所述管理服務器中為數據庫中每一張數據表生成一個寫操作鎖,該寫操作鎖的初始值為0;
步驟110:所述管理服務器接受對數據庫的操作命令,并按序處理,當處理一個寫操作命令時,將該寫操作命令所要寫的數據表的寫操作鎖增加1,然后將該寫操作命令發送給主數據庫服務器S0;
步驟120:所述主數據庫服務器S0接收到該寫操作命令后,執行該寫操作命令以修改相應的數據表;
步驟130:所述主數據庫服務器S0在執行完該寫操作命令后,將被修改的數據表的修改信息發送給副數據庫服務器S1;
步驟140:副數據庫服務器S1根據該修改信息對S1中的相應數據表進行修改,再將該修改信息發送給副數據庫服務器S2,S2再根據該修改信息對S2中的相應數據表進行修改,以此類推,直到副數據庫服務器Sn也根據該修改信息對Sn中的相應數據表進行修改;
步驟150:所述副數據庫服務器Sn向管理服務器發送消息,告知該寫操作命令已執行完畢,所述管理服務器將所述數據表的寫操作鎖減1;
所述讀操作同步過程如下:
步驟200:管理服務器在接收到一個讀操作命令時,檢查該讀操作命令涉及的所有數據表的寫操作鎖,如果有一個寫操作鎖大于0,則將該讀操作命令發送給主數據庫服務器S0,由主數據庫服務器S0執行該讀操作命令,并將執行結果返回給所述管理服務器,讀操作同步過程結束,否則執行步驟210;
步驟210:所述管理服務器計算每一臺副數據庫服務器的繁忙指數,所述繁忙指數用于表明副數據庫服務器當前等待處理的數據量;
步驟220:所述管理服務器將該讀操作命令發送給繁忙指數最小的副數據庫服務器,由該副數據庫服務器執行該讀操作命令,并將執行結果返回給所述管理服務器。
2.根據權利要求1所述的數據庫同步方法,其特征在于,對于任意一臺副數據庫服務器Si(1≤i≤n),其繁忙指數Bi的計算方法如下:
步驟211:所述管理服務器獲取Si尚未執行完畢的所有讀操作命令,設這些讀操作命令共M個,記為C1,C2,……,CM;
步驟212:設讀操作命令Cj涉及了Aj個數據表(1≤j≤M),該Aj個數據表記為T(j,k),其中1≤k≤Aj;數據表T(j,k)中共有R(j,k)個字段,則繁忙指數Bi為
其中,Wi是副數據庫服務器Si的性能系數。
3.根據權利要求2所述的數據庫同步方法,其特征在于,所述性能系數由管理員根據每臺副數據庫服務器的機器性能預先設置。
4.根據權利要求1-3任意一項所述的數據庫同步方法,其特征在于,當數據庫中新建一張數據表時,所述管理服務器就為其生成一個寫操作鎖。
5.根據權利要求4所述的數據庫同步方法,其特征在于,所述寫操作包括增加數據、刪除數據或修改數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中科星圖股份有限公司,未經中科星圖股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611207095.X/1.html,轉載請聲明來源鉆瓜專利網。





