連升三級!openGauss單機版從2.1.0經停3.0.0升級至5.0.0

前言

如前文所述,我們的小demo項目起初安裝了openGauss的2.1.0版本,由于2.1.0不是長期維護(LTS)版本,所以要升級到5.0.0LTS。考慮到雖然是DEMO項目,但也有些體驗用戶,所以為了保障業務連續性,決定還是按照升級的方式,而不采取卸載重裝的方式。本篇從2.1.0經停3.0.0再到5.0.0版本升級過程的簡要總結,供朋友們參考和指導。

升級路徑:

官網對于從2.1.0到5.0.0的升級路徑是不保證成功的,但是對于2.0.0的升級路徑是支持的,可以從2.0.0到3.0.0,也可以從2.0.0直接到5.0.0,當然3.0.0也可以到5.0.0,如下圖所示:

?

參考:https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/DatabaseOMGuide/%E5%8D%87%E7%BA%A7%E5%89%8D%E5%BF%85%E8%AF%BB.html?

下面開始升級的操作過程:

1.?查看數據庫版本和狀態信息

gs_om -t status --detail

gsql -p 26000 -d postgres -U omm 

gaussdb –V 

2.?檢查OS

gs_checkos -i A (該命令需在root用戶下執行,可選執行)

3.?檢查數據庫和表信息

?創建了一個demo項目用的數據庫,以及用到的表,表里面有部分測試數據。

?

select count(1) from device;

4.?備份數據(商用環境務必執行,內部調測環境建議執行)

因升級如果失敗,存在數據庫不能啟動且不能回退的風險,因此強烈建議備份數據,具體備份策略可根據實際業務情況確定。

5.?創建3.0.0版本升級目錄目錄命名可自行確定,建議見名知意

偷懶起見,我把5.0.0的升級目錄也直接創建了,放在software目錄下,可根據個人情況自行制定。

mkdir gaussdb_upgrade3.0.0

6.?下載3.0.0版本軟件包

???進入創建好的3.0.0的目錄:?通過wget下載3.0.0的軟件包,注意查看操作系統及版本,制式正確。

wget:https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/x86_openEuler/openGauss-3.0.0-openEuler-64bit-all.tar.gz?

注意盡管3.0.5是3.0.x最新的包但是由于3.0.5版本發布日期比5.0.0更晚,因此不支持3.0.5到5.0.0的升級路徑。我剛開始用了這個包走了好多彎路,在HW朋友們的幫助和提醒下才后知后覺的了解到這點

7.?解壓

(這部分和安裝類似,就不做詳細展開)

tar zxvf openGauss-3.0.0-openEuler-64bit-all.tar.gz
tar zxvf openGauss-3.0.0-openEuler-64bit-om.tar.gz

8.?執行preinstall

(這部分和安裝類似,就不做詳細展開)

進入script目錄,執行preinstall命令,注意要用root用戶執行:

./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml

執行過程會詢問是否創建omm用戶,回復yes。

?

9.?修改目錄權限

如不修改會提示文件無訪問權限。

chmod 755 -R /opt/software/gaussdb_upgrade3.0.0/

10.?執行升級過程

關于openGauss就地升級和灰度升級的區別,主要在于灰度升級的時候業務不中斷。切換至omm用戶,執行升級命令,注意確認路徑在3.0.0。?

?

gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml --grey 

升級成功。

11.?檢查升級效果

檢查數據庫版本:

?檢查數據庫和表存在:

?

12.??提交升級

若經過3.0.0升級至5.0.0,則一定要提交升級,否則在升級5.0的時候會報錯。另外需注意,提交升級之后就不能再回退至升級前的版本了。

gs_upgradectl -t commit-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml

?

13.?再次查看數據庫版本和狀態信息

gs_om -t status –detail

---至此,版本已成功升級至3.0.0

14.?創建5.0.0版本升級目錄

(過程上需要記錄,但我們偷懶在前面已經一并創建了)

mkdir gaussdb_upgrade5.0.0

?

15.?下載5.0.0版本軟件包

wget:https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/x86_openEuler/openGauss-5.0.0-openEuler-64bit-all.tar.gz

仍然要確認好操作系統和版本以及制式。

16.?解壓5.0.0軟件包

tar zxvf openGauss-3.0.0-openEuler-64bit-all.tar.gz
tar zxvf openGauss-3.0.0-openEuler-64bit-om.tar.gz

17.?執行5.0.0?preinstall

(這部分和安裝類似,就不做詳細展開)

進入5.0.0的script目錄,執行5.0.0的preinstall,注意要用root用戶執行。

18.?修改目錄權限

chmod 755 -R /opt/software/gaussdb_upgrade5.0.0/

19.?執行升級過程

(推薦灰度升級方式)

切換至omm用戶,執行升級過程,確認目錄:

gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml –grey

說明:命令格式和3.0.0的升級一樣。?

20.?檢查升級效果

檢查數據庫版本

?

?檢查數據庫和表數據

?

21.?檢查無誤后提交升級

gs_upgradectl -t commit-upgrade -X /opt/software/openGauss/5.0.1/script/clustcfg/clust_config.xml

22.?再次查看數據庫版本和狀態信息?

至此,數據庫已經成功從2.1.0升級至5.0.0了,由于官網的不保證,升級之前還是很忐忑的,事實證明了openGauss實際是支持的,這是一種低調的實力。

說明:

  • 請大家忽略xml文件路徑中5.0.1的干擾,整個過程和5.0.1沒有關系,只是前面安裝5.0.1版本時把xml文件放置在這個目錄下,升級時懶得改了就沒動。

  • 從2.1.0也可以越過3.0.0直接升級至5.0.0,按照文中的操作步驟略作調整也可實現,考慮篇幅所限不單獨羅列了。

本文內容來自于數據庫領域資深技術專家趙鋒老師,希望我們的文章正好能解決你的問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10713.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2023版brupsuite專業破解安裝

安裝教程,分兩部分: 1、安裝java環境、參考鏈接JAVA安裝配置----最詳細的教程(測試木頭人)_java安裝教程詳細-CSDN博客 2、安裝2023.4版本brupsuite:參考鏈接 2023最新版—Brup_Suite安裝配置----最詳細的教程&…

Java---類和對象第一節

目錄 1.面向對象初步認識 1.1什么是面向對象 1.2面向對象和面向過程的區別 2.類的定義和使用 2.1簡單認識類 2.2類的定義格式 2.3類的實例化 2.4類和對象的說明 3.this關鍵字 3.1訪問本類成員變量 3.2調用構造方法初始化成員變量 3.3this引用的特性 4.對象的構造以…

一文弄懂 Linux 系統調用函數之 exec 函數族

目錄 簡介函數原型參數說明返回值函數區別使用示例采用參數列表傳遞參數,以 execl 為例采用參數數組傳遞參數,以 execv 為例調用 PATH 下可執行文件,以 execlp 為例使用新的環境變量給新進程,以 execle 為例 更多內容 簡介 exec …

【Java】/*方法的使用-快速總結*/

目錄 一、什么是方法 二、方法的定義 三、實參和形參的關系 四、方法重載 五、方法簽名 一、什么是方法 Java中的方法可以理解為C語言中的函數,只是換了個名稱而已。 二、方法的定義 1. 語法格式: public static 返回類型 方法名 (形參列表) { //方…

windows server 2019 安裝 docker環境

一、根據官方說明進行安裝 , 看起來過程相當簡單, 但問題還是有的 準備 Windows 操作系統容器 | Microsoft Learn // 一個 powershell 腳本,該腳本配置環境以啟用與容器相關的 OS 功能并安裝 Docker 運行時。 Invoke-WebRequest -UseBasicParsing "https://r…

【Docker】Ubuntu下Docker的基本使用方法與常用命令總結

【Docker】docker的基本使用方法 鏡像image與容器container的關系基本命令- 查看 Docker 版本- 拉取鏡像- 查看系統中的鏡像- 刪除某個鏡像- 列出當前 Docker 主機上的所有容器,包括正在運行的、暫停的、已停止的,以及未運行的容器- 列出當前 Docker 主機…

【信息系統項目管理師知識點速記】溝通管理:管理溝通

管理溝通是確保項目信息流通順暢的關鍵流程,涉及到信息的收集、生成、傳播、存檔、檢索、監管及最終處理,以促進項目團隊與利益相關者的有效互動。這一過程不僅關乎信息的發布,更側重于信息的恰當格式與精準送達,同時鼓勵利益相關者的積極參與,包括信息補充、澄清和討論。…

《二十一》QT QML編程基礎

QML概述 QML(Qt Meta-Object Language)是一種聲明性語言,它被用于描述Qt框架中用戶界面的結構和行為。QML提供了一種簡潔、靈活的方式來創建動態和交互式的界面。 QML基于JavaScript語法,通過使用QML類型和屬性來定義界面的元素…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 大家繼續看 https://lilianweng.github.io/posts/2023-06-23-agent/的文檔內容 第二部分:內存 記憶的類型 記憶可以定義為用于獲取、存儲、保留以及隨后檢索信息的過程。人腦中有多…

Mac 使用:Micosoft Remote Desktop 遠程優化

Micosoft Remote Desktop遠程優化 服務器 遠程會話環境設置 WinR打開運行,輸入gpedit.msc 找到計算機配置->管理模板->Windows組件->遠程桌面服務->遠程桌面會話主機->遠程會話環境。下面這幾個打開,有效提高rdp性能。 rdp協議同時使用…

自動駕駛---Behavior Planning之EUDM

1 背景 在前面的博客中,為讀者朋友們闡述了自動駕駛Planning模塊基于MCTS行為規劃的文章《自動駕駛---Behavior Planning之MCTS》,博客中引用的論文的主要思想是以蒙特卡洛樹來實現行為規劃。今天,我們繼續探尋另一種行為規劃的策略,主角依然是香港科技大學。 熟悉的讀者大…

vim 文件內容替換 cat 合并文件

vim 文件內容替換 第一步:首先要進入末行模式(在命令模式下輸入冒號:) 第二步:根據需求替換內容 ① 只替換光標所在這一行的第一個滿足條件的結果(只能替換1次) :s/要替換的關鍵詞/替換后的關鍵詞 回…

計數排序,基數排序,桶排序

目錄 計數排序: 基數排序: 桶排序: 計數排序: 計數排序是一種非比較型整數排序算法,特別適用于一定范圍內的整數排序。它的核心思想是使用一個額外的數組(稱為計數數組)來計算每個值的出現次數,然后根據這些計數信…

C語言中錯誤處理的基本實現

引入頭文件依賴&#xff1a; 標準輸入輸出流&#xff1a;#include <stdio.h>獲取錯誤信息&#xff1a;#include <string.h>&#xff0c;strerror通過這個頭文件獲取文件流&#xff1a;#include <stdlib.h>&#xff0c;fprintf通過這個頭文件獲取錯誤編號&…

hadoop生態圈集群搭建(持續更新240512)

Hadoop生態圈 Linux1.修改ip地址2.重啟network服務3.安裝插件4.關閉防火墻5.創建用戶6.創建目錄7.修改目錄的所屬主和所屬組為lxy8.修改主機名:hadoop102 (注意名字后面不要加空格)9.修改hosts文件10.等插件都裝完后再重啟Linux11.把xshell的登錄用戶換成lxy &#xff08;注意&…

【TC3xx芯片】TC3xx芯片時鐘監控

目錄 前言 正文 1.時鐘監控概念 1.1 時鐘監控原理 1.2時鐘監控配置寄存器

Node.js 的補充適用場景

Node.js 的適用場景相當廣泛&#xff0c;以下再補充一些具體的使用場景&#xff1a; 服務器端應用開發&#xff1a; Node.js特別適合于構建高性能、高并發、低延遲的服務器端程序。它可以用來開發Web服務器、API服務器、實時通訊服務器等。Node.js的高性能和事件驅動的非阻塞I…

day09-常用API異常

1.時間日期類 1.1 Date類&#xff08;應用&#xff09; 計算機中時間原點 1970年1月1日 00:00:00 時間換算單位 1秒 1000毫秒 Date類概述 Date 代表了一個特定的時間&#xff0c;精確到毫秒 Date類構造方法 方法名說明public Date()分配一個 Date對象&#xff0c;并初始化…

【大數據】HDFS

文章目錄 [toc]HDFS 1.0NameNode維護文件系統命名空間存儲元數據解決NameNode單點問題 SecondaryNameNode機架感知數據完整性校驗校驗和數據塊檢測程序DataBlockScanner HDFS寫流程HDFS讀流程HDFS與MapReduce本地模式Block大小 HDFS 2.0NameNode HANameNode FederationHDFS Sna…

使用注解的方式進行配置RabbitMQ

引入依賴&#xff1a; <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit-test</artifactId><scope>test</scope></dependency> 配置application.yml server:port: 8082 spring:rabbitmq…