摘要:本文將詳細介紹GaussDB(DWS)重要運維管理功能“升級”的原理和使用。
運維管理模塊是任何軟件產品最基礎和重要的一部分。是軟件產品的門戶,也是用戶接觸和使用軟件產品的和前提和基礎。如安裝部署能讓用戶快速上手使用,升級能讓產品平滑更新,擴容能讓產品擴充能力,故障修復能讓產品快速恢復,監控告警能讓產品提前預知或及時排除故障。其在可用性,易用性,可靠性,可維護性、在線運維方面都有較高的要求。本文將詳細介紹GaussDB(DWS)重要運維管理功能“升級”的原理和使用。
前言
不斷更新和演進是軟件的一個重要行為,升級是軟件更新的重要保證。伴隨着新特性不斷推出和歷史問題修復,軟件升級和打補丁顯得格外重要。升級和打補丁需要滿足如下要求:
- 軟件版本的無縫、平滑過渡。
- 業務中斷時間盡量少,以至於在線。
- 用戶體驗前向兼容。
而數據庫升級比其他軟件升級更為復雜,不光是軟件本身的更新,還要支持其管理的數據的升級。數據庫升級需要考慮如下因素:
- 軟件升級,即軟件本身的更新。
- 元數據升級,即軟件管理數據的方式的更新。
- 業務數據升級,即軟件管理的數據的升級。
隨着數據庫版本的快速演進,升級愈顯重要,其可靠性、性能、業務中斷、易用性急需改善。
升級演進
GaussDB(DWS)升級經過多個版本的演進,其性能,可靠性逐步提升。並提供了不同場景的各種升級方式。如下是演進過程:
大版本全量升級:新版本重建數據庫,元數據導入導出,業務數據全量mv方式。依賴於數據庫對象個數和業務數據量大小、業務數據表文件數。已在V1R8停用。
就地升級:原地替換二進制,修改系統表方式。依賴於系統表的邏輯大小(數據對象個數)和物理大小(系統表臟頁)及數據庫個數。
小版本離線升級:停機,替換二進制,啟動集群。業務中斷時間是一次集群的重啟時間。
小版本滾動升級:保留老二進制文件,新目錄安裝新二進制,按照組件(om_monitor,cm_agent,ETCD,CN,dummy DN,standby DN/GTM/CM,master DN/GTM/CM)滾動切換到新二進制,然后主備切換。整個升級過程中涉及兩次switchover,業務中斷時間依賴於在線switchover和CN retry能力。
小版本閃斷升級:基於小版本滾動升級基礎,保留老二進制文件,新目錄安裝新二進制,先切換管理組件(om_monitor、cm_agent、ETCD、cm_server),再一次性切換業務組件(GTM、CN、DN),只閃斷一次業務。目前DWS已使用。
就地升級原理介紹
目前8.0主要使用的升級方式是就地升級。其已經支撐現網線下和公有雲多套集群成功升級到新版本。
1、公有雲升級流程
DWS服務升級主要分2部分,管控面升級和租戶面升級:
各個region的管控面升級回滾主要通過CDK平台完成,升級后組件自行功能驗證。
升級實例的信息:
租戶面升級在ServiceCM平台由SRE操作,操作可分為DWS Guest升級和數據庫內核升級:
主要流程如下所示:
2、線下updatetool升級
通過登錄UpdateService操作界面,創建升級工程,進行一鍵式升級。
3、數據庫內核升級流程
數據庫內核升級是通過替換二進制+更新元數據的方式進行升級。
包括初始階段,准入檢查,環境准備,停機,備份,升級,update catalog,提交8個階段。
升級性能目標
升級問題定位
升級過程日志概覽見下表:
UpdateService的日志分為審計日志和調試日志,位置見下表:
結語
在數據倉庫產品使用過程中,升級和打補丁是使用頻率較高的功能。本文中僅僅介紹了GaussDB(DWS)升級的大致流程和基本原理,及性能目標。如果現網變更中遇到升級相關問題,還需聯系相關技術支持。