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

目录

一、环境准备

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证书。致力于国产开源数据库在业务项目中的实践和应用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

静态网页设计——校园官网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 使用技术&#xff1a;HTMLCSSJS 主要内容&#xff1a;对学校官网的结构进行模仿&#xff0c;对布局进行模仿。 主要内容 1、首页 首页以多个div对页面进行分割和布局…

Fiddler抓包工具之fiddler界面工具栏介绍

Fiddler界面工具栏介绍 &#xff08;1&#xff09;WinConfig&#xff1a;windows 使用了一种叫做“AppContainer”的隔离技术&#xff0c;使得一些流量无法正常捕获&#xff0c;在 fiddler中点击 WinConfig 按钮可以解除这个诅咒&#xff0c;这个与菜单栏 Tools→Win8 Loopback…

CSS 缩小旋转动画

<template><div class="container" @mouseenter="startAnimation" @mouseleave="stopAnimation"><!-- 旋方块 --><div class="box" :class="{ rotate-scale-down: isAnimating }"><!-- 元素内容…

bat批处理文件_输出内容到文本

文章目录 1、echo str > test.txt&#xff08;覆盖原有内容&#xff09;2、echo str >> test.txt&#xff08;不覆盖原有内容&#xff0c;追加&#xff09; 1、echo str > test.txt&#xff08;覆盖原有内容&#xff09; 2、echo str >> test.txt&#xff0…

JavaWeb基础(3)-会话技术(cookie和session),过滤器(Filter),监听器(Listener)

JavaWeb基础&#xff08;3&#xff09;-会话技术(cookie和session)&#xff0c;过滤器(Filter)&#xff0c;监听器(Listener) 文章目录 JavaWeb基础&#xff08;3&#xff09;-会话技术(cookie和session)&#xff0c;过滤器(Filter)&#xff0c;监听器(Listener)8 会话技术(Coo…

【28】Kotlin语法进阶——使用协程编写高效的并发程序

提示&#xff1a;此文章仅作为本人记录日常学习使用&#xff0c;若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、Kotlin中的协程1.1 协程的基本用法1.1.1协程与协程作用域1.1.2 使用launch函数创建子协程1.1.3 通过suspend关键声明挂起函数1.1.4 coroutineScope函数 1.2…

Spark调优解析-sparkshuffle和程序开发优化2(七)

1Shuffle调优 1.1调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节&#xff0c;因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此&#xff0c;如果要让作业的性能更上一层楼&#xff0c;就有必要对shuffle过程进行调优。但是也必须提醒大家的是&a…

预判了预判,结局接受失败——2023年度总结

预判了预判&#xff0c;结局接受失败 引言一整年&#xff0c;你都在干什么活该解释我炒股前的上一份工作如何走上炒股之路计划的失败来得是那么干脆成功失败盈亏比失败预感与到来 失败的后果开始侵蚀得到失去 重新启程AI带来的改变当下的机会 新年Flag方向 总结 引言 时间过得…

【c++】入门3

引用 1.swap交换两个变量值的时候可以用引用 2.例题中通过前序遍历数组构建二叉树&#xff0c;可以用引用传别名. #include <stdio.h> #include <stdlib.h> typedef struct BinaryTreeNode {char data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; …

gz-hamonic 安装提示缺少许多依赖无法安装

在软件更新源中增加gz-hamonic的软件源&#xff0c; 点击添加&#xff0c;在输入框中填入如下语句&#xff1a; deb http://packages.osrfoundation.org/ubuntu jammy main 如图所示&#xff1a; 然后执行 sudo apt -get install gz-hamonic即可安装。 如下图 在终端中输入…

FFmpeg调用MediaCodec解码

在前面的博文中我们介绍了关于使用NDK编译FFMpeg6.0的一些坑以及相关的解决方法。 详情请参考&#xff1a;NDK编译ffmpeg6.0与x264的坑 在写《NDK编译ffmpeg6.0与x264的坑》一文的时候就说过了&#xff0c;我们编译FFmpeg6.0的目的就是为了体验一下它NDK式的MediaCodec硬解码…

密码学:一文看懂初等数据加密一对称加密算法

文章目录 对称加密算法简述对称加密算法的由来对称加密算法的家谱数据加密标准-DES简述DES算法的消息传递模型DES算法的消息传递过程和Base64算法的消息传递模型的区别 算法的实现三重DES-DESede三重DES-DESede实现 高级数据加密标准一AES实现 国际数据加密标准-IDEA实现 基于口…

启发式算法解决TSP、0/1背包和电路板问题

1. Las Vegas 题目 设计一个 Las Vegas 随机算法&#xff0c;求解电路板布线问题。将该算法与分支限界算法结合&#xff0c;观察求解效率。 代码 python代码如下&#xff1a; # -*- coding: utf-8 -*- """ Date : 2024/1/4 Time : 16:21 Author : …

Java爬虫获取省市区镇村5级行政区划

公司有个项目需要五级行政区划,没有现成的数据,写了一段代码,从gj统计j获取的数据。记录一下。 1.引入maven解析html <!-- jsoup --> <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.11.3&…

微信小程序自动化测试实战,支持录制回放、智能遍历

​为了满足小程序性能、功能等方面的测试需求&#xff0c;微信团队上线 小程序云测服务&#xff0c;提供丰富的自动化测试能力。其中 智能化 Monkey 服务 凭借着零代码、低成本的优势吸引不少开发者使用。 在服务使用过程中&#xff0c;我们发现开发者有更多的进阶需求&#x…

OAI openair3代码结构整理

openair3代码框架结构 OAI&#xff08;OpenAirInterface&#xff09;是一个开源的5G网络软件平台&#xff0c;用于研究和开发5G网络技术。OpenAir3是OAI项目中的一个子项目&#xff0c;专注于5G核心网络的功能实现。 一、OpenAir3的代码主要包括以下几个部分&#xff1a; NAS…

Proxmox VE 8 安装开源监控平台Centreon 23

作者&#xff1a;田逸&#xff08;formyz&#xff09; 非常好用的开源监控系统Centreon从版本号21.40以后&#xff08;包括Centreon 21.40这个版本&#xff09;&#xff0c;不在提供ISO一键式安装包&#xff0c;取而代之的是在线脚本安装和VMware虚拟机或者Oracle VirtualBox 虚…

初识MySQL

一、什么是数据库 数据库&#xff08;Database&#xff0c;简称DB&#xff09;&#xff1a;长期存放在计算机内&#xff0c;有组织、可共享的大量数据的集合&#xff0c;是一个数据“仓库”。 数据库的作用&#xff1a; 可以结构化存储大量的数据&#xff0c;方便检索和访问…

2024最新Java基础面试题大全(一)

1、String可以被继承&#xff1f; 不能被继承&#xff0c;因为String类有final修饰符&#xff0c;而final修饰的类是不能被继承的。 public final class String implements java.io.Serializable, Comparable<String>, CharSequence {// 省略...  }2、常见集合类 Java…

ChatGPT到底能做什么呢?

1、熟练掌握ChatGPT提示词技巧及各种应用方法&#xff0c;并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告&#xff0c;提供写作能力及优化工作 3、熟练掌握ChatGPT融合相关插件的应用&#xff0c;完成数据分析、编程以及深度学习等相关科研项目。 4、…