postgresql 9.5 (主备库)流复制简单配置

本人是用了两台虚拟机搭建 主备 流复制环境,操作流程很简单:
虚拟机 的 IP和 端口
    主库:   192.168.1.189 5432  用户:postgres
    备库:  192.168.1.200 5432   用户:postgres
虚拟机必须先安装postgres数据库,
1.在官网上下载安装postgres的安装包 postgresql-9.5.5.tar.gz

2. 解压解压postgresql-9.5.5.tar.gz:
tar -xzvf postgresql-9.5.5.tar.gz

3.编译postgres代码 (在root用户下操作)
cd postgresql-9.5.5
mkdir  -p /opt/sql
./configure --prefix=/opt/sql
make 
make install
至此,完成postgresql的安装。进入/opt/sql目录可以看到安装后的postgresql的文件 

4.切回postgres用户,配置环境变量
vi .bash_profile
主库
设置以下环境变量
export PGHOME=/opt/sql
export PGDATA =~/data
备库
设置以下环境变量
export PGHOME=/opt/sql
export PGDATA =~/standby

5. 初始化数据库
主备分别执行iniitdb

6.检查数据库是否安装成功
pg_ctl start

7.修改主库的配置文件
cd $HOME/data/
vi postgresql.conf
配置修改为:
wal_level = hot_standby 
#synchronous_commit = on(同步复制,-- 实时,如果需要异步改为off)
checkpoint_timeout = 5min 
archive_mode = on
archive_command = '/bin/date'
max_wal_senders = 2
wal_keep_segments = 16 
hot_standby = on
max_standby_archive_delay = 300s
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 1s
hot_standby_feedback = on
wal_receiver_timeout = 60s
-----------------------------------------------
vi pg_hba.conf
配置修改为:

host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 trust
添加IP 可以让备库访问到主库
host replication repuser 192.168.1.200/32 md5
replication  数据库必须是这个名字
repuser 数据库用户名

创建数据库用户repuser
psql postgres  postgres
postgres-# create role repuser login replication encrypted password '123';

5.添加密码文件
登陆备库 
cd && vi  .pgpass
192.168.1.189:5432:replication:repuser:123
.pgpass文件权限为0600:chmod 600 .pgpass
cd && rm -rf standby 
使用pg_basebackup进行数据库备份恢复:
 pg_basebackup -F p -D $PGDATA -h 192.168.1.189 -p 5432 -U repuser

配置备库参数postgresql.conf:

standby_mode = on

primary_conninfo = 'host=192.168.1.189  port=5432  user=repuser'

trigger_file = '/home/postgres/standby/postgresql.trigger.5432'


启动备库,查看服务进程,请注意有一个wal receiver progress进程,这个是接收wal日志的进程:

同样主库也多了一个wal sender process进程,用于日志发送。


测试:

在主库中新建一张表,并插入一些数据:

create table t1(id int);

insert into t1 values (1);

在从库中进行查询,从库可查询,但不可更新数据:

select * from t1;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值