openGauss1.1.0支持从库基准备份
2024.04.28 17:29浏览量:68简介: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
发表评论
登录后可评论,请前往 登录 或 注册