postgresql主从搭建
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主从搭建相关推荐
- Ubuntu下搭建postgresql主从服务器(方法1)
Ubuntu下搭建postgresql主从服务器(方法1) 安装略 postgresql主服务器: $ vi /etc/postgresql/9.1/main/postgresql.conf 按a或i ...
- 安装 部署 postgresql数据库 搭建主从节点 (业务库)
安装 部署 postgresql数据库 搭建主从节点 (时序数搭建 (待更新)) 文章目录 安装 部署 postgresql数据库 搭建主从节点 一 业务数据库搭建 1. 安装 yum源(服务器可访问 ...
- 生产级实践之集群搭建方案系列-PostgreSQL主从部署搭建与配置
1. 目标 掌握Postgresql数据库主从部署搭建配置 2. 脉络 部署规划 PostgreSQL单节点安装 PostgreSQL主从部署配置 主从同步验证 3. 知行 3.1 简介 Postgr ...
- postgresql主从备份_基于PG12.2实现主从异步流复制及主从切换教程(下)
概述 今天主要介绍如何搭建PG主从流复制及主从切换,仅供参考. PS:上篇的地址在文末链接. PostgreSQL数据库主从异步流复制搭建 环境说明: 1.安装PG数据库(主从库进行) 用脚本进行,略 ...
- CentOS下PostgreSQL 主从实现之异步流复制(Hot Standby)
Standby数据库原理 简单介绍一些基础概念与原理,首先我们做主从同步的目的就是实现db服务的高可用性,通常是一台主数据库提供读写,然后把数据同步到另一台从库,然后从库不断apply从主库接收到的数 ...
- 2.Redis数据库(搭建redis主从的必要性)以及主从搭建(Windows为例)
主从概念 一个master可以拥有多个slave,一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构 master用来写数据,slave用来读数据,经统计:网站的读写比率 ...
- docker部署django项目、mysql主从搭建、django实现读写分离
目录 docker部署django项目 1.1 基于python基础镜像 将本地django项目打包并发到远程服务器上 将服务器上的.zip django项目解压 部署的具体流程 1.2 基于dock ...
- Redis多实例及主从搭建
主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...
- postgresql主从备份_基于windows平台的postgresql主从数据库流备份配置
基于windows平台的postgresql主从数据库流备份配置 因工作需要,需要搞pg数据库的主从备份,领导给了个方向使用流备份,于是开始朝着这个方向进发. 鸣谢大佬A_ccelerator的博客 ...
最新文章
- (转)基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作...
- uniapp连接php,thinkphp5 对接手机uni-app的unipush推送(个推)
- Pro Android学习笔记(二九):用户界面和控制(17):include和merge
- 模电这么学,谁还会说不懂晶体管?
- Design Compiler指南——施加设计约束
- js提交java后台,双引号转义为quot;解决办法……StringEscapeUtils.unescapeHtml4完美解决
- CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔
- MFC_Combo_Box_用法(下拉框)
- mybatis的mapper.java_mybatis笔记之使用Mapper接口注解
- js日期函数表达天,时,分,秒
- 【Linux】快速入门gdb调试工具
- 常用英文学术论文写作词汇与表达
- python函数调用的五种方式
- RocketMQ入门(5.单向(Oneway)发送)
- 鲸探发布点评:8月19日发售《小窗白云与凿山骨》数字藏品
- web前端做汽车之家官网,HTML5+CSS3+JS
- Datatable 列名
- 匈牙利命名和驼峰命名相互转换java
- [debug004]_GPIO对地短路问题
- ios 自动打包命令_iOS:使用jenkins实现xcode自动打包(最新)