master : 172.16.0.105
slave : 172.16.0.103

1.正常搭建postgresql,并且进行数据库初始化

2.修改master的postgresql.conf配置文件
vi postgresql.conf
listen_addresses = ‘*’
port = 5432
max_connections = 100
wal_level = hot_standby

3.在master上创建同步账号,并且授权

create user replica with password '123456' replication;

4.修改master的pg_hba.conf配置,允许从库所在的地址通信
##开放第一条规则是为了在master上可以执行pg_basebackup
##开放第二条规则是为了从库slave可以和master正常通信
host replication replica 172.16.0.105/32 md5
host replication replica 172.16.0.103/32 md5

5. 重新加载reload配置文件
pg_ctl -D /data/pg_data/data reload

6. 在master上利用pg_basebackup进行物理全备
/usr/local/pgsql/bin/pg_basebackup -h 172.16.0.105 -p 5432 -U replica -F p -R -X s -D /data/pg_basebackup/

7. 将pg_basebackup备份文件通过scp传输到从机上
scp -r -P 22 pg_basebackup/ root@‘172.16.0.103’:/data/

8. 检查recovery.conf配置文件信息
standby_mode = ‘on’
primary_conninfo = ‘user=replica password=123456 host=172.16.0.105 port=5432 sslmode=disable sslcompression=0 target_session_attrs=any’

9. 在slave上安装postgresql,和master的postgresql安装基本一致,只是不用进行initd初始化

10. 利用slave上pg_basebackup备份文件,启动从库服务

##创建从库相关数据存储路径
mkdir -p /data/pg_data/log
touch /data/pg_data/log/pg.log

##将备份数据作为从库数据进行启动
mv /data/pg_basebackup/ /data/pg_data/data

##修改slave中postgresql.conf将max_connections=host_standby注释掉,否则在启动时候回出现以下错误
LOG: invalid value for parameter “max_connections”: “host_standby”
FATAL: configuration file “/data/pg_data/data/postgresql.conf” contains errors

##启动服务
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /data/pg_data/data/ -l /data/pg_data/log/pg.log start

11. 登录检查是否搭建成功,是否有错误日志信息,是否正常同步等

##在master上检查重库的信息
select * from pg_stat_replication;

##从库是只读模式
SQL 错误 [25006]: ERROR: cannot execute DROP TABLE in a read-only transaction

postgresql的recovery.conf配置文件

  • 应用于恢复期,恢复开始后则不能再被更改

1)restore_command:用于获取WAL文件系统的一个已归档的本地shell命令

  • 对于归档恢复所必需的
  • 对于流复制是可选的

2)archive_cleanup_command:清理后备服务器不再需要的旧的归档WAL文件提供一种机制

  • archive_cleanup_command = ‘pg_archivecleanup /data/pg_archive %r’

3)recovery_target:恢复目标设置

##达到一致状态后就会结束,
recovery_target = ‘immediate’

##指定恢复将继续进行的已命名的恢复点,pg_create_restore_point()创建恢复点
recovery_target_name = ‘string_name’

##恢复到的时间戳
recovery_target_time = timestamp

##恢复到指定的事务id
recovery_target_xid = ‘事务id’

##恢复到一个指定的时间线。默认是沿着基础备份建了时的当前时间线恢复
recovery_target_timeline = ‘时间线’

例如:恢复到最新的时间线
recovery_target_timeline = ‘latest’

##到达恢复目标时服务器应该采取什么动作,默认是pause:暂停服务恢复。promote:将结束恢复进程,并且服务开始接受连接;shutdown:在到达恢复目标后停止服务器
recovery_target_action = ‘pause’ / ‘promote’ / ‘shutdown’

4)备用服务器设置

##是否将postgresql服务器作为一个后备服务器启动
standby_mode = ‘on’/ ‘off’

##设置从服务连接到主服务的信息,从而继续进行恢复或同步
primary_conninfo = ‘user=user_name password=pwd host=ipaddr port=port sslmode=disable sslcompression=0 target_session_attrs=any’

##指定在通过流复制连接到主服务器时要使用的现有复制槽,以控制上游节点上的资源删除
primary_slot_name

recovery参考文档:cnblogs.com/yhq1314/p/10045278.html

postgresql主从搭建相关推荐

  1. Ubuntu下搭建postgresql主从服务器(方法1)

    Ubuntu下搭建postgresql主从服务器(方法1) 安装略 postgresql主服务器: $ vi /etc/postgresql/9.1/main/postgresql.conf 按a或i ...

  2. 安装 部署 postgresql数据库 搭建主从节点 (业务库)

    安装 部署 postgresql数据库 搭建主从节点 (时序数搭建 (待更新)) 文章目录 安装 部署 postgresql数据库 搭建主从节点 一 业务数据库搭建 1. 安装 yum源(服务器可访问 ...

  3. 生产级实践之集群搭建方案系列-PostgreSQL主从部署搭建与配置

    1. 目标 掌握Postgresql数据库主从部署搭建配置 2. 脉络 部署规划 PostgreSQL单节点安装 PostgreSQL主从部署配置 主从同步验证 3. 知行 3.1 简介 Postgr ...

  4. postgresql主从备份_基于PG12.2实现主从异步流复制及主从切换教程(下)

    概述 今天主要介绍如何搭建PG主从流复制及主从切换,仅供参考. PS:上篇的地址在文末链接. PostgreSQL数据库主从异步流复制搭建 环境说明: 1.安装PG数据库(主从库进行) 用脚本进行,略 ...

  5. CentOS下PostgreSQL 主从实现之异步流复制(Hot Standby)

    Standby数据库原理 简单介绍一些基础概念与原理,首先我们做主从同步的目的就是实现db服务的高可用性,通常是一台主数据库提供读写,然后把数据同步到另一台从库,然后从库不断apply从主库接收到的数 ...

  6. 2.Redis数据库(搭建redis主从的必要性)以及主从搭建(Windows为例)

    主从概念 一个master可以拥有多个slave,一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构 master用来写数据,slave用来读数据,经统计:网站的读写比率 ...

  7. docker部署django项目、mysql主从搭建、django实现读写分离

    目录 docker部署django项目 1.1 基于python基础镜像 将本地django项目打包并发到远程服务器上 将服务器上的.zip django项目解压 部署的具体流程 1.2 基于dock ...

  8. Redis多实例及主从搭建

    主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...

  9. postgresql主从备份_基于windows平台的postgresql主从数据库流备份配置

    基于windows平台的postgresql主从数据库流备份配置 因工作需要,需要搞pg数据库的主从备份,领导给了个方向使用流备份,于是开始朝着这个方向进发. 鸣谢大佬A_ccelerator的博客 ...

最新文章

  1. (转)基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作...
  2. uniapp连接php,thinkphp5 对接手机uni-app的unipush推送(个推)
  3. Pro Android学习笔记(二九):用户界面和控制(17):include和merge
  4. 模电这么学,谁还会说不懂晶体管?
  5. Design Compiler指南——施加设计约束
  6. js提交java后台,双引号转义为quot;解决办法……StringEscapeUtils.unescapeHtml4完美解决
  7. CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔
  8. MFC_Combo_Box_用法(下拉框)
  9. mybatis的mapper.java_mybatis笔记之使用Mapper接口注解
  10. js日期函数表达天,时,分,秒
  11. 【Linux】快速入门gdb调试工具
  12. 常用英文学术论文写作词汇与表达
  13. python函数调用的五种方式
  14. RocketMQ入门(5.单向(Oneway)发送)
  15. 鲸探发布点评:8月19日发售《小窗白云与凿山骨》数字藏品
  16. web前端做汽车之家官网,HTML5+CSS3+JS
  17. Datatable 列名
  18. 匈牙利命名和驼峰命名相互转换java
  19. [debug004]_GPIO对地短路问题
  20. ios 自动打包命令_iOS:使用jenkins实现xcode自动打包(最新)

热门文章

  1. web和http相关知识点总结
  2. 脸谱中国310互联网+新资本商业模式会议总论
  3. java arraycopy 参数_java System.arraycopy()复制数组
  4. ArcMap-加载tif影像背景为黑色的情况
  5. 打开网页发生了什么?
  6. 如何做好知识付费课程?
  7. [GKCTF2020]web
  8. linux 迅雷 命令行,Linux类似迅雷的下载利器uGet 1.10.5发布
  9. 入侵sf服务器技术_如何更高效地实现服务器安全巡检管理?
  10. 少儿编程机器人培训行业前景