[發明專利]服務端程序和數據庫的升級方法、裝置和設備在審
| 申請號: | 201610811502.1 | 申請日: | 2016-09-08 |
| 公開(公告)號: | CN107807816A | 公開(公告)日: | 2018-03-16 |
| 發明(設計)人: | 王宏宇;尤宏偉;呂彪 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F8/65 | 分類號: | G06F8/65;G06F17/30 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司11205 | 代理人: | 楊澤,劉芳 |
| 地址: | 開曼群島大開曼*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 服務端 程序 數據庫 升級 方法 裝置 設備 | ||
技術領域
本申請涉及數據庫技術,尤其涉及一種服務端程序和數據庫的升級方法、裝置和設備。
背景技術
服務端程序是一種采用客戶端/服務端(C/S)結構、且運行在服務端并向用戶提供業務服務的程序。服務端程序自上線提供服務后,通常都需要不斷更新迭代。一般的,服務端程序在升級時,通常需要將服務端程序暫停服務后進行離線升級,待升級完成后,再次啟動該升級后的服務端程序對外提供服務,這種升級方式往往造成用戶在一段時間內的無法使用該服務端程序。因此,為了保證服務端程序持續對外提供服務,現有技術采用了輪轉升級的方法對服務端程序進行升級,但是,該輪轉升級的方法僅適用于不涉及數據庫的服務端程序,而對于涉及數據庫的服務端程序,該服務端程序的升級往往涉及到數據庫表結構、數據內容的更新,而上述輪轉升級的方法容易造成面向新舊服務端程序的數據庫不一致,從而引發不兼容的問題。
因此,為了避免上述問題,現有技術采用熱備份的方式對數據庫和服務端程序進行升級。具體為:首先對數據庫進行熱備份,獲得兩個數據庫(正在提供服務的數據庫A1和為升級準備的數據庫為A2),兩個數據庫進行同步;然后在t1時刻,停止當前數據庫的熱備,對數據庫A2執行數據庫變更操作,并在數據庫A2數據變更期間,升級前的服務端程序仍然讀寫數據庫A1,待數據庫A2變更完成后,啟動升級后的服務端程序,并停止升級前的服務端程序,將訪問請求引導到升級后的服務端程序進行處理;最后,將數據庫A1在t1時刻之后的所有操作數據通過預先準備的訂正語句導入上述變更后的數據庫A2中,然后釋放數據庫A1,指示更新后的服務端程序指向最終的數據庫A2。
但是,現有技術的這種升級服務端程序和數據庫的方法,對于大容量的數據庫,備份時間長,資源浪費嚴重,并且當升級后的服務端程序已經采用變更后的數據庫A2對外提供服務時,升級前的服務端程序對數據庫的更改所產生的增量數據正在向變更后的數據庫A2中遷移,數據不一致風險較大。
發明內容
本申請提供一種服務端程序和數據庫的升級方法、裝置和設備,以解決現有技術采用熱備的方法升級服務端程序和數據庫時,所導致的備份時間長,資源浪費嚴重的技術問題,并且解決現有技術中當升級后的服務端程序已經采用變更后的數據庫對外提供服務時,升級前的服務端程序對數據庫的更改所產生的增量數據正在向變更后的數據庫中遷移,引發數據不一致的技術問題。
一個方面,本申請提供一種服務端程序和數據庫的升級方法,所述服務端程序包括第一程序實體和第二程序實體;所述方法包括:
禁用所述第二程序實體,隨后更新所述第二程序實體;
在更新所述第二程序實體之后,對當前對外提供服務的所述第一程序實體所使用的數據庫進行兼容更新處理,獲得第一數據庫;
控制更新后的第二程序實體接收訪問請求并緩存所述訪問請求;
控制所述第一程序實體停止接收訪問請求并更新所述第一程序實體,以及,對所述第一數據庫進行非兼容更新處理,獲得第二數據庫。
上述所提供的服務端程序和數據庫的升級方法,通過在更新當前被禁用的第二程序實體之后,對當前對外提供服務的第一程序實體所使用的數據庫進行兼容更新處理得到第一數據庫,然后在服務端設備在控制第一程序實體停止接收訪問請求后,控制更新后的第二程序實體接收并緩存訪問請求,并更新上述第一程序實體以及對第一數據庫進行非兼容更新處理,獲得第二數據庫。本申請實施例中,通過兼容更新處理所得到第一數據庫,使得當前對外提供服務的第一程序實體針對同一個訪問請求,在訪問升級前的數據庫所得到的結果和訪問兼容更新處理后的數據庫(即第一數據庫)所得到的結果相同,確保當前對外提供服務的第一程序實體訪問升級前后的數據庫時訪問數據一致,避免訪問結果出錯;同時,通過服務端設備在第一程序實體停止接收訪問請求時,控制更新后的第二程序實體接收并緩存訪問請求,從而對于外部設備來講,服務器端設備當前仍然在接收訪問請求,服務端程序對外提供的業務并沒有中斷,保證了外部設備通過服務端程序訪問數據庫時的連續性;另外,服務端設備通過控制上述對升級前的數據庫進行兼容更新處理和非兼容更新處理的順序,從而使得升級前的數據庫得到完整的升級操作,并且不會帶來升級前后的服務端程序訪問升級前的數據庫和訪問升級后的數據庫時出現訪問錯誤的問題,也無需對升級前的數據庫進行熱備,大大的節省了熱備資源,并且,也不存在升級前后的數據庫之間的增量數據遷移,避免出現升級前后服務端程序訪問數據不一致的問題。
作為一種可實現的方式,所述控制所述第一程序實體停止接收訪問請求并更新所述第一程序實體,具體包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610811502.1/2.html,轉載請聲明來源鉆瓜專利網。





