openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读

文章目录

    • openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读
      • 180.1 升级方案
      • 180.2 升级前的版本要求
      • 180.3 升级影响和升级约束

openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读

180.1 升级方案

本节为指导用户选择升级方式。

用户根据openGauss提供的新特性和数据库现状,确定是否对现有系统进行升级。

当前支持的升级模式为就地升级、灰度升级和滚动升级。升级方式的策略又分为大版本升级和小版本升级。版本号不变的升级方式为小版本升级,否则就是大版本升级。升级软件包的版本号在升级文件压缩包中的version.cfg的第2行查看。当前版本的版本号在$GAUSSHOME/bin下面upgrade_version文件的第2行查看。

用户挑选升级方式后,系统会自动判断并选择合适的升级策略。

就地升级:升级期间需停止业务进行,一次性升级所有节点。

灰度升级:灰度升级支持全业务操作,也是一次性升级所有节点。(openGauss1.1.0版本之后的版本支持该功能)

滚动升级:基于灰度升级,支持升级指定节点,支持部分节点升级。(openGauss3.1.0版本之后的版本支持该功能)

180.2 升级前的版本要求

openGauss升级版本要求如表1所示。

表 1 升级前的版本要求(升级路径)

版本升级说明
openGauss2.0.x版本可以升级到openGauss3.0.x版本
openGauss2.0.x版本可以升级到openGauss5.0.x版本
openGauss3.0.x版本可以升级到openGauss5.0.x版本

重点说明: 升级只保证LTS版本升级成功,创新版本不保证升级成功,优先推荐安装LTS版本,不推荐使用创新版上生产环境。

img 说明: 升级前版本,可以通过执行如下工具查看。

gsql -V | --version

180.3 升级影响和升级约束

升级过程需要注意以下事项。

  • 升级操作不能和扩容、缩容同时执行。

  • 不支持虚拟IP。

  • 升级过程中,不允许对wal_level,max_connections,max_prepared_transactions,max_locks_per_transaction这四个GUC参数的值进行修改。如果修改,会导致回滚后实例启动异常。

  • 建议在数据库系统空闲情况下进行升级,尽量避开业务繁忙的时间段(可按照经验判断,如节假日等)。

  • 升级前尽可能保证数据库正常。可以通过gs_om -t status查询,查询结果的cluster_state为Normal代表数据库正常。

  • 升级前保证数据库互信正常,可以在任意节点上,通过ssh hostname命令,连接另外一个节点进行验证。如果各机器间互连不用输入密码,说明互信正常(通常数据库状态正常时,互信一般都是正常的)。

  • 升级前后,数据库的部署方式(配置文件)不能发生变化。升级前会对部署方式进行校验,如果改变,会报错。

  • 升级前要保证操作系统处于健康状态,通过gs_checkos工具可以完成操作系统状态检查。

  • 就地升级需要停止业务,灰度升级支持全业务操作。

  • 数据库运行正常且主DN的数据完全同步到备DN。

  • 升级过程中不允许打开kerberos开关。

  • 请不要修改安装包中解压出来的version.cfg文件。

  • 如果升级过程中出现异常导致升级失败,需用户手动回滚,并且必须回滚成功后才能进行下一次升级。

  • 如果升级回滚成功后,再次升级成功,未提交阶段设置的GUC参数将失效。

  • 执行升级的过程中请不要手动设置GUC参数。

  • 灰度升级中,升级的时候都会产生不超过10s的业务中断。

  • 升级过程中,必须保持内核版本与om版本一致才可执行om操作。这里的一致是指,内核代码和om代码都来自同一个软件包。如果执行了升级包的前置脚本却没有升级,或者升级回滚后没有执行基线包的前置脚本,就会造成内核代码和om代码的不一致。

  • 升级过程中如果系统表新增了字段,升级后通过\d命令将查看不到这些新增的字段。此时通过select命令可以查到这些新增的字段。

  • 升级需要guc参数enable_stream_replication=on,该参数为off时不允许升级。

  • 灰度升级中, 业务并发要小于200并发读加200并发写的情况。

  • 若在openGauss2.0.0之前的版本中使用了MOT表,则不支持升级到openGauss2.0.0版本。

  • 升级过程中,请勿在当前机器上安装其他opengGauss数据库集群。

  • 升级中会连接template0库,期间执行create database会报错。

  • openGauss资源池化模式集群仅支持从基线版本大于等于5.0.0的版本升级到之后的版本。

  • openGauss资源池化模式集群不支非资源池化集群升级到资源池化集群以及资源池化集群升级到非资源池化集群,不支持RDMA模式下的升级。

  • openGauss资源池化模式集群升级不再备份catalog物理文件,请在升级前使用gs_probackup备份数据,防止故障后数据丢失。

  • PL/Java升级约束

    从3.0.0及其之前版本升级到3.1.0及其后续版本时,如果业务使用PL/Java功能且数据库实例所在机器上不存在java环境时,升级前check检查将失败。因此需提前确认是否使用到PL/Java功能和当前的JAVA版本。检查方法为:

    1. 在数据库中使用初始化用户执行“select count(1) from pg_proc where prolang = 15;”命令。

      • 如果结果> 0,说明数据库使用了PL/Java,参考2进一步检查是否有Java环境。
      • 如果结果= 0,说明数据库没有使用PL/Java。则结束本校验,执行其他校验流程。
    2. 在操作系统中使用root用户执行“java -version”命令。

      java -version
      
      • 如果Java存在,且版本等于或高于JDK1.8,则结束本校验,执行其他校验流程。
      • 如果Java不存在或版本低于JDK1.8,则需要参考3进行JDK的下载及Java环境变量的配置。
    3. JDK的下载及Java环境变量的配置。

      可从官网下载或者使用此链接下载:https://www.hikunpeng.com/zh/developer/devkit/compiler/jdk,并通过以下方式配置环境变量:

      export JAVA_HOME=/xxx/jdk1.xxx
      export PATH=$JAVA_HOME/bin:$PATH 
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
      

img 说明:

  • JDK目录及版本需根据实际路径及版本号进行替换。
  • 升级检查仅校验执行升级命令的节点的Java环境变量,若其他节点也需要使用PL/Java,请同步进行JDK的下载及Java环境变量的配置,否则PL/Java将无法使用。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/823831.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙OS应用开发之气泡提示

前面学习了弹窗提示,其实有时候只是想在旁边做一些说明,那么采用弹窗的方式就比较麻烦一些,这时可以采用系统里面的气泡提示方式。 系统也提供了几种方式弹出气泡提示,最简单的一种是采用bindPopup属性。它的定义如下: 在后面的参数设置里,也是比较复杂的形式。我们先来演…

ESP32入门六(读取引脚的模拟信号[3]:信号出现误差的原因[硬件篇])

在之前的文章中,我们介绍了ESP32在读取模拟信号时出现的误差的软件方面原因,在这一篇中,将会介绍并测试由于硬件或其它方面导致数据出现误差的原因。 一、厂商原因 首先,我们需要知道,在每块EPS32中,在出…

网络安全—认证技术

文章目录 加密认证对称密钥体制公钥密码体制公钥的加密公钥身份认证和加密 鉴别码认证MAC鉴别码 报文摘要认证认证 加密只认证数字签名 通过了解以前前辈们使用的消息认证慢慢渐进到现代的完整的认证体系。所以在学习的时候也很蒙圈,因为前期的很多技术都是有很严重…

第七课:计算机网络、互联网及万维网(WWW)

第七课:计算机网络、互联网及万维网(WWW) 第二十八章:计算机网络1、局域网 Local Area Networks - LAN2、媒体访问控制地址 Media Access Control address - MAC3、载波侦听多路访问 Carrier Sense Multiple Access - CSMA4、指数…

mac中excel条件格式找到每一列的最大值并标红

假设现在excel有A1:R24组数据,最终效果如下 先选择要处理数据的第一列,然后点击【条件格式】-【新建规则】 style选择【classic】以及【Use a formula to determine which cells to format】,输入规则【C3MAX(C$3:C$24)】 注意这里C$3前面没…

结构体:子网掩码

#include<iostream> using namespace std; union IP //创建共用体 {unsigned char a[4];unsigned int ip; }; IP getIP() //获取ip函数 {int a, b, c, d;scanf_s("%d.%d.%d.%d", &a, &b, &c, &d);IP address;address.a[3] a; address.a[2] …

【12月比赛合集】22场可报名的数据挖掘大奖赛,任君挑选!

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 以下信息仅供参考&#xff0c;以比赛官网为准 目录 Kaggle&#xff08;5场比赛&#xff09;阿里天池&#xff08;…

人工智能——移动摄影技术

目录 封面 1 .移动计算摄影简介 2.手机相机的硬件限制 2.1 传感器尺寸和镜头孔径 2.2 噪声和动态范围 2.3 景深 2.4 变焦 2.5 色彩欠采样 3 .相机图像处理流水线 3.1 相机传感器 3.2 相机流水线 5.拓展 1 .移动计算摄影简介 现代数字摄影的进度始终伴随着图像传感器…

杰发科技AC7840——EEPROM初探

0.序 7840和7801的模拟EEPROM使用不太一样 1.现象 按照官方Demo&#xff0c;在这样的配置下&#xff0c;我们看到存储是这样的&#xff08;连续三个数字1 2 3&#xff09;。 使用串口工具的多帧发送功能 看不出多少规律 修改代码后 发现如下规律&#xff1a; 前四个字节是…

Vue2 - v-model 简介

目录 1&#xff0c;原理1.1&#xff0c;作用于表单元素1.2&#xff0c;作用于自定义组件 2&#xff0c;编译结果展示2.2&#xff0c;表单元素2.1&#xff0c;自定义组件 1&#xff0c;原理 官网参考 v-model 是一个语法糖&#xff0c;最终会生成一个属性和一个事件。并且即可…

每日一题——LeetCode976

方法一 个人方法 找规律&#xff1a; 要求要围成三角形且周长最大&#xff0c;那么三条边自然是越大且越接近越好。那么我们就从最大的三条边开始看能不能围成三角形。如果不能组成三角形&#xff0c;则丢弃最长的那条&#xff0c;再取剩余边里最长的那条再看能不能组成三角形…

基于SSM的蛋糕甜品店管理系统的设计与开发论文

基于SSM的蛋糕甜品店管理系统的设计与开发 摘要 如今&#xff0c;科学技术的力量越来越强大&#xff0c;通过结合较为成熟的计算机技术&#xff0c;促进了学校、医疗、商城等许多行业领域的发展。为了顺应时代的变化&#xff0c;各行业结合互联网、人工智能等技术&#xff0c…

Getway介绍和使用

Getway 入门简介 网关搭建步骤&#xff1a; 创建项目&#xff0c;引入nacos服务发现和gateway依赖 配置application.yml&#xff0c;包括服务基本信息、nacos地址、路由 路由配置包括&#xff1a; 路由id&#xff1a;路由的唯一标示 路由目标&#xff08;uri&#xff09;…

react-router-dom5升级到6

前言 升级前版本为5.1.2 下载与运行 下载 npm install react-router-dom6运行 运行发现报错: 将node_modules删除&#xff0c;重新执行npm i即可 运行发现如下报错 这是因为之前有引用react-router-dom.min&#xff0c;v6中取消了该文件&#xff0c;所以未找到文件导致报错。…

AcWing 1076. 迷宫问题(最短路模型)

题目链接 活动 - AcWing本课程系统讲解常用算法与数据结构的应用方式与技巧。https://www.acwing.com/problem/content/description/1078/ 来源 《信息学奥赛一本通》, kuangbin专题 , POJ3984 代码 #include <cstring> #include <iostream> #include <alg…

【linux】head的用法 输出文件开头的内容

在linux可以用find查找一个文件&#xff0c;可以用grep查找符合要求的文件内容&#xff0c;但是有的时候希望查看文件的前几行或者后几行&#xff08;其实这种场景经常可以遇到&#xff0c;比如接触到日志分析的时候&#xff09;&#xff0c;那就应该使用head和tail这两个工具了…

uni-app page新建以及page外观配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

OCP NVME SSD规范解读-4.NVMe IO命令-2

NVMe-IO-3&#xff1a; 由于设备具有掉电保护功能&#xff08;如Power Loss Protection&#xff0c;PLP&#xff09;&#xff0c;因此在以下情况下&#xff0c;性能不应降低&#xff1a; FUA&#xff08;Force Unit Access&#xff09;&#xff1a;是计算机存储设备中的一种命…

前端 js 基础(1)

js 结果输出 &#xff08;点击按钮修改文字 &#xff09; <!DOCTYPE html> <html> <head></head><body><h2>Head 中的 JavaScript</h2><p id"demo">一个段落。</p><button type"button" onclic…

【数据结构】链式家族的成员——循环链表与静态链表

循环链表与静态链表 导言一、循环链表1.1 循环单链表1.2 循环双链表 二、静态链表2.1 静态链表的创建2.2 静态链表的初始化2.3 小结 结语 导言 大家好&#xff01;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 经过前面的介绍&#xff0c;相信大家对链式家族的…