Postgresql 9.6 在CentOS 7.2 中流复制模式搭建

参考资料:https://www.jianshu.com/p/41d857a5d743

https://www.postgresql.org/download/linux/redhat/

1.准备工作

1.1 准备2台虚拟机

192.168.29.130 安装主库

192.168.29.131 安装从库

1.2 了解单击版安装步骤请查看 Postgresql 9.6 在Centos 7.2 中安装

1.3 确保单击安装后,能远程登录与访问

2.主库配置

2.1 创建文件夹并赋予权限

mkdir -p /app/pgsql/data && chown postgres:postgres /app/pgsql/data

mkdir -p /app/pgsql/pg_archive && chown postgres:postgres /app/pgsql/pg_archive

cd /app/pgsql && chmod 700 data

cd /app/pgsql && chmod 700 pg_archive

2.2 将初始化的数据库的data文件夹的下的文件复制到 新创建的 文件夹下,并赋予权限

cp -r /var/lib/pgsql/9.5/data/* /app/pgsql/data/

cd /app/pgsql && chown -R postgres:postgres data

2.3 修改配置文件

vi /app/pgsql/data/pg_hba.conf 如图

 

vi /app/pgsql/data/postgresql.conf 如下配置

data_directory = '/app/pgsql/data' #自定义data目录

listen_addresses = '*' #监听所有ip

archive_mode = on #允许归档

archive_command = 'cp %p /app/pgsql/pg_archive/%f' #使用命令归档

wal_level = hot_standby #选择热备

max_wal_senders = 16 #最多多少个流复制链接

wal_keep_segments = 256 #流复制保留最多的xlog数

wal_sender_timeout = 60s #流复制主机发送数据超时时间

max_connections = 100 #从库的max_connections必须大于主库的

2.4 启动服务器

由于目前data文件夹目录发生变化,所以需要修改数据库的启动方式,

关闭数据库:systemctl stop postgresql-9.6.service

切换用户 su postgres

执行命令 /usr/pgsql-9.6/bin/pg_ctl -D /app/pgsql/data/ start

 

2.5 创建一个角色,进行数据同步

create role replica login replication encrypted password 'replica';

 

3.配置从服务器

3.1 下载安装,并初始化,主要需要创建postgres 角色

/usr/pgsql-9.6/bin/postgresql96-setup initdb

3.2 创建目录 并赋予权限

mkdir -p /app/pgsql/data && chown postgres:postgres /app/pgsql/data

mkdir -p /app/pgsql/pg_archive && chown postgres:postgres /app/pgsql/pg_archive

cd /app/pgsql && chmod 700 data

cd /app/pgsql && chmod 700 pg_archive

3.3 初始化复制

pg_basebackup -h 192.168.29.130 -U replica -D /app/pgsql/data -X stream -P

 

 

 

3.4 修改配置文件

3.4.1将/usr/pgsql-9.6/share/recovery.conf.sample 复制到 /app/pgsql/data/recovery.conf

cp /usr/pgsql-9.6/share/recovery.conf.sample /app/pgsql/data/recovery.conf

3.4.2 修改复制进来的文件

vi /app/pgsql/data/recovery.conf

standby_mode = on #从节点模式

primary_conninfo = 'host=192.168.29.130 port=5432 user=replica password=replica'

recovery_target_timeline = 'latest'

trigger_file = '/tmp/triger_file0'

3.4.3 修改postresql.conf文件

vi /app/pgsql/data/postgresql.conf

注释 archive_mode、archive_command、max_wal_senders、

wal_keep_segments、wal_sender_timeout

修改参数为如下配置

hot_standby = on

max_standby_streaming_delay = 30s

wal_receiver_status_interval = 10s

hot_standby_feedback = on

3.5 启动数据库

/usr/pgsql-9.6/bin/pg_ctl -D /app/pgsql/data/ start

 

4.验证流复制

登录主库

查看replica角色情况

select * from pg_stat_replication;

 

创建数据库

 

 

登录从库 查看数据库

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值