在数字化时代,数据被视为企业的核心资产,其可靠性和服务的连续性直接影响着企业的业务稳定性。openGauss 是一款开源、高性能且兼容 PostgreSQL 的企业级数据库,以其固有的高可用性成为众多企业级应用的首选解决方案。主从复制与自动故障转移技术作为确保数据不丢失和服务持续性的关键技术,对于构建高可用的数据库架构至关重要。


sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/configsystemctl status firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.servicesudo setenforce 0
[root@centos79 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.10.10 centos79
mkdir /cdrom
mount -t iso9660 -o ro /dev/cdrom /cdrom
cd /etc/yum.repos.d/ mkdir bak mv CentOS* bak
vi local.repo cat >/etc/yum.repos.d/local.repo <<EOF [base-local] name=CentOS7-local baseurl=file:///cdrom enabled=1 gpgcheck=0 EOF
yum clean all
yum makecache
yum -y install libaio-devel flex bison ncurses-devel \ glibc-devel patch redhat-lsb-core readline-devel openssl-devel sqlite-devel libnsl
echo 'export LANG=en_US.UTF-8' >> /etc/profile echo 'export packagePath=/opt/software/openGauss' >> /etc/profile echo 'export LD_LIBRARY_PATH=$packagePath/script/gspylib/clib:$LD_LIBRARY_PATH' >> /etc/profile

sudo timedatectl set-timezone systemdefault
mkdir -p /opt/openGauss
tar -zxvf openGauss-6.0.0-RC1-CentOS-64bit-all.tar.gz
chmod 775 -R /opt/openGauss
vi /opt/openGauss/db_config.xml <?xml version="1.0" encoding="UTF-8"?> <ROOT> <!-- openGauss 整体信息 --> <CLUSTER> <!-- 数据库名称 --> <PARAM name="clusterName" value="dbCluster" /> <!-- 数据库节点名称(hostname) --> <PARAM name="nodeNames" value="centos79" /> <!-- 数据库安装目录--> <PARAM name="gaussdbAppPath" value="/openGauss/app" /> <!-- 日志目录-->
本文详细介绍了如何使用 openGauss 进行高可用数据库的部署,包括主从复制和自动故障转移的配置。通过上述步骤,读者可以构建一个稳定、高效的数据服务平台,从而确保业务的连续性和数据的安全性。
配置参数如下:
<PARAM name="gaussdbLogPath" value="/openGauss/log/omm" />
<!-- 临时文件存放路径 -->
<PARAM name="tmpMppdbPath" value="/openGauss/tmp" />
<!-- 数据库工具路径 -->
<PARAM name="gaussdbToolPath" value="/openGauss/om" />
<!-- 数据库核心文件路径 -->
<PARAM name="corePath" value="/openGauss/corefile" />
<!-- 各节点的IP地址,与数据库节点名匹配 -->
<PARAM name="backIp1s" value="192.168.6.20"/>
每台服务器上节点的部署详情:
<DEVICELIST>
<!-- 节点1的部署信息 -->
<DEVICE sn="centos79">
<!-- 主机名称 -->
<PARAM name="name" value="centos79"/>
<!-- 所属AZ及其优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP地址,若服务器只有一个网络接口,则backIP1和sshIP1应设为同一IP -->
<PARAM name="backIp1" value="192.168.6.20"/>
<PARAM name="sshIp1" value="192.168.6.20"/>
<!-- 数据节点配置 -->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="15400"/>
<PARAM name="dataNode1" value="/openGauss/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
groupadd dbgroupuseradd -g dbgroup omm./gs_preinstall -U omm -G dbgroup -X /opt/software/openGauss/cluster_config.xml
su - omm

gs_om -t statusgs_om -t status --detailgs_om -t status
gs_om -t status --detail
gsql -d postgres -p 15400openGauss=# \lgsql --versiongsql -V
检查数据库服务是否已启动,正常情况下cluster_state应显示为Normal
cluster_state : Normal
若出现异常,可通过查看数据库日志来诊断问题:tail -f /path/to/data_directory/pg_log/*.log
ps aux | grep postgresgs_om -t start 或 gs_om -t stop
cat /home/opengauss/.bashrc
export GAUSSHOME=/opt/software/opengauss
export PATH=$GAUSSHOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export GS_CLUSTER_NAME=dbCluster
export PGDATA=/opt/software/opengauss/data/single_node
gsql -d postgres -p 5432 或 gsql -d postgres -U opengauss -p 5432 -W openGauss123\i /path/to/sql_file.sqlgsql --helpCREATE TABLESPACE tbs1 LOCATION '/data/tbs1';
gs_ctl restart -D /opt/software/opengauss/data/single_node/




create user user01 password 'openGauss123';

CREATE DATABASE db01 TABLESPACE tbs1;

alter database db01 owner to user01;

create schema scott;
openGauss 提供了两种主要的高可用性架构:
sudo -u opengauss gsql -d postgres -p 15400
CREATE USER replication_user WITH REPLICATION PASSWORD '12345';
vi /path/to/data_directory/postgresql.conf
wal_level = replica # 启用流复制
max_wal_senders = 10 # 设置最大 WAL 发送进程数
wal_keep_size = 1GB # 设置 WAL 日志保留大小
hot_standby = on # 启用热备份模式,使从节点可以读取数据
vi /path/to/data_directory/pg_hba.conf
host replication replication_user from_node_ip/32 md5
sudo -u opengauss gs_ctl reload -D /path/to/data_directory
登录主节点
sudo -u opengauss gsql -d postgres -p 15400
查询复制状态
SELECT * FROM pg_stat_replication;
运行 pg_basebackup 命令进行备份
pg_basebackup -h master_node_ip -D /path/to/standby/data_directory -U replication_user -P --wal-method=stream
master_node_ip
这是主节点的 IP 地址
replication_user
这是在主节点上创建的复制用户
/path/to/standby/data_directory
这是从节点的数据存储目录
vi /path/to/standby/data_directory/recovery.conf
standby_mode = 'on' # 启用从节点模式
primary_conninfo = 'host=master_node_ip port=15400 user=replication_user password=your_password' # 主节点连接信息
trigger_file = '/tmp/postgresql.promote' # 主从切换标志文件
sudo -u opengauss gs_ctl start -D /path/to/standby/data_directory
登录到从节点
sudo -u opengauss gsql -d postgres -p 15400
查询复制状态
SELECT * FROM pg_stat_wal_receiver;
从节点会检测到此文件并自动切换为新的主节点
touch /tmp/postgresql.promote
在 openGauss 6.0 LTS 中,可以通过 gs_om 工具实现自动故障转移。为了确保这一功能的正常运行,需要配置一个监控节点。该节点负责监控主节点的状态,一旦检测到主节点宕机,会自动将备份节点提升为主节点。
使用 gs_om 工具配置监控服务并启用自动故障转移功能的具体步骤如下:
gs_om -t start -D /path/to/data_directory
在完成配置后,需要检查集群的状态以确保一切正常。具体操作方法如下:
gs_om -t status --detail
作为开发者,经过实际测试,openGauss 表现优异。在 Linux 环境下,通过脚本和 XML 配置文件,可以快速完成单节点安装及主从复制集群的搭建。主从同步和自动故障转移的步骤清晰明了,gsql 命令操作和用户表空间管理符合开发习惯,无需额外集成工具即可满足高可用性需求。从开发测试到生产部署,所有核心诉求都能通过具体的实操步骤得以实现。
扫码加好友,拉您进群



收藏
