Postgresql 9.6.6主从流复制环境建立

Postgresql 9.6.6主从流复制配置

1.主从介绍

PostgreSQL在9之后引入了主从的流复制机制,集群中主库工作在连续归档模式下,备库工作在恢复模式下,备库持续从主服务器读取WAL文件;连续归档不需要对数据库表做任何改动,对主服务器的性能影响相对较低。

1.1主从方式

基于文件日志传送和流复制

2.实验环境

序号

主机名

IP地址

操作系统版本

DB版本

主从关系

1

post1

10.0.120.150

Redhat 6.6

Postgres 9.6.6

psql_master

2

post2

10.0.120.151

Redhat 6.6

Postgres 9.6.6

psql_standby

3.安装前环境配置

3.1环境依赖包安装

分区划分如下


两台同时安装:
yum -y install readline
yum -y install readline-devel
yum -y install zlib
yum -y install bison
yum -y install flex
yum -y install perl

yum install -y gcc*

3.2主、从账号添加

groupadd postgres
useradd -g postgres postgres
echo "postgres" | passwd --stdin postgres
mkdir  -p /postgres/data
chown -R postgres:postgres  /postgres/

chmod  -R  775 /postgres

3.3环境变量配置

两台同时配置:
echo "export PATH=/postgres/bin:$PATH" >>/home/postgres/.bash_profile
echo "export LD_LIBRARY_PATH=/postgres/lib" >>/home/postgres/.bash_profile

echo "export MANPATH=/postgres/share/man:$MANPATH" >>/home/postgres/.bash_profile

4.安装步骤

源码下载:http://www.postgresql.org/download/
su - postgres
wget http://www.postgresql.org/download/postgresql-9.6.6.tar.gz 
gunzip postgresql-9.6.6.tar.gz
tar -xvf postgresql-9.6.6.tar

cd postgresql-9.6.6






5.主库初始化(此处为post1)


6.主库配置

(1)创建复制用户,进行主从同步使用


(2)主库上配置从库可以采用repl账号

Vi /postgres/data/pg_hba.conf

(3)修改主库配置文件/postgres/data/postgresql.conf

改监控端口:
Listen_adresses = ‘*’
wal_level = hot_standby                主从设置为热血模式,流复制必选
max_wal_senders=2 流复制允许连接进程
wal_keep_segments =64
max_connections = 100 默认参数,非主从配置相关参数,表示到数据库的连接数

(4)重启主库服务


7.从库配置

(1)基础备份

从库安装完成后,不初始化,若已经初始化,删除其data目录


备注:
-h,主库主机,-p,主库服务端口;
-U,复制用户;
-F,p是默认输出格式,输出数据目录和表空间相同的布局,t表示tar格式输出;
-P,同--progress,显示进度;
-D,输出到指定目录;

因为主库采用的是md5认证,这里需要密码认证。

(2) 从库配置文件配置

#在基础备份时,初始化文件是从主库复制来的,所以配置文件一致,注释掉
wal_level,
max_wal_senders 
wal_keep_segments等参数
打开如下参数:
vi /postgres/data/postgresql.conf
hot_standby = on   #在备份的同时允许查询
max_standby_streaming_delay = 30s #可选,流复制最大延迟
wal_receiver_status_interval = 10s #可选,从向主报告状态的最大间隔时间
hot_standby_feedback = on #可选,查询冲突时向主反馈
max_connections = 1000 #默认参数,非主从配置相关参数,表示到数据库的连接数,一般从库做主要的读服务时,设置值需要高于主库

(3)创建恢复文件recovery.conf


调整参数:
recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = 'host=10.0.120.150port=5432 user=repl password=repl1234'      


备注:
recovery.conf    #在做基础备份时,也可通过-R参数在备份结束后自动生产一个recovery.conf文件
standby_mode = on  #指明从库身份
primary_conninfo = 'host=10.0.120.150 port=5432 user=repl password=repl1234'  #连接到主库信息
recovery_target_timeline = 'latest'     #同步到最新数据
指定触发文件,文件存在时,将触发从库提升为主库,前提是必须设置”standby_mode = on”;如果不设置此参数,也可采用”pg_ctl promote“触发从库切换成主库

#trigger_file = ‘/postgres/data/trigger_activestandby’

(4)启动从库服务


8.验证主从配置

(1)查看主库sender进程


(2)查看从库receiver进程


(3)SQL查询主从状态


主库创建表test:


从库可查询,从库只能读,不可插入数据


命令查看主从状态



到此主从复制建立完成。

9.主从切换

(1)主库上执行:
su - postgres
pg_ctl stop -m fast         #停主库日志
pg_controldata /postgres/data/ #此时Database cluster state: shutdown
(2)从库切换为主库:
su - postgres
pg_ctl promote
pg_controldata /postgres/data #此时Database cluster state: Inproduction













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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值