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

因工作需要,需要搞pg数据库的主从备份,领导给了个方向使用流备份,于是开始朝着这个方向进发。

鸣谢大佬A_ccelerator的博客

一、配置主从库

1.环境准备

对于 pg 的主从库配置,建议是使用两台机器。本文档基于两台 windows 环境编写。

主:

操作系统:windows10

数据库版本:postgresql-10.4

ip:192.168.61.132

从:

操作系统:windows10

数据库版本:postgresql-10.4

ip:192.168.61.130

2.配置主库

(1)配置 pg_hba.conf 文件

在 pg 的安装目录下,找到 pg_hba.conf 文件

目录示例:C:\Program Files\PostgreSQL\10\data

在文件末尾增加一行代码,目的是增加名为 replica 的用户,以进行数据库 同步的操作。填写的 ip 为从数据库的地址。

host replication replica 192.168.61.130/32 md5

(2)创建 replica 相关权限

可以在 pgadmin 中直接运行 sql 语句:

CREATE ROLE replica login replication encrypted password 'replica'

(3)配置 postgresql.conf 文件

在 pg 的安装目录下,找到 postgresql.conf 文件,查找并修改如下配置(如 果前面有#,需要删除#字符):

wal_level = replica

max_wal_senders = 32

wal_keep_segments = 256

wal_sender_timeout = 60s

参数简要说明:

wal_level //设置流复制模式至少设置为

replica max_wal_senders //这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个

wal_keep_segments //pg_wal 目录下保留 WAL 日志的个数,每个 WAL 文件默认 16M,为保 障从库能在应用归档落后时依旧能追上主库,此值建议设置较大一点。

wal_sender_timeout //设置流复制主机发送数据的超时时间

(4)启动主库

启动 pg 服务 postgresql-x64-10

3.配置从库

(1)配置 data

首先将主数据库的 data 文件夹内容通过 pg_basebackup 备份过来:

pg_basebackup -F p --progress -D "C:\Program Files\PostgreSQL\10\data2" -h 192.168.61.132 -p 5432 -U replica --password

输入密码 replica 等待备份结束

然后关闭 pg 服务,打开 PostgreSQL\10\的目录可以看到多出了 data2 出来, 此时备份并删除 data 文件夹,修改 data2 文件夹名为 data。

(2)配置 recovery.conf 文件

复制 PostgreSQL\10\share 下的 recovery.conf.sample 到 data 下,重命名 为 recovery.conf。

修改以下配置(如果前面有#,需要删除#字符):

standby_mode = on primary_conninfo = 'host=192.168.61.132 port=5432 user=replica password=replica' recovery_target_timeline = 'latest'

(3)配置 postgresql.conf 文件

在 pg 的安装目录下,找到 postgresql.conf 文件,查找并修改如下配置(如 果前面有#,需要删除#字符):

hot_standby = on

max_standby_streaming_delay = 30s

wal_receiver_status_interval = 1s

hot_standby_feedback = on

参数简要说明:

hot_standby //此参数控制在恢复归档期间是否支持只读操作,设置为 ON 后从库为只读模式。

max_standby_streaming_delay //数据流备份的最大延迟时间

wal_receiver_status_interval //多久向主报告一次从的状态,当然从每次数据复制都会向主 报告状态,这里只是设置最长的间隔时间。

hot_standby_feedback //如果有错误的数据复制,是否向主进行反馈

(4)启动从库

启动 pg 服务 postgresql-x64-10

4.确认是否成功

在主数据库的 pgadmin 中可以执行:

select client_addr,sync_state from pg_stat_replication;

假如出现如下的查询结果,便说明已经开始同步了

此时在主库上进行增删改操作,打开从库查看是否同步

二、主从切换

如果主库挂了,需要紧急使用从库来作为主库,以便服务能尽快恢复,操作方法如下:

(1)改一下从库的recovery.conf文件名。

(2)主库上新增recovery.conf文件,按照上文的从库配置方式配置一遍。重启主库,此时主库变更为从库

修改软件程序链接的数据库地址即可

三、问题记录及解决方案

1.从库配置data之后启动不了

自己看日志(windows系统日志 + pg日志)

(1)删除data文件夹下的postmaster.pid。

(2)修改data文件夹权限,给所有用户权限。

postgresql主从备份_基于windows平台的postgresql主从数据库流备份配置相关推荐

  1. centos7上的图形化界面svn客户端_基于windows平台的SVN教程。

    点击蓝色"Java面试那些事儿"关注我哟加个"星标",优质文章,第一时间送达 作者:东风化宇  来源:http://1t.click/akvN # SVN工作原 ...

  2. java通讯录备份_基于Java语言的C/S模式通讯录备份和查询软件

    一 需求分析 本设计要求完成一个基于C/S模式的通讯录备份软件,采用C/S架构,具有易用.美观的图形界面. 1.1 服务器端功能要求 能够验证客户身份,接收客户端的备份通讯录的请求,能够实时备份和更新 ...

  3. logicaldoc 6.5 结合postgresql 9.x安装部署—基于windows平台

    2019独角兽企业重金招聘Python工程师标准>>> 湘中朱生   2012年9月于深圳 说明:原创内容,请勿转载! <1> 从官网下载部署包 官方网站提供源码包和集成 ...

  4. c语言迷宫求解毕业设计,毕业设计(论文)-基于Windows平台C语言实现迷宫游戏的设计.doc...

    基于Windows平台C语言实现迷宫游戏的设计 摘 要 随着科技的日益发展,计算机信息知识越来越被人们所认知和使用,在当今知识爆炸的时代计算机毫无疑问成为人们常用的日常工具,而Windows和C语言都 ...

  5. 基于u盘的linux桌面系统3 -基于windows平台的系统介绍

    基于U盘的移动操作系统,不仅有linux下开源的,也有基于windows平台的.使用起来也非常方便. 我自己试用过的有Prayaya V3,关于它的介绍可以到其官网查看.官方网址:http://www ...

  6. HTML5游戏_基于DOM平台跳跃小游戏开发_9.按键监听

    HTML5游戏_基于DOM平台跳跃小游戏开发 按键监听 视频讲解 HTML5游戏 效果图 本章知识点: 对象自定义名称属性,可以用变量来命名属性名称 //这段代码把多个属性(品牌, 型号, 排量)赋给 ...

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

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

  8. 基于zynq的千兆网udp项目_基于Zynq平台的EtherCAT主站方案实现

    作者:陈秋苑 谢晓锋 陈海焕 广州虹科电子科技有限公司 摘 要:EtherCAT 是开放的实时以太网通讯协议,由德国倍福自动化有限公司研发.EtherCAT 具有高性能.低成本.容易使用等特点,目前在 ...

  9. virtuoso从电路图导入版图_基于Virtuoso 平台的单片射频收发系统电路仿真与版图设计...

    引言 在当前通信市场的带动下,通信技术飞速向前发展,手持无线通信终端成为其中的热门应用之一.因此,单片集成的射频收发系统正受到越来越广泛的关注.典型的射频收发系统包括低噪声放大器(LNA).混频器(M ...

最新文章

  1. SpanBERT:提出基于分词的预训练模型,多项任务性能超越现有模型!
  2. MySQL使用命令备份和还原数据库
  3. php=与-,谈谈PHP中的 -、= 和 :: 符号
  4. 看看比尔·盖茨在关注什么
  5. 计算机工程学院运动会方阵口号,关于校运会的方阵口号
  6. 【数据结构】——冒泡排序、插入排序、选择排序
  7. ios支付宝支付失败不回调_为什么 iOS 支付成功后能回到 APP ,但是没有回调?...
  8. 多个集合合并成没有交集的集合-实现
  9. 通过读取配置文件,启动mongodb
  10. Android进阶:ListView性能优化异步加载图片 使滑动效果流畅
  11. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock...
  12. Java中线程出现Exception in thread Thread-0 java.lang.IllegalMonitorStateException异常 解决方法...
  13. VS C++ 控制台----暂停的方法
  14. 仿人机器人的实时模仿(基于Kinect)
  15. Android自学笔记:Tab控件源码剖析
  16. 使用unity3d 接入anySDK的总结2
  17. 适合程序员编程的笔记本电脑如何选择?
  18. 第四章第八节数据资产盘点-系统数据梳理
  19. PHP 获取网页内容的三种方法
  20. Excel表格的基本操作,看这里,excel表格数据汇总教程简单易学

热门文章

  1. 内存恶鬼drawRect
  2. Servlet3.0学习总结(四)——使用注解标注监听器(Listener)
  3. 今天辞职~Scars of time
  4. VI-ORB环境配置
  5. get_metrology_object_result_contour查询计量对象的结果轮廓
  6. halcon clear_ocr_class_svm 清除基于SVM的OCR分类器
  7. 【图像处理】——鼠标点击图像的一处,获得点击点的坐标值
  8. 基于VS2019的Eigen库安装详解
  9. 2021年高考成绩查询襄阳状元,大胆猜测一下,2021年高考,湖北省文理状元会花落谁家?...
  10. 手把手教你如下在Linux下如何写一个C语言代码,编译并运行