本申請涉及數據庫,尤其涉及一種用于異地數據庫合并的方法、裝置、電子設備、計算機可讀存儲介質及計算機程序產品。
背景技術:
1、對于需要存儲海量數據或進行大量數據處理的企業,經常需要在不同地區或稱不同地域設置數據庫,有時還需要設置獨立部署的服務器運行這些數據庫。隨著業務發展,數據庫的數量以及各數據庫本身存儲的數據會不斷增加,形成數據庫集群,例如某商業化系統在近30個地區設置有近30套獨立部署的數據庫,十分浪費服務器資源。
2、隨著時間推移,需要異地部署的服務器數量在增加,不僅存在服務器資源浪費,更重要的,實際上不同地區服務器數據庫之間存在不同程度的數據隔離,且異地數據庫之間的數據交互過程復雜,數據請求響應慢,如數據庫過多,對數據庫集群的數據交互、統計等都是極為不利的,存在系統崩潰的隱患。為了維持多地域數據庫的正常運行,需要付出的資源成本和時間成本日益增多,而目前仍缺少明確有效的解決方案來提升多地域數據庫的運行和維護。
技術實現思路
1、有鑒于此,本申請實施例提供一種用于異地數據庫合并的方法,包括以下步驟:對多個待合并數據庫進行預處理,以使所述多個待合并數據庫中的數據表的表結構及數據存儲方式一致,其中所述多個待合并數據庫包括總部數據庫和多個地區數據庫,總部數據庫的級別高于地區數據庫;在所述多個待合并數據庫的所有數據表中添加一數據來源標識,所述數據來源標識用于標記數據表所屬的原始數據庫;在經過預處理并添加數據來源標識后的多個待合并數據庫中,選擇符合條件的一個數據庫作為總庫,將總庫設置在云服務器上,其中總庫屬于地區數據庫;將剩余的地區數據庫按照預定批次或預定順序分別設置到所述云服務器上并與總庫進行合并,形成云上數據庫;將所述總部數據庫設置到所述云服務器上,并與所述云上數據庫合并,完成合庫;其中,在所述預處理過程中,如果出現存在主鍵沖突的數據表,則在存在主鍵沖突的多個數據表中分別新增一合并主鍵值字段,所述合并主鍵值字段中存儲該數據表合并后的主鍵值,所述合并主鍵值字段用于在涉及主鍵的數據查詢任務中,與所述數據來源標識共同作為查詢條件,以在合庫中根據目標合并主鍵值和目標數據來源標識定位到所需數據表。
2、可選地,在所述預處理過程中,如果出現存在種子沖突的數據表,所述方法還包括:將存在種子沖突的數據表對應的主鍵區間增大,以使數據庫合并時不發生種子沖突。
3、可選地,所述方法還包括:在數據庫合并之前或合并過程中,根據待合并的數據表所屬的原始數據庫所在地區對應的預設數值范圍,對待合并的數據表對應的主鍵自增區間的起始值進行更新,以使合并時不發生種子沖突。
4、可選地,在數據庫合并過程中,如果出現無主鍵表的數據庫,所述方法還包括:在所述無主鍵表的數據庫中新增一主鍵表;根據所述無主鍵表的數據庫所在地區對應的預設數值范圍對該新增的主鍵表的主鍵自增區間的起始值進行設置。
5、可選地,在合并數據庫之前,進一步包括:在合并數據庫之前,進一步包括:修改總部數據庫與地方數據庫的復制關系,以使在合并數據庫后,總部數據庫與地方數據庫對應的復制關系統一,其中待復制的數據滿足總部數據庫與地方數據庫任一的復制條件,則復制該數據。
6、可選地,完成合庫后,云上數據庫基于數據來源字段向被合并的地區數據庫或總部數據庫同步數據,并將被合并的數據庫配置為備用數據庫,以在云上數據庫發生故障時,切換至備用數據庫使用。
7、可選地,合并數據庫時按數據規模由小到大逐一合并,以減少大規模數據沖突的風險并提升合并效率。
8、本發明進一步包括一種用于異地數據庫合并的裝置,包括:數據預處理模塊,用于對多個待合并數據庫進行預處理,以使所述多個待合并數據庫中的數據表的表結構及數據存儲方式一致,其中所述多個待合并數據庫包括總部數據庫和多個地區數據庫,總部數據庫的級別高于地區數據庫;數據來源增加模塊,用于在所述多個待合并數據庫的所有數據表中添加一數據來源標識,所述數據來源標識用于標記數據表所屬的原始數據庫;總庫設置模塊,用于在經過預處理并添加數據來源標識后的多個待合并數據庫中,選擇符合條件的一個數據庫作為總庫,將總庫設置在云服務器上,其中總庫屬于地區數據庫;地區庫合并模塊,用于將剩余的地區數據庫按照預定批次或預定順序分別設置到所述云服務器上并與總庫進行合并,形成云上數據庫;總部庫合并模塊,用于將所述總部數據庫設置到所述云服務器上,并與所述云上數據庫合并,完成合庫;其中,在所述預處理過程中,如果出現存在主鍵沖突的數據表,則在存在主鍵沖突的多個數據表中分別新增一合并主鍵值字段,所述合并主鍵值字段中存儲該數據表合并后的主鍵值,所述合并主鍵值字段用于在涉及主鍵的數據查詢任務中,與所述數據來源標識共同作為查詢條件,以在合庫中根據目標合并主鍵值和目標數據來源標識定位到所需數據表。
9、本發明進一步包括一種電子設備,所述電子設備包括:處理器以及存儲有計算機程序指令的存儲器;所述電子設備執行所述計算機程序指令時實現如前任一所述的方法。
10、本發明進一步包括一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序指令,所述計算機程序指令被處理器執行時實現如前任一所述的方法。
11、本發明進一步包括一種計算機程序產品,其特征在于,其包括計算機程序指令,所述計算機程序指令被處理器執行時實現如前任一所述的方法。
12、本申請實施例提供一種電子設備,所述電子設備包括處理器以及存儲有計算機程序指令的存儲器;所述處理器執行所述計算機程序指令時實現如上所述的方法的步驟。
13、采用本申請的實施例,可以在較短時間將分散在不同地區的服務器數據合并至總服務器,大幅減少了服務器資源占用。而且,本申請方案整體上對現有數據改動小,不但可以縮短服務器合并的耗時,而且節約人力成本。本申請使用了添加數據來源字段等方式,能有效避免數據紊亂問題。本申請在進行合并處理時,修改后的數據同樣會寫入被合并的服務器,以保證總數據庫出現問題時,能及時切換到地區數據,降低系統風險。
1.一種用于異地數據庫合并的方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的方法,其特征在于,在所述預處理過程中,所述方法還包括:
3.根據權利要求1所述的方法,其特征在于,所述方法還包括:
4.根據權利要求1所述的方法,其特征在于,在合并數據庫之前,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述預定順序包括:按待合并的數據庫的規模由小到大的順序。
6.根據權利要求1所述的方法,其特征在于,完成合庫后,云上數據庫基于數據來源字段向被合并的地區數據庫或總部數據庫同步數據,并將被合并的數據庫配置為備用數據庫,以在云上數據庫發生故障時,切換至備用數據庫使用。
7.一種用于異地數據庫合并的裝置,其特征在于,包括:
8.一種電子設備,其特征在于,所述電子設備包括:處理器以及存儲有計算機程序指令的存儲器;所述電子設備執行所述計算機程序指令時實現如權利要求1-6中任一項所述的方法。
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序指令,所述計算機程序指令被處理器執行時實現如權利要求1-6中任一項所述的方法。
10.一種計算機程序產品,其特征在于,其包括計算機程序指令,所述計算機程序指令被處理器執行時實現如權利要求1-6中任一項所述的方法。