logo

openGauss1.1.0支持从库基准备份

作者:奔跑的数据库2024.04.28 17:29浏览量:26

简介:openGauss开源数据库案例

openGauss1.1.0 支持从库基准备份

opengauss 当前新版本支持从库使用 gs_basebackup 做基准备份,同时也支持一台机器进行主从部署,源码搭建主从环境可以参考我之前写过的一篇文章《openGauss 从源码到主备》

主库 postgresql.conf 配置

port=6432
listen_addresses = '***.***.***.***'
password_encryption_type = 0
remote_read_mode=non_authentication
replconninfo1 = 'localhost=***.***.***.*** localport=6439 localservice=6432 remotehost=***.***.***.*** remoteport=7439 remoteservice=7432'

从库 postgresql.conf 配置

port=7432
listen_addresses = '***.***.***.***'
password_encryption_type = 0
remote_read_mode=non_authentication
replconninfo1 = 'localhost=***.***.***.*** localport=7439 localservice=7432 remotehost=***.***.***.*** remoteport=6439 remoteservice=6432'

可以看到 replconninfo1 参数主从库都是同一个 IP,主库连接端口为 6432,从库连接端口为 7432。

pg_hba.conf 配置

host all all ***.***.***.***/0 md5
host    replication    all        ***.***.***.***/0           trust'

主从搭建过程

1.先以单机模式启动数据目录 ogdata

$ gs_ctl start -D /opt/ogdata

2.使用 gs_basebackup 生成从库数据目录 ogdata2

$ gs_basebackup --pgdata=/opt/ogdata2 \
--host=***.***.***.*** \
--port=6431 \
--username=repuser

3.修改从库数据目录 ogdata2 配置参数

port=7432
replconninfo1 = 'localhost=***.***.***.*** localport=7439 localservice=7432 remotehost=***.***.***.*** remoteport=6439 remoteservice=6432'

4.修改从库 node_name

$ gs_guc set -D /opt/ogdata2 -c "pgxc_node_name='og_7432'"'

5.关闭数据目录 ogdata,以 primary 模式启动为主库

$ gs_ctl stop -mi -D /opt/ogdata
$ gs_ctl start -D /opt/ogdata -M primary

6.数据目录 ogdata2 以 standby 模式启动为从库

$ gs_ctl start -D /opt/ogdata2 -M standby

7.检查主从库状态

$ gs_ctl query -D /opt/ogdata
$ gs_ctl query -D /opt/ogdata2

8.测试主从数据读写

主库测试写

$ gsql -h***.***.***.***  -p6432 -Upostgres -r

postgres=> create table tab(id int,info varchar);
CREATE TABLE

postgres=> insert into tab values(100,now());
INSERT 0 1

从库测试读写

$ gsql -h***.***.***.***  -p7432 -Upostgres -r

postgres=> delete from tab;
ERROR:  cannot execute DELETE in a read-only transaction

postgres=> select * from tab;
 id  |             info
-----+-------------------------------
 100 | 2021-01-13 11:02:49.777784+08
(1 row)

主从环境搭建完成。

从库基准备份

1.提前创建备份目录

PostgreSQL 不需要提前创建备份目录,openGauss 需要

$ mkdir data_backup

2.执行基准备份

$ gs_basebackup --pgdata=/home/omm/data_backup/ \
--verbose --progress \
--username=postgres \
--port=7432

...
gs_basebackup: waiting for background process to finish streaming...
gs_basebackup: base backup completed
gs_basebackup: base backup  successfully

相关文章推荐

发表评论