Postgres 主从配置(四)
Postgres 主从切换
数据库主从结构中由从库升级为主库较为容易些,但是主库恢复后重新加入到主从结构中就不那么容易了。
以往的做法是当成一个全新的从库加入进来,数据需要重新从现有的主库中使用pg_backup全部拉取过来,数据量少时还可以接受,如果数据量过大对现有系统的影响很大,
而且也非常耗时。与全量拉取数据比较,其实在本地已经存在大部分的数据内容,用没有方法使用增量的方式呢?充分利用已有数据。类似于rsync
pg_rewind 会将目标库的数据文件,配置文件复制到本地目录,由于 pg_rewind 不会读取所有未发生变化的数据块,所以速度比重做备库要快很多。
环境
db1 10.1.88.47 主库
db2 10.1.88.46 从库
备注:流复制环境参考 PostgreSQL:使用 pg_basebackup 搭建流复制环境 , 本文略。
--pg_rewind 前提条件
1 full_page_writes
2 wal_log_hints 设置成 on 或者 PG 在初始化时开启 checksums 功能
需要重新启动Postgres
从库切换为主库 db2为新的主库
$pg_ctl promote -D $PGDATA
server promoting
在db2上建立新表并插入数据
$psql
psql (9.5alpha1)
Type "help" for help.
postgres=# create table test_2(id int4);
CREATE TABLE
postgres=# insert into test_2(id) select n from generate_series(1,10000) n;
INSERT 0 10000
停主库
$pg_ctl stop -m fast -D $PGDATA
waiting for server to shut down....... done
server stopped
备注:停完原主库后,千万不能立即以备节点形式拉起老库,否则在执行 pg_rewind 时会报,"target server must be shut down cleanly" 错误。
使用pg_rewind差分同步数据
$/usr/pgsql-9.6/bin/pg_rewind --target-pgdata /var/lib/pgsql/9.6/data/ --source-server='host=10.1.88.46 port=5432 user=postgres dbname=postgres password=postgres' -P
connected to server
servers diverged at WAL position 0/B8003138 on timeline 2
rewinding from last common checkpoint at 0/B8002118 on timeline 2
reading source file list
reading target file list
reading WAL in target
need to copy 77 MB (total source directory size is 10139 MB)
79071/79071 kB (100%) copied
creating backup label and updating control file
syncing target data directory
Done!
pg_rewind 成功
修改recovery.conf 文件 启动数据库
$pg_ctl start -D $PGDATA
验证数据
postgres=# select count(1) from test_2;
count
-------
10000
(1 row)
Postgres 主从配置(四)的更多相关文章
- postgres主从配置
运维开发技术交流群欢迎大家加入一起学习(QQ:722381733) 开始部署postgres主从(如果没不会安装postgres的请去上一个博文中查看) 这里我使用了两台服务器部署 主:192.168 ...
- Postgres 主从配置(五)
PostgreSQL 9.4 新增的一个特性, replication slot, 1. 可以被流复制的sender节点用于自动识别它xlog中的数据在下面的standby中是否还需要(例如, st ...
- redis(四))——多实例化——实现主从配置
引言 redis是一个key-value存储系统. 和Memcached类似,它支持存储的value类型相对很多其它,包含string(字符串).list(链表).set(集合)和zset(有序集合) ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- MongoDB(四)-- 主从配置
一.前言 虽然MongoDB官方已经不建议使用主从模式了,但是 熟悉下 也是有用的,替代方案是采用副本集的模式.slave默认情况下是不支持读写的,但是master会把数据同步到slave,不支持客户 ...
- Redis学习总结(四)--Redis主从配置
在分布式系统架构设计中高可用是必须考虑的因素之一.高可用通常是指,通过设计减少系统不能提供服务的时间.而单点是系统高可用的最大的败笔,如果单点出现问题的话,那么整个服务就不能使用了,所以应该尽量在系统 ...
- postgresql主从配置
master:10.0.1.114 slaver:10.0.1.116 一.yum安装https://blog.csdn.net/weixin_41048363/article/details/803 ...
- PostgreSQL9.6主从配置
参考文档: 备机日志传送:https://www.postgresql.org/docs/9.6/static/warm-standby.html 英文文档:https://www.postgresq ...
- postgresql pgsql最新版安装指南及数据存储路径更改及主从配置
postgresql pgsql最新版安装指南及数据存储路径更改及主从配置 安装指南 首先在apt的list添加你当前系统版本对应的apt列表 目前官网有16.04,14.04,12.04 分别对应下 ...
随机推荐
- opencv:级联分类器训练(cascade classifier training)(两个分类器的区别)
# 介绍 级联分类器包括两个工作阶段:训练(traning),检测(detection).检测阶段在文档<objdetect module of general OpenCV documenta ...
- 拦截TextBox 双击消息
Option Explicit Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLo ...
- 按键精灵对VBS的支持
VBSBegin…VBSEnd(VBS块)格式:VBSBegin...VBSEnd用途:可以在VBS块的区域内随意的书写VBS语法指令. 更多说明:由于彻底的转向VBS语言,会导致goto语句不能被兼 ...
- 改成maven工程
configure->convert to Maven Project
- Jmeter Http接口性能测试
Jmeter Http接口性能测试 1. 启动Jmeter Jmeter下载解压即可使用,Jmeter启动,点击D:\ProgramFiles\jmeter\apache-jmeter-2. ...
- ConcurrentHashMap的简单理解
一.效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下.因为当一个线程访问HashTable的同 ...
- 在cmd中显示mysql -uroot-proot 不是命令
这个代码的意思是打开mysql,用户名为root,密码也是root 解决办法:方法一:首先要进入mysql的bin目录下,再执行. 密码错了,重新输入密码,没有密码嘛
- 6-关于#include<bits/stdc++.h>
万能头文件#include<bits/stdc++.h> (转载) 最近在打cf时赛后翻阅别人的代码总是会发现一个陌生而奇怪的头文件#include<bits/stdc++.h& ...
- 四元数--结合《real time rendering》中关于四元数部分
四元数产生于1843年,是复数的一个扩展,所以里面包含了一些复数的运算.直到1985年才在图形学中使用. 四元数的优势是,相对与矩阵和欧拉角,四元数更直观和方便.四元数还可以用作某些方向上的插值,而欧 ...
- Java开发环境之------MyEclipse快捷键和排除错误第一选择ctrl+1(***重点***:ctrl+1,快速修复---有点像vs中的快速using
using Java开发环境之------MyEclipse快捷键和排除错误第一选择ctrl+1(***重点***:ctrl+1,快速修复---有点像vs中的快速using 2015-06-29 浏览 ...