postgresql 主从配置_postgresql主从配置

systemctl start postgresql-9.6

1.3 切换到postgres用户(安装好生成默认的用户)

[root@steven1 data]# su - postgres

上一次登录:三 5月 16 09:19:49 UTC 2018pts/0 上

-bash-4.2$

-bash-4.2$ psql 进入数据库

postgres=#

1.4 创建账号并授权

postgres=# create role 账户名 login replication encrypted password '密码';

1.5  修改/var/lib/pgsql/9.6/data/pg_hba.conf配置文件.

# IPv4 local connections:

host all all 127.0.0.1/32 ident

# 添加如下内容

host replication repl 10.0.1.0/24 md5

host all repl 10.0.1.1/24 trust

1.6 修改postgresql.conf

-bash-4.2$ vim postgresql.conf

listen_addresses = '10.0.1.114'

wal_level = hot_standby #热备模式

max_wal_senders= 6 #可以设置最多几个流复制链接,差不多有几个从,就设置多少

wal_keep_segments = 10240 #重要配置

wal_send_timeout = 60s

max_connections = 512 #从库的 max_connections要大于主库

archive_mode = on #允许归档

archive_command = 'cp %p /url/path%f' #根据实际情况设置

三、从数据库配置

1、切换到postgres

[root@localhost data]# su - postgres

2、拷贝master配置相关文件。

-bash-4.2$ rm -rf /var/lib/pgsql/9.6/data/*

-bash-4.2$ pg_basebackup -h 10.0.1.114 -U repl -D /var/lib/pgsql/9.6/data -X stream -P

-bash-4.2$ cp /usr/pgsql-9.6/share/recovery.conf.sample /var/lib/pgsql/9.6/data/recovery.conf

3、修改recovery.conf文件

standby_mode = on

primary_conninfo = 'host=10.0.1.114 port=5432 user=master创建的用户名 password='密码'

trigger_file = '/var/lib/pgsql/9.6/data/trigger.kenyon' #主从切换时后的触发文件

recovery_target_timeline = 'latest'

4、修改postgresql.conf文件

listen_addresses = 10.0.1.116

wal_level = hot_standby

max_connections = 1000 #一般从的最大链接要大于主的。

hot_standby = on #说明这台机器不仅仅用于数据归档,也用于查询

max_standby_streaming_delay = 30s

wal_receiver_status_interval = 10s #多久向主报告一次从的状态。

hot_standby_feedback = on #如果有错误的数据复制,是否向主进行范例

四、检测

1、在master数据库中测试

postgres=# select client_addr,sync_state from pg_stat_replication;

client_addr | sync_state

-------------+------------

10.0.1.116 | async

(1 row)

2、在master数据库中创建test数据库

postgres=# create database test;

CREATE DATABASE

postgres=# \l // 查看当前所有数据库

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

postgres=#

3、在从数据库中查看数据库是否同步。

postgres=# \l

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

参考:https://www.linuxidc.com/Linux/2017-03/142145.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值