一. 准备两台服务器
192.168.141.130 --主
192.168.141.131 --备
1.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.关闭 selinux 服务
setenforce 0
vim /etc/selinux/config
#设置
SELINUX=disabled
3.关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/enabled
4.安装依赖包
建议切换华为云镜像操作
yum install libaio-devel -y
二、安装环境准备
1.创建相关目录、用户和组
#创建数据库初始化用户组和用户
groupadd dbgrp -g 1000
useradd omm -u 1000 -g 1000
设置密码
echo "root@2025!" | passwd --stdin omm
#创建安装包存放目录
mkdir -p /opt/software/openGauss
#创建数据库初始化数据目录
mkdir -p /data/openGauss
给omm用户这两个文件夹授权
chown -R omm.dbgrp /data/openGauss
chown -R omm.dbgrp /opt/software/openGauss
2.下载安装包
cd /opt/software/openGauss
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.1/openEuler22.03/arm/openGauss-All-6.0.1-openEuler22.03-aarch64.tar.gz
#依次解压
tar -zxvf openGauss-All-6.0.1-openEuler22.03-x86_64.tar.gz
tar -jxvf openGauss-Server-6.0.1-openEuler22.03-x86_64.tar.bz2
3.配置 omm 用户环境变量
su - omm
vim .bashrc
export GAUSSHOME=/opt/software/openGauss
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH
#加载使配置生效
source .bashrc
以上所有操作在两台主机上均要操作。
三、开始搭建主库 192.168.141.130
1.初始化数据库
su - omm
gs_initdb -D /data/openGauss --nodename=primary -E UTF-8 -w Root@2025!
#Root@2025! 为初始数据库密码
cd /data/openGauss
#编辑postgresql.conf配置文件,将相关信息添加到最后一行
vim postgresql.conf
port=1888
listen_addresses = '0.0.0.0'
log_directory = 'pg_log'
remote_read_mode=non_authentication
replconninfo1='localhost=192.168.141.130
localport=1889
localheartbeatport=1893
localservice=1892
remotehost=192.168.141.131
remoteport=1889
remoteheartbeatport=1893
remoteservice=1892'
#localhost为主库IP,remotehost为备库IP
#编辑pg_hba.conf配置文件,将相关信息添加到最后一行
vim pg_hba.conf
host all all 0.0.0.0/0 sha256
2.以 primary 方式启动数据库
#启动数据库都是omm账户
gs_ctl start -D /data/openGauss/ -M primary
四、操作备库 192.168.141.131
1.将主库的 postgresql.conf 文件传到备库,编辑连接通道信息
#在主库用omm账户操作
scp postgresql.conf 192.168.141.130:/data/openGauss
#然后在备库上操作
cd /data/openGauss
su - omm
vim postgresql.conf
# 和主库配置一样 ip对调
replconninfo1='localhost=192.168.141.131 localport=1889 localheartbeatport=1893 localservice=1892 remotehost=192.168.141.130 remoteport=1889 remoteheartbeatport=1893 remoteservice=1892'
2.构建主备关系
gs_ctl build -D /data/openGauss/ -b full -M standby
3.查看主备库信息
gs_ctl query -D /data/openGauss
五、验证主备关系
1.主库中创建表
gsql -d postgres -p 1888
create table test(id int);
2.备库中查看
openGauss=# gsql -d postgres -p 1888
openGauss=# \dt List of relations Schema | Name | Type | Owner | Storage --------+------+-------+-------+---------------------------------- public | test | table | omm | {orientation=row,compression=no} (1 row)
备库看到信息说明主备成功
注意 如果需要navcat 调试 需要将密码加密方式调整为 md5
创建用户
#创建数据库
create database test_db;
#创建用户
CREATE USER test PASSWORD 'Test@2025!';
#赋权
grant all privileges to test;
# 修改密码
alter user imss identified by 'Imss@2024!';