openGauss 5.0.0企业版一主一备安装部署

news2024/11/19 9:39:01

目录

一、环境准备

1. 华为云购买两台ECS

1.1查看openEuler版本,操作系统版本及CPU的制式是基础

1.2查看CPU模式 

1.3操作系统环境准备

2. 集群配置XML文件准备:

2.1集群参数配置:

2.2主机参数配置:

2.3备机参数配置:

二、预安装

1. 执行preinstall命令:

2. 提示输入omm用户的密码:

3. 再次输入omm用户的密码:

 4. 一些安装过程由于粗心遇到的小问题,根据提示修改后重新执行即可。

三、安装

1. 安装命令需要用omm用户执行,先切换至omm;

 2. 如果没有赋予xmlfile文件夹的权限,则会报错:

3. 赋予权限:

4. 安装过程需要输入数据库密码,输入并妥善记录。

 5. 安装完成后会有如下提示:

四、启动和集群状态检查

1. 启动:gs_om -t restart

 2. 集群状态检查:gs_om -t status --detail

五、主备切换

1. 登录备机,查看集群状态

2. 备机升主,更新配置文件

3. 重新查看集群状态,发现主备机已经互相切换。 

六、一些其他操作

七、本文作者


背景

最近项目在使用openGauss数据库,当初选择时综合考虑华为大厂背景、国产开源、免费使用,以及我也拥有openGauss的HCIA证书,对openGauss较为熟悉,所以选择openGauss。两年前初次部署选的是2.1.0版本,目前社区已经出了5.1.0版本,作为项目使用也得替换为LTS版本,所以此次进行5.0.0企业版的安装。且通过一主一备的部署方式增加数据的可靠性。#印象深刻的实战经历


题外话:关于openGauss的版本号

openGauss版本号采用点分位命名规则(X.Y.Z)模式,其中X.0.0表示LTS版本,X.Y.0表示preview版本,Z表示补丁版本。

LTS版本发布间隔周期1年,社区提供3年维护支持。preview版本发布间隔周期1年,社区提供0.5年维护支持。


一、环境准备

1. 华为云购买两台ECS

如图:一主一备部署需要准备两台服务器分别作为主机和备机,操作系统仍然用openEuler 20.03 LTS,CPU选择的制式是X86。说明:内存最少需要16G。

Tips:官网要求最小内存32G,考虑到卡里余额,我只买了4核16G的机器,也可以安装成功。

1.1查看openEuler版本,操作系统版本及CPU的制式是基础

[root@ecs-caa2 ~]# cat /etc/openEuler-release 
openEuler release 20.03(LTS)

 

1.2查看CPU模式 

lscpu  Architecture:       x86_64 
CPU op-mode(s):        32-bit, 64-bit

注意:X86的CPU,下载安装包的时候记得要下载X86的。如果下了arm架构的会有其他莫名其妙的报错。相信不会有人犯这样的错误除了我。

1.3操作系统环境准备

  • 设置字符集参数(主备机都要执行)

vi/etc/profile
export LANG=en_US.UTF-8
source/etc/profile
  • 修改Python版本(主备机都要执行)

cd /usr/bin
mv python python.bak
ln -s python3 /usr/bin/python
python -V
  • 下载安装包(创建目录和修改目录权限需要主备机都执行,下载和解压安装包只需要在主机执行)

创建目录:mkdir/opc/software/openGauss/

下载安装包

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



解压安装包

tar -zxvf openGauss-5.0.0-openEuler-64bit-all.tar.gztar zxvf openGauss-5.0.0-openEuler-64bit-om.tar.gz
修改目录权限:chmod 755 -R /opt/software
chmod 755 -R /opt/software/openGauss/script/
  • 修改yum源:(主备机都要执行)

cd /etc/yum.repos.dNAME="openEuler"
上传文件:openEulerOS.repo到该目录下。
执行命令:yum clean all
执行命令:yum makecache
(执行命令的服务器需要有外网访问的权限)

  • 安装依赖包:(主备机都要执行)

1.Expect:
 yum install expect
2.其他
 yum install -y bzip2 bzip2-devel curl libaio libaio-devel readline-devel

 yum install libaio* -y

  • 关防火墙(主备机都要执行)

vim /etc/selinux/config

SELINUX=disabled
重启系统:reboot
检查:systemctl status firewalld

若仍然是active(running)状态,则执行下面两个命令:
systemctl disable firewalld.service
systemctl stop firewalld.service
再次检查:systemctl status firewalld

 1)关共享内存 (主备机都要执行)

swapoff -a

2)关闭RemoveIPC(主备机都要执行),修改“RemoveIPC”值为“no”。

vi /etc/systemd/logind.conf

3)检查hostname与/etc/hostname是否一致(主备机都要执行)

Hostname 
cat /etc/hosts
cat /etc/hostname

注意hostname文件中不能有其他内容,之前包含了注释的localhost导致报错如下:

[FAILURE] bogon:
[GAUSS-51248] : The hostname(bogon) may be not same with hostname(/etc/hostname) Command: "pssh -s -H bogon 'cat /etc/hostname'". Error:
bogon
#localhost.localdomain
[FAILURE] bogon2:
[GAUSS-51248] : The hostname(bogon) may be not same with hostname(/etc/hostname) Command: "pssh -s -H bogon 'cat /etc/hostname'". Error:
Bogon

红框中的内容删除掉后执行预安装成功。

注意除了下载安装包以外,其余关于环境的准备,需要在主备两台机器都进行操作。

2. 集群配置XML文件准备:

最主要的工作量就在准备XML文件了(我实验的路径是按照默认,具体项目可根据实际情况调整文件路径)。

2.1集群参数配置:

<?xml version="1.0" encoding="utf-8"?>
<ROOT>  <CLUSTER>
    <PARAM name="clusterName" value="opengauss" />
    <PARAM name="nodeNames" value="db1,db2"/>
    <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
    <PARAM name="gaussdbLogPath" value="/var/log/omm" />
    <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>
    <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
    <PARAM name="corePath" value="/opt/huawei/corefile"/>
    <PARAM name="backIp1s" value="192.168.197.18,192.168.197.19"/>
  </CLUSTER>

2.2主机参数配置:

<DEVICE sn="db1">
      <PARAM name="name" value="db1"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="192.168.197.18"/>
      <PARAM name="sshIp1" value="192.168.197.19"/>
      <!-- dn -->
      <PARAM name="dataNum" value="1"/>
      <PARAM name="dataPortBase" value="15400"/>
<!--这个参数很关键,和单机版有明显区别,其中红色字体的为需要增加的内容,配置备机的数据目录-->
      <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,db2,/opt/huawei/install/data/dn"/>
      <PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>

2.3备机参数配置:

<DEVICE sn="bogon2">
      <PARAM name="name" value="db2"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="192.168.197.19"/>
      <PARAM name="sshIp1" value="192.168.197.19"/>
      <!-- dn -->
    </DEVICE>
<!--和单机版相比,不用配置备机的dbnode信息,如果配置了,则安装完成后,备机也会处于主机状态-->

配置完后的xml文件放在openGauss/xmlfile文件夹下面。

[root@bogon xmlfile]# ls /opt/software/openGauss/xmlfile/
cluster_config.xml

需要赋予xmlfile文件夹权限:

chmod 755 -R /opt/software/openGauss/xmlfile/NAME="openEuler"

二、预安装

1. 执行preinstall命令:

./script/gs_preinstall -U omm -G dbgrp -X
/opt/software/openGauss/xmlfile/cluster_config.xml

Preinstall过程中会需要几次提示和输入几次密码,按照提示输入响应密码并妥善记录。

2. 提示输入omm用户的密码:

3. 再次输入omm用户的密码:

 

 Preinstall成功结束后会有如下提示:

 

 4. 一些安装过程由于粗心遇到的小问题,根据提示修改后重新执行即可。

 如果xml文件名或者文件夹错误,则会报错如下:  

 如果xml文件里面的hostname和实际的hostname不一致,则会报错如下:

 

三、安装

1. 安装命令需要用omm用户执行,先切换至omm;

su omm
gs_install -X /opt/software/openGauss/xmlfile/cluster_config.xml

 2. 如果没有赋予xmlfile文件夹的权限,则会报错:

[GAUSS-50236]:the /opt/software/openGauss/xmlfile/cluster_config.xml does not exist

or the permission on the upper-layer directory is insufficient.

3. 赋予权限:

chmod 755 -R /opt/software/openGauss/xmlfile/ 
chmod 755 -R /opt/software/openGauss/script

赋予权限时要用root用户,赋予后重新切换为omm用户进行安装。

4. 安装过程需要输入数据库密码,输入并妥善记录。

 5. 安装完成后会有如下提示:

 

四、启动和集群状态检查

1. 启动:gs_om -t restart

 

 2. 集群状态检查:gs_om -t status --detail

 

  

五、主备切换

1. 登录备机,查看集群状态

gs_om -t status --detail

2. 备机升主,更新配置文件

gs_ctl switchover -D /opt/huawei/install/data/dn

3. 重新查看集群状态,发现主备机已经互相切换。 

六、一些其他操作

修改端口号:由于2.0默认端口号是26000,我安装完成后把端口号又改为了26000。修改postgresql.conf文件和pg_hba.conf文件的部分配置,以便可以远程连接数据库,注意修改完后需重启集群才生效。

七、本文作者

本文内容来自于数据库领域资深技术专家赵锋老师,OpenHarmony WEB3 TSG成员。

先后就职于大唐电信、华为和软通动力,拥有多年项目开发,设计和优化运维经验。在数据库领域摸爬滚打多年,经历过Oracle,DB2和SQL Server的时代,国产数据库崛起后,对华为GaussDB系列数据库进行了深入学习和研究,获得华为GaussDB HICA、GaussDB HCIP、GaussDB HICA SI以及openGauss HCIA证书。致力于国产开源数据库在业务项目中的实践和应用。

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

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

相关文章

代码随想录算法训练营第五十八天|739. 每日温度、496.下一个更大元素I

代码随想录 (programmercarl.com) 739. 每日温度 栈里面存放的是元素的下标&#xff0c;确保栈里面的下标对应的元素是单调递增的。 如果栈里面存放的是元素的话&#xff0c;就没有办法定位到下标值&#xff0c;无法计算出距离&#xff0c;所以直接就存入下标。 class Solut…

Springboot配置http-Only

项目框架 jdk1.8、springboot2.5.10 情况一 项目中未使用&#xff08;权限认证框架&#xff1a;Sa-Token&#xff09; application.yml文件内增加配置 server.servlet.session.cookie.http-onlytrueserver.servlet.session.cookie.securetrue (此条配置建议也加上) 情况二…

AOP(面向切面编程)基于注解方式配置

不会注解的小伙伴看这里哦&#xff1a;Spring常用注解&#xff01;&#xff01;&#xff01;-CSDN博客 pom.xml <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version&g…

ssm基于WEB的人事档案管理系统的设计与实现论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

华为 1+X《网络系统建设与运维(初级)》 认证实验上机模拟试题

华为 1X《网络系统建设与运维&#xff08;初级&#xff09;》认证实验上机模拟试题 一、考试背景二、考试说明2.1考试分数说明2.2考试要求2.3考试环境介绍2.4启动考试环境2.5保存答案 三、考试正文3.1考试内容3.1.1任务 1&#xff1a;设备连接3.1.2任务 2&#xff1a;设备命名3…

Java中的Queue

Java中的Queue 在Java中&#xff0c;Queue 接口代表了一个队列数据结构&#xff0c;它按照先进先出&#xff08;First In, First Out&#xff0c;FIFO&#xff09;的原则进行元素的操作。Queue 接口扩展自 Collection 接口&#xff0c;定义了一系列方法&#xff0c;包括添加、删…

[AutoSar]DaVinci Developer 命名规范

目录 关键词平台说明一、背景二、Component命名约定2.1Component Type Composition&#xff08;CtCo&#xff09;2.2Component Type Application&#xff08; CtAp&#xff09;2.3Component Type SensorActuator&#xff08;CtSa&#xff09;2.4Component Type Complex Driver&…

iview inputNumber有一个默认值1,来看解决方案

iview inputNumber为什么总有一个默认值1&#xff0c;怎么让它为空。 修改编辑没问题&#xff0c;赋值都没问题&#xff0c;但是新增的时候会有默认值1&#xff0c;也没赋值 这种情况你要手动解决&#xff0c;看看当前值有没有被覆盖 我这个问题就是出现覆盖导致的 看代码似乎…

03- OpenCV:矩阵的掩膜操作

目录 1、矩阵的掩膜操作 简介 2、获取图像像素指针 3、掩膜操作解释 4、代码演示 1、矩阵的掩膜操作 简介 在OpenCV中&#xff0c;矩阵的掩膜操作是一种通过使用一个二进制掩膜来选择性地修改或提取图像或矩阵的特定区域的方法。 掩膜是一个与原始图像或矩阵具有相同大小的…

家长心里发慌:孩子的未来在哪里!羚羊告诉您!

ChatGPT 自发布以来&#xff0c;火爆出圈。一时间&#xff0c;让更多的普通人对人工智能 AI有了更直观地了解和体验。既有赞赏也有担忧。当然更多的是引发了各种讨论和担忧。ChatGPT 不仅能够写诗、写代码、写文案&#xff0c;甚至能独立完成一篇学术论文。与前几代 AI 相比&am…

04 supervised learning

Summary: unspervised learning clustering&#xff08;聚类算法&#xff09;Anomaly detection&#xff08;异常检测&#xff09; Recommender Systems&#xff08;推荐系统&#xff09;Reinforcement Learning&#xff08;强化学习&#xff09; 一 、 K-means算法 1.Notio…

假设法做线段树

合并lazy-tag&#xff1a;指的是把一些能合并的合并了&#xff0c;如果有多种 lazy-tag 的话&#xff0c;每一层最多只存在一个tag。 下面&#xff0c;这是一道区间乘与区间加的混合。 P3373 【模板】线段树 2 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu…

静态网页设计——红旗汽车官网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1gK411x7Bg/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…

基于SSM框架和Layui框架的管理系统

计算机毕业设计&#xff1a;打造安全、高效的信息管理系统在这个数字化时代&#xff0c;信息安全和高效管理是至关重要的。为了帮助学校或机构更好地管理和保护信息&#xff0c;我们为您设计了一套功能强大的信息管理系统。该系统利用先进的技术&#xff0c;结合MD5加密&#x…

250:vue+openlayers 加载geotiff文件,并在地图上显示

第250个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中加载geotiff文件,并在地图上显示。这里使用到了WebGLTile图层和GeoTIFF脚本模块。这里一定要注意GeoTIFF的数据加载方式,要数组的模式。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现…

Java学习——设计模式——行为型模式1

文章目录 行为型模式模板方法策略模式命令模式责任链模式 行为型模式 行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务&#xff0c;涉及算法与对象间职责的分配。 行为型模式分为类行为模式和…

喜讯频传!安全狗获评CCIA“2023年度先进会员单位”

1月4日&#xff0c;2023年度中国网络安全产业联盟会员大会暨理事会在北京成功举办。 作为国内云原生安全领导厂商&#xff0c;安全狗也受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;创办于2013年&#xff0c;是国内领先的云安…

C#高级 09 IEnumerable可枚举类型--可迭代类型

了解Linq操作需先了解IEnumerable可枚举类型–可迭代类型&#xff0c;因为Linq中的很多函数的返回值类型和传入的形参类型都是IEnumerable的。 IEnumerable可枚举类型–可迭代类型 只要一个类型实现了IEnumerable接口&#xff0c;就可以对这个类型进行遍历。 首选来看IEnumer…

力扣题:高精度运算-1.4

力扣题-1.4 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;306. 累加数 解题思想&#xff1a;首先先通过secondStart和secondEnd可以确定num1 num[0:secondStart],num2 num[secondStart:secondEnd]&#xff0c;然后遍历secondStart和secondEnd…

理解二叉树的遍历(算法村第七关白银挑战)

二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3]解 LeetCode以及面试中提供的方法可能…