阿里雲Polardb國產資料庫補丁升級 實踐
一、背景介紹
為了解決當前polardb-O資料庫存在的一個BUG,阿里雲官方提供了修復補丁,需要將當前版本2.1.2.4升級到2.1.2.5。本次主題透過此次升級來詳細介紹一下阿里雲Polardb-O資料庫叢集補丁整體升級操作過程。
二、Polardb-O資料庫資訊
2.1 資料庫裝置資訊
Polardb-o資料庫叢集部署採用1+1+1模式,使用3臺主機分別搭建各自服務,下面是polardb-o詳細的叢集配置資訊
。
PolarDB 資料庫 |
實際地址IP |
資料庫架構 |
說明 |
PolarDB叢集 |
192.168.58.130 |
主 |
1主1從架構 |
192.168.58.131 |
從 | ||
192.168.58.132 |
CM |
叢集管控節點 | |
VIP:192.168.58.129 |
主 |
VIP由CM控制連線主庫 |
2.2 Polardb-O部署架構
三、Polardb補丁升級
3.1 升級流程
3.2 環境檢查
1、檢查資料庫叢集狀態
在CM
叢集管控節點執行下面命令來檢查資料叢集狀態
curl -H "Content-Type:application/json"
經檢查master和standby都是處理running狀態,VIP "endpoint"在主節點上,當前主庫處於正常狀態
2、 檢查主備庫執行狀態
使用PolarDB 使用者分別在主備兩個節點檢查資料庫執行狀態:
ps -ef |grep polar-postgres|grep -v grep |wc -l
經過檢查 polardb資料庫程式存在,資料庫執行正常。
3、 檢查主備同步複製狀態
由於配置了同步複製,健康檢查配置只能在主庫檢查,備庫是無法查詢到同步複製狀態資訊,所以使用下面指令在主庫上面檢查同步複製狀態。
select * from pg_stat_replication ;
經檢查polardb主備庫的同步複製關係正常,複製狀態“streaming”,同步狀態為sync強同步。說明同步複製狀態正常。
4、 檢視當前資料庫版本
3.3 資料庫備份
1、 資料庫物理全備
物理備份使用polardb-O 軟體自帶備份工具polar_basebackup ,它是以物理檔案形式將本地檔案與PFS 資料檔案進行全量備份。本次備份使用主庫來備份,先登入主庫後執行下面命令來進行資料全量備份,並將檔案備份到備份路徑/home/polardb/backups/20201017/ 。
polar_basebackup -D /home/polardb/backups/20201017/base -X stream --progress -v
從上圖可以看到,備份日誌中輸出“ base backup completed ”關鍵字說明物理全備成功。
2、 資料庫邏輯全備
邏輯備份使用 polardb-O 軟體自帶備份工具 pg_dumpall ,它是以 sql 形式進行全庫備份,同樣也是在主庫進行資料備份,並將檔案備份到備份路徑 /home/polardb/backups/20201017/ 。
pg_dumpall>/home/polardb/backups/20201017/polar_data_all_20201017.sql
從上圖可以看到,全庫備份檔案
polar_data_all_20201017.sql
在增長,代表邏輯全備正常。
3.4
升級備庫
Polardb-O使用CM叢集管控來控制主備之間切換,軟體補丁升級時如果優先主庫,會導致CM觸發主庫切換,導致資料庫不穩定,勢必會影響業務系統正常使用。因此結合當前叢集架構考慮優先升級備庫,備庫停止不會觸發CM管控進行主備切換。接下來會詳細介紹備庫升級全過程。
1、 停止Polardb備庫程式
首先用polardb 使用者,登入polardb 備庫伺服器,使用下面命令停止polardb 程式。
pg_ctl stop
檢查備庫polardb 程式是否成功停止
經檢查備庫polardb 程式已經被成功停掉,業務暫時無影響,主庫可以提供讀寫服務。
2 、 備份polardb-o軟體
在/usr/local 目錄下將polardb 舊軟體包備份出來,為了防止後面升級過程失敗,可以進行備份回退。
sudo cp -r polardb_o_20200914 polardb_o_20200914.20201017
3 、 解除安裝polardb-o軟體
在polardb使用者下使用sudo方式將polardb安裝的rpm包解除安裝。
sudo rpm -e PolarDB-O-0200-2.0.0-20200914083756.alios7.x86_64
4、 安裝polardb-o軟體包
在polardb使用者下使用sudo rpm -i命令安裝polardb軟體包。
sudo unzip PolarDB-O-0200-2.0.0-20201009151903.alios7.x86_64.rpm.zip
sudo rpm -ivh PolarDB-O-0200-2.0.0-20201009151903.alios7.x86_64.rpm
5、 啟動polardb-o備庫服務
由於polardb軟體升級後,生成的軟體目錄版本號發生了變化,對應的PGHOME目錄也要更新,需要修改 polardb使用者環境變數
將.bash_profile 檔案中的
export PGHOME=/usr/local/polardb_o_20200914 修改成export PGHOME=/usr/local/polardb_o_20201009
source ~/.bash_profile
啟動資料庫服務
pg_ctl start
從上圖可以看出資料庫啟動成功。
6 、 檢查升級後版本
7、 檢查polardb-o備庫執行狀態
在CM 叢集管控節點執行下面命令檢視資料叢集狀態:
curl -H "Content-Type:application/json"
經檢查polardb的主備執行狀態”running”,VIP "endpoint"在主節點上,當前主庫處於正常狀態
在主庫執行下面命令檢查資料庫同步複製狀態
select * from pg_stat_replication ;
經檢查polardb主備庫的同步複製關係正常,複製狀態“streaming”,同步狀態為sync強同步。說明同步複製狀態正常。
3.5
主備切換
1、
將主庫切換成備庫
在CM
叢集管控伺服器上執行切換指令進行主備之間切換操作,這裡是將主庫切換到polar-node2
節點上面,老主庫正常會切換成新備庫。
curl -H "Content-Type:application/json" -X POST --data "{\"from\":\"192.168.58.130:5432\",\"to\":\"192.168.58.131:5432\"}"
2、
檢查主備是否成功切換
主備切換成功,檢查同步複製關係正常。
3、 檢查叢集狀態
備庫成功切換成新主庫,原來的老主庫也正常切換回成備庫。
4、
polardb
程式檢查
polardb 主備庫程式啟動正常。
3.6 升級老主庫
1. 停止Polardb-O備庫程式
登入polardb 老主庫伺服器,使用polardb 使用者執行停止命令
pg_ctl stop
檢查老主庫polardb
程式是否成功停止
polardb 程式已經被成功停掉,業務暫時無影響,主庫可以提供讀寫服務。
2. 備份polardb-o軟體
在/usr/local 目錄下將polardb 舊軟體包備份出來。
sudo cp -r polardb_o_20200914 polardb_o_20200914.20201017
3. 解除安裝polardb-o軟體
sudo rpm -e PolarDB-O-0200-2.0.0-20200914083756.alios7.x86_64
4. 安裝polardb-o軟體包
sudo unzip PolarDB-O-0200-2.0.0-20201009151903.alios7.x86_64.rpm.zip
sudo rpm -ivh PolarDB-O-0200-2.0.0-20201009151903.alios7.x86_64.rpm
5. 啟動polardb-o備庫服務
由於polardb軟體升級後,生成的軟體目錄版本號發生了變化,對應的PGHOME目錄也要更新,需要修改 polardb使用者環境變數
將.bash_profile 檔案中的
export PGHOME=/usr/local/polardb_o_20200914 修改成export PGHOME=/usr/local/polardb_o_20201009
source ~/.bash_profile
啟動資料庫服務
pg_ctl start
看到以上狀態,說明備庫 polardb 已經成功正常啟動。
6. 檢查升級後版本
7. 檢查polardb-o老備庫執行狀態
在CM叢集管控節點執行下面命令檢視資料叢集狀態:
curl -H "Content-Type:application/json"
檢查結果:master和standby都是running狀態,VIP "endpoint"在主節點上,當前主庫處於正常狀態
在主庫執行如下命令檢查同步複製狀態
select * from pg_stat_replication ;
檢查結果:同步複製狀態“streaming”,同步狀態為sync強同步。以上資訊代表同步複製狀態正常。
3.7 回切主庫
主備庫的polardb軟體庫軟體已經升級成功,接下來模擬資料庫回切到老主庫,在CM管控伺服器上面手動切換主備,完成主備切換測試。將192.168.58.131上面的主庫切回192.168.58.130。
1、 將主庫切換成備庫
[polardb@polar-cm ~]$ curl -H "Content-Type:application/json" -X POST --data "{\"from\":\"192.168.58.131:5432\",\"to\":\"192.168.58.130:5432\"}"
2、 檢查主備是否成功切換
主備切換成功後,同步複製關係正常,沒有丟失。
3、 檢查叢集狀態
備庫成功切換成新主庫,原來的老主庫也正常切換回成備庫。
4、 檢查 polardb 程式 狀態
檢視polardb 資料庫程式正常存在。
四、總結
經過此次 Polardb-O 資料庫補丁升級實踐, Polardb-O 資料庫補丁升級過程要比 Oracle 補丁升級簡單很多。如按先升備庫,讓主庫提供服務,備庫升完,然後將備庫切換成主庫,再繼續提供服務,整體資料庫補丁升級過程中不會中斷業務。
有需要的朋友可以關注我的公眾號,文章每日一更
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2730716/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 阿里雲Polardb國產資料庫高可用部署實踐阿里資料庫
- Oracle資料庫升級與補丁Oracle資料庫
- 資料庫的升級和打補丁的研究資料庫
- 探索Oracle之資料庫升級一 升級補丁修復概述Oracle資料庫
- 資料庫PSU的補丁升級 從10.2.0.5.2(10248542)升級至10.2.0.5.12(16619894)打補丁記錄資料庫
- Oracle 11gR2單例項資料庫補丁升級記錄Oracle單例資料庫
- 資料庫補丁索引資料庫索引
- Weblogic 補丁升級慢Web
- 12. Oracle版本、補丁及升級——12.2. 補丁及補丁集Oracle
- Oracle資料庫遷移至PolarDb(阿里雲資料庫)Oracle資料庫阿里
- 資料庫升級(10.2.0.1.0->10.2.0.5.0)+打補丁P12880299資料庫
- OJVM+GI PSU補丁升級JVM
- ORACLE 10G RAC 升級補丁Oracle 10g
- ORACLE 11g 升級補丁(Patch)Oracle
- Oracle資料庫打補丁方法Oracle資料庫
- Android 中的升級資料庫最佳方法實踐Android資料庫
- 12. Oracle版本、補丁及升級——12.3. 升級Oracle
- rac 升級crs 升級資料庫軟體,升級資料庫資料庫
- db2 v9.7 補丁升級DB2
- SAP 補丁升級步驟詳解 (轉)
- 給Oracle資料庫打補丁(轉)Oracle資料庫
- 資料倉儲環境下謹慎升級10205補丁
- 資料庫升級資料庫
- ♀♀資料庫升級♀♀資料庫
- 使用web client對 vcenter 進行補丁升級Webclient
- 某保險公司的核心繫統國產資料庫升級之路資料庫
- Oracle資料庫PSU補丁安裝Oracle資料庫
- oracle資料庫高危漏洞補丁集安裝Oracle資料庫
- RAC資料庫中用opatch應用補丁資料庫
- 【kingsql分享】Oracle 18c RAC補丁升級實戰【DBRU】SQLOracle
- 最佳實踐:騰訊HTAP資料庫TBase助力某省核心IT架構升級資料庫架構
- 動手為王 | Oracle 資料庫跨版本升級遷移實踐Oracle資料庫
- WSUS Offline Update離線補丁升級工具
- 【PATCH】Oracle12c升級補丁初體驗Oracle
- AIX 5.3下 升級補丁到10.2.0.5步驟AI
- Oracle 資料庫升級Oracle資料庫
- 資料庫Patchsets 補丁號碼快速參考資料庫
- Oracle將釋出新的資料庫補丁程式Oracle資料庫