暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss 1.1.0支持从库基准备份

原创 多米爸比 2021-01-13
1451

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

主库postgresql.conf配置

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

从库postgresql.conf配置

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

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

pg_hba.conf配置

host all all 0.0.0.0/0 md5
host    replication    all        0.0.0.0/0           trust'

主从搭建过程

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

$ gs_ctl start -D /opt/ogdata

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

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

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

port=7432
replconninfo1 = 'localhost=192.168.1.23 localport=7439 localservice=7432 remotehost=192.168.1.23 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 -h192.168.1.23  -p6432 -Upostgres -r

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

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

从库测试读写

$ gsql -h192.168.1.23  -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
最后修改时间:2021-12-17 17:21:55
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论