postgresql 主从配置方法_postgresql针对单个数据库做主从(1)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

[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


![img](https://img-blog.csdnimg.cn/img_convert/98686395a6d354750a013e51f5145cbf.png)
![img](https://img-blog.csdnimg.cn/img_convert/49d80bda2787b3da2a2883889f345e8b.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值