阿里雲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資料庫遷移至PolarDb(阿里雲資料庫)Oracle資料庫阿里
- Weblogic 補丁升級慢Web
- KubeBlocks完成阿里雲PolarDB資料庫產品生態整合認證BloC阿里資料庫
- KubeBlocks 完成阿里雲 PolarDB 資料庫產品生態整合認證啦!BloC阿里資料庫
- 12. Oracle版本、補丁及升級——12.2. 補丁及補丁集Oracle
- 把雲資料庫帶回家!阿里雲釋出POLARDB Box資料庫一體機資料庫阿里
- OJVM+GI PSU補丁升級JVM
- 企業級雲資料庫最佳實踐資料庫
- 阿里雲原生資料庫POLARDB壓力測試報告阿里資料庫測試報告
- 重磅 | 把雲資料庫帶回家!阿里雲釋出POLARDB Box資料庫一體機資料庫阿里
- Android 中的升級資料庫最佳方法實踐Android資料庫
- 12. Oracle版本、補丁及升級——12.3. 升級Oracle
- 前沿分享|阿里雲資料庫解決方案資深專家 李聖陶:雲原生資料庫解決方案 加速企業國產化升級阿里資料庫
- 京東零售資料資產能力升級與實踐
- 阿里雲PolarDB-X資料庫透過分散式資料庫金融標準驗證阿里資料庫分散式
- WSUS Offline Update離線補丁升級工具
- 阿里雲釋出第七代ECS、雲原生資料庫PolarDB-X等重磅新產品阿里資料庫
- 【kingsql分享】Oracle 18c RAC補丁升級實戰【DBRU】SQLOracle
- MSSQL·最佳實踐·RDSSDK實現資料庫遷移上阿里雲RDSSQLServerSQL資料庫阿里Server
- 使用shell 方式對 vcenter 進行補丁升級
- 使用web client對 vcenter 進行補丁升級Webclient
- 阿里專家分享:企業級大資料輕量雲實踐阿里大資料
- 國泰產險引入阿里雲Lindorm資料庫 實現儲存成本降低75%阿里ORM資料庫
- 阿里雲黃貴:PolarDB-X:雲原生時代資料庫的新可能性阿里資料庫
- 阿里雲DataWorks實踐:資料整合+資料開發阿里
- 阿里雲資料庫自研產品亮相國際頂級會議ICDE 推動雲原生資料庫成為行業標準阿里資料庫行業
- Linux 4.1核心熱補丁成功實踐Linux
- MSSQL·最佳實踐·例項級別資料庫上雲RDSSQLServerSQL資料庫Server
- 使用vCenter對ESXi主機進行補丁升級
- 某保險公司的核心繫統國產資料庫升級之路資料庫
- 使用阿里雲PolarDB替代Oracle資料庫,申通完美扛過618業務高峰阿里Oracle資料庫
- 阿里雲王林平:一站式資料庫上雲最佳實踐阿里資料庫
- 資料庫升級之-Dataguard滾動升級資料庫
- 最佳實踐:騰訊HTAP資料庫TBase助力某省核心IT架構升級資料庫架構
- 如何理解騰訊雲資料庫戰略升級?資料庫
- 資料庫升級之-資料泵資料庫
- 深度解析國內首個雲原生資料庫POLARDB的“王者榮耀”資料庫