openGauss 6.0一主二备高可用架构部署,可靠很行

2024年 6月 18日 64.8k 0

作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

文章目录

    • 前言
    • 📣 1.官方说明及下载
    • 📣 2.部署前准备
      • ✨ 2.1 环境准备
      • ✨ 2.2 yum配置
      • ✨ 2.3 关闭SeLinux
      • ✨ 2.4 关闭防火墙
      • ✨ 2.5 设置时区和时间
      • ✨ 2.6 内核修改
      • ✨ 2.7 关闭透明大页
      • ✨ 2.8 python安装
    • 📣 3.一主二备安装
      • ✨ 3.1 前提条件
      • ✨ 3.2 安装包解压
      • ✨ 3.3 XML配置文件
      • ✨ 3.4 用户及组创建
      • ✨ 3.5 初始化安装
      • ✨ 3.6 正式安装
    • 📣 4.安装验证
      • ✨ 4.1 集群状态检查
      • ✨ 4.2 数据库登陆
      • ✨ 4.3 集群启动及关闭

前言

openGauss 6.0一主二备高可用架构部署体验后感觉,可靠很行

📣 1.官方说明及下载

6.0.0版本下载地址
https://opengauss.org/zh/download/
官方gitee地址
https://gitee.com/opengauss/openGauss-server/issues

openGauss 6.0一主二备高可用架构部署,可靠很行-1

📣 2.部署前准备

✨ 2.1 环境准备

##操作系统
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

##主机host设置
主库:hostnamectl set-hostname gaussdb1
备库1:hostnamectl set-hostname gaussdb2
备库2:hostnamectl set-hostname gaussdb3

也可以通过以下办法修改主机名
cat>> /etc/hosts >/etc/security/limits.conf
echo "* soft nproc unlimited">>/etc/security/limits.conf
echo "* hard nproc unlimited">>/etc/security/limits.conf

vi /etc/security/limits.d/90-nproc.conf
* soft nproc unlimited ## 系统支持的最大进程数

echo "* soft nproc unlimited">>/etc/security/limits.d/90-nproc.conf

内核参数配置
vi /etc/sysctl.conf
sysctl -p # 使内核参数生效

net.ipv4.conf.ens33.rp_filter=1
虚拟机没有万兆网卡不能配置该项,否则认证报错!

cat>> /etc/sysctl.conf /sys/kernel/mm/transparent_hugepage/enabled

cat >> /etc/rc.local /sys/kernel/mm/transparent_hugepage/defrag
EOF

chmod +x /etc/rc.d/rc.local

grep Huge /proc/meminfo
HugePages_Total:显示0 表示设置成功

✨ 2.8 python安装

[root@gaussdb1 ~]# python -V
Python 2.7.5

CentOS:支持Python 3.6.X,python需要通过--enable-shared方式编译
1.依赖包安装
[root@gaussdb1 ~]# yum install -y zlib*
[root@gaussdb1 ~]# rpm -qa | grep zlib
zlib-1.2.7-18.el7.x86_64
zlib-devel-1.2.7-18.el7.x86_64

--安装gcc
yum install gcc

2.安装包下载
python官网 https://www.python.org/downloads/release/python-3615/下载安装包即可
安装包为:Python-3.6.15.tgz

3.解压并编译
cd /opt
tar -zxvf Python-3.6.15.tgz
cd Python-3.6.15/
./configure --prefix=/usr/local/python3 --enable-shared

4.编译安装
make -j4
make install
注意:make编译时间比较长,耐心等待

5.OS上设置python的软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

6.环境校验
python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/

[root@gaussdb1 ~]# python3 -V
Python 3.6.15

[root@gaussdb1 ~]# python3
Python 3.6.15 (default, Sep 30 2023, 08:38:09)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

openGauss 6.0一主二备高可用架构部署,可靠很行-2

📣 3.一主二备安装

✨ 3.1 前提条件

前提条件:
已完成用户组和普通用户的创建。
所有服务器操作系统和网络均正常运行。
普通用户必须有数据库包解压路径、安装路径的读、写和执行操作权限,并且安装路径必须为空。
普通用户对下载的openGauss压缩包有执行权限。
安装前请检查指定的openGauss端口矩阵中所有端口是否被占用,如果被占用请更改端口或者停止当前使用端口进程。

✨ 3.2 安装包解压

注意:上传安装包到服务器/opt/openGauss,主节点操作即可
mkdir /opt/openGauss
mkdir /openGauss --openGauss安装目录

##解压安装包
chmod 755 -R /opt/openGauss
cd /opt/openGauss
[root@gaussdb1 openGauss]# tar -zxvf openGauss-6.0.0-RC1-CentOS-64bit-all.tar.gz
[root@gaussdb1 openGauss]# ll
total 315752
drwxr-xr-x. 2 root root 4096 Jun 16 21:03 openGauss
-rw-rw-rw-. 1 root root 149449208 Jun 16 20:47 openGauss-6.0.0-RC1-CentOS-64bit-all.tar.gz
-rw-r--r--. 1 root root 109 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit-cm.sha256
-rw-r--r--. 1 root root 22466710 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit-cm.tar.gz
-rw-r--r--. 1 root root 65 Mar 31 12:15 openGauss-6.0.0-RC1-CentOS-64bit-om.sha256
-rw-r--r--. 1 root root 23122340 Mar 31 12:15 openGauss-6.0.0-RC1-CentOS-64bit-om.tar.gz
-rw-r--r--. 1 root root 65 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit.sha256
-rw-r--r--. 1 root root 104672194 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2
drwxr-xr-x. 17 501 501 4096 Jun 16 20:51 Python-3.6.15
-rw-rw-rw-. 1 root root 23035095 Jun 16 20:47 Python-3.6.15.tgz
drwxr-xr-x. 2 root root 4096 Oct 31 2018 rh
-rw-------. 1 root root 65 Mar 31 12:14 upgrade_sql.sha256
-rw-------. 1 root root 541779 Mar 31 12:14 upgrade_sql.tar.gz

[root@gaussdb1 openGauss]# tar -zxvf openGauss-6.0.0-RC1-CentOS-64bit-om.tar.gz
[root@gaussdb1 openGauss]# ll
total 315764
drwxr-xr-x. 19 root root 4096 Mar 31 12:15 lib
drwxr-xr-x. 2 root root 4096 Jun 16 21:03 openGauss
-rw-rw-rw-. 1 root root 149449208 Jun 16 20:47 openGauss-6.0.0-RC1-CentOS-64bit-all.tar.gz
-rw-r--r--. 1 root root 109 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit-cm.sha256
-rw-r--r--. 1 root root 22466710 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit-cm.tar.gz
-rw-r--r--. 1 root root 65 Mar 31 12:15 openGauss-6.0.0-RC1-CentOS-64bit-om.sha256
-rw-r--r--. 1 root root 23122340 Mar 31 12:15 openGauss-6.0.0-RC1-CentOS-64bit-om.tar.gz
-rw-r--r--. 1 root root 65 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit.sha256
-rw-r--r--. 1 root root 104672194 Mar 31 12:16 openGauss-6.0.0-RC1-CentOS-64bit.tar.bz2
drwxr-xr-x. 17 501 501 4096 Jun 16 20:51 Python-3.6.15
-rw-rw-rw-. 1 root root 23035095 Jun 16 20:47 Python-3.6.15.tgz
drwxr-xr-x. 2 root root 4096 Oct 31 2018 rh
drwxr-xr-x. 11 root root 4096 Mar 31 12:15 script
-rw-------. 1 root root 65 Mar 31 12:14 upgrade_sql.sha256
-rw-------. 1 root root 541779 Mar 31 12:14 upgrade_sql.tar.gz
-rw-r--r--. 1 root root 36 Mar 31 12:15 version.cfg

✨ 3.3 XML配置文件

安装openGauss前需要创建cluster_config.xml文件。
cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。

本次部署以一主二备的方式创建XML配置文件

编辑配置XML文件:
vi /opt/openGauss/cluster_config.xml

##CM版本

"clusterName" value="Cluster_opengauss" />

"nodeNames" value="gaussdb1,gaussdb2,gaussdb3" />

"gaussdbAppPath" value="/openGauss/app" />

"gaussdbLogPath" value="/openGauss/log/omm" />

"tmpMppdbPath" value="/openGauss/tmp"/>

"gaussdbToolPath" value="/openGauss/om" />

"corePath" value="/openGauss/corefile"/>

"backIp1s" value="192.168.3.10,192.168.3.11,192.168.3.12"/>

"name" value="gaussdb1"/>

"azName" value="AZ1"/>

"azPriority" value="1"/>

"backIp1" value="192.168.3.10"/>

"sshIp1" value="192.168.3.10"/>

"cmsNum" value="1"/>

"cmServerPortBase" value="15000"/>

"cmServerListenIp1" value="192.168.3.10,192.168.3.11,192.168.3.12"/>

"cmServerHaIp1" value="192.168.3.10,192.168.3.11,192.168.3.12"/>

"cmServerlevel" value="1"/>

"cmServerRelation" value="gaussdb1,gaussdb2,gaussdb3"/>

"cmDir" value="/openGauss/cm"/>

"dataNum" value="1"/>

"dataPortBase" value="15400"/>

"dataNode1" value="/openGauss/data/dn,gaussdb2,/openGauss/data/dn,gaussdb3,/openGauss/data/dn"/>

"dataNode1_syncNum" value="0"/>

"name" value="gaussdb2"/>

"azName" value="AZ1"/>

"azPriority" value="1"/>

"backIp1" value="192.168.3.11"/>

"sshIp1" value="192.168.3.11"/>

"cmServerPortStandby" value="15000"/>

"cmDir" value="/openGauss/cm"/>

"name" value="gaussdb3"/>

"azName" value="AZ1"/>

"azPriority" value="1"/>

"backIp1" value="192.168.3.12"/>

"sshIp1" value="192.168.3.12"/>

"cmServerPortStandby" value="15000"/>

"cmDir" value="/openGauss/cm"/>

✨ 3.4 用户及组创建

注:主备库均操作
##创建用户组dbgrp
[root@gaussdb1 ~]# groupadd dbgrp
##创建用户组dbgrp下的普通用户omm,并设置密码为Gauss_123
useradd -g dbgrp omm
passwd omm

✨ 3.5 初始化安装

chmod 775 /openGauss -R
chown omm:dbgrp /openGauss -R
[root@gaussdb1 ~]# cd /opt/openGauss/script
[root@gaussdb1 ~]# export LD_LIBRARY_PATH=/opt/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH
注:只在主库上做操作即可,确保主库和备库root密码相同,用户和组以及目录授权同时在主备库操作
[root@gaussdb1 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/openGauss/cluster_config.xml --sep-env-file=/home/omm/envfile

openGauss 6.0一主二备高可用架构部署,可靠很行-3

✨ 3.6 正式安装

#主库执行即可
在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码

设置的密码要符合复杂度要求:
最少包含8个字符,最多包含16个字符。
不能和用户名、当前密码(ALTER)、或当前密码反序相同。
至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+\|[{}];:,/?)四类字符中的三类字符。

##登录到openGauss的主机,并切换到omm用户
[root@gaussdb1 ~]# su - omm
[omm@gaussdb1 ~]$ ll /opt/openGauss/cluster_config.xml
-rw------- 1 omm dbgrp 3665 Jun 16 23:40 /opt/openGauss/cluster_config.xml

[omm@gaussdb1 ~]$ source /home/omm/envfile
[omm@gaussdb1 ~]$ gs_install -X /opt/openGauss/cluster_config.xml

openGauss 6.0一主二备高可用架构部署,可靠很行-4

📣 4.安装验证

✨ 4.1 集群状态检查

# 通过openGauss提供的gs_om工具可以完成数据库状态检查

以omm用户身份登录服务器。
执行如下命令检查数据库状态是否正常,"cluster_state"显示"Normal"表示数据库可正常使用

[root@gaussdb1 ~]# su - omm
[omm@gaussdb1 ~]$ gs_om -t status
-----------------------------------------------------------------------

cluster_state : Normal
redistributing : No
balanced : Yes

-----------------------------------------------------------------------

[omm@gaussdb1 ~]$ gs_om -t status --detail
[ CMServer State ]

node node_ip instance state
----------------------------------------------------------------
1 gaussdb1 192.168.3.10 1 /openGauss/cm/cm_server Standby
2 gaussdb2 192.168.3.11 2 /openGauss/cm/cm_server Standby
3 gaussdb3 192.168.3.12 3 /openGauss/cm/cm_server Primary

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state
----------------------------------------------------------------------------
1 gaussdb1 192.168.3.10 6001 15400 /openGauss/data/dn P Primary Normal
2 gaussdb2 192.168.3.11 6002 15400 /openGauss/data/dn S Standby Normal
3 gaussdb3 192.168.3.12 6003 15400 /openGauss/data/dn S Standby Normal

✨ 4.2 数据库登陆

[omm@gaussdb1 ~]$ gsql -d postgres -p 15400
gsql ((openGauss 6.0.0-RC1 build ed7f8e37) compiled at 2024-03-31 11:59:31 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+-----------+---------+-------+-------------------
postgres | omm | SQL_ASCII | C | C |
template0 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
(3 rows)

openGauss=# \copyright
GaussDB Kernel Database Management System
Copyright (c) Huawei Technologies Co., Ltd. 2018. All rights reserved.

openGauss=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}

[omm@gaussdb1 ~]$ ps ux | grep gaussdb
omm 79727 0.0 0.0 72472 964 ? Ss 10:30 0:00 ssh-agent -a /home/omm/gaussdb_tmp/gauss_socket_tmp
omm 97072 3.8 31.1 6535636 1202496 ? Ssl 10:50 0:24 /openGauss/app/bin/gaussdb -D /openGauss/data/dn -M primary
omm 100396 0.0 0.0 110476 896 pts/0 S+ 11:01 0:00 grep --color=auto gaussdb

openGauss 6.0一主二备高可用架构部署,可靠很行-5

✨ 4.3 集群启动及关闭

##集群关闭
[omm@gaussdb1 ~]$ gs_om -t stop
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
End stop cluster.

##集群启动
[[omm@gaussdb1 ~]$ gs_om -t start
Starting cluster.
======================================================================
Successfully started primary instance. Wait for standby instance.
======================================================================
.
Successfully started cluster.
======================================================================
cluster_state : Normal
redistributing : No
node_count : 3
Datanode State
primary : 1
standby : 2
secondary : 0
cascade_standby : 0
building : 0
abnormal : 0
down : 0

Successfully started cluster.

[omm@gaussdb1 ~]$ gs_om -t status --detail
[ CMServer State ]

node node_ip instance state
----------------------------------------------------------------
1 gaussdb1 192.168.3.10 1 /openGauss/cm/cm_server Standby
2 gaussdb2 192.168.3.11 2 /openGauss/cm/cm_server Standby
3 gaussdb3 192.168.3.12 3 /openGauss/cm/cm_server Primary

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state
----------------------------------------------------------------------------
1 gaussdb1 192.168.3.10 6001 15400 /openGauss/data/dn P Primary Normal
2 gaussdb2 192.168.3.11 6002 15400 /openGauss/data/dn S Standby Normal
3 gaussdb3 192.168.3.12 6003 15400 /openGauss/data/dn S Standby Normal

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论