文档章节

PostgreSQL的流复制工具pg_basebackup使用

kenyon_君羊
 kenyon_君羊
发布于 2014/02/24 18:09
字数 657
阅读 1.2W
收藏 11
之前写过怎么在线搭流复制的,参考http://my.oschina.net/Kenyon/blog/54967,步骤相对比较多,需要走3步。其实还有一个工具可以一步到位的,叫pg_basebackup.

 一、介绍
[postgres@test ~]$ pg_basebackup --help
pg_basebackup takes a base backup of a running PostgreSQL server.

Usage:
  pg_basebackup [OPTION]...

Options controlling the output:
  -D, --pgdata=DIRECTORY receive base backup into directory
  -F, --format=p|t       output format (plain (default), tar)
  -R, --write-recovery-conf
                         write recovery.conf after backup
  -x, --xlog             include required WAL files in backup (fetch mode)
  -X, --xlog-method=fetch|stream
                         include required WAL files with specified method
  -z, --gzip             compress tar output
  -Z, --compress=0-9     compress tar output with given compression level

General options:
  -c, --checkpoint=fast|spread
                         set fast or spread checkpointing
  -l, --label=LABEL      set backup label
  -P, --progress         show progress information
  -v, --verbose          output verbose messages
  -V, --version          output version information, then exit
  -?, --help             show this help, then exit

Connection options:
  -d, --dbname=CONNSTR   connection string
  -h, --host=HOSTNAME    database server host or socket directory
  -p, --port=PORT        database server port number
  -s, --status-interval=INTERVAL
                         time between status packets sent to server (in seconds)
  -U, --username=NAME    connect as specified database user
  -w, --no-password      never prompt for password
  -W, --password         force password prompt (should happen automatically)

Report bugs to .
二、准备
主:10.1.11.71
从:10.1.11.72
VIP:10.1.11.73
PG 9.2.3

1.主备机安装(略),以下修改都是在主机上修改除去第二点
备机只需要安装软件,不需要init数据库,主机开启归档和热备参数,在postgresql.conf文件里面配置
max_wal_senders = 2
wal_level = hot_standby
archive_mode = on
archive_command = 'cd ./'
hot_standby = on
wal_keep_segments = 32

2.配置信任关系(主机上都配置,减少切换后的操作)
a.配置
vi .pgpass
10.1.11.73:5678:postgres:repuser:123456
chmod 0400 .pgpass

b.配置pg_hba.conf
host all all 10.1.11.73/32 md5

c.创建流复制用户
postgres=# CREATE USER repuser replication LOGIN CONNECTION LIMIT 3 ENCRYPTED PASSWORD 'Rep_123';

d.检查备机的表空间和需要同步的数据文件路径,确保是空的,否则会报错

三、同步

在从机上执行
[postgres@test ~]$ pg_basebackup -D /database/pgdata/ -Fp -Xs -v -P -h 10.1.11.73 -U repuser -p 5678
transaction log start point: 2/DF000028 on timeline 3
pg_basebackup: starting background WAL receiver
177422/177422 kB (100%), 1/1 tablespace                                        
transaction log end point: 2/DF015EE0
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: base backup completed
四、同步后配置

1.修改reconvery.conf文件
如果主机上是recovery.done,那备机上传过来的这个文件需要改为recovery.conf,另外修改下内容,一般是改下IP密码居多
standby_mode = 'on'
trigger_file = '/database/pgdata/postgresql.trigger.1949'
primary_conninfo = 'host=10.1.11.73 port=5678 user=repuser password=123456 keepalives_idle=60'

五、启动验证
pg_ctl -$PGDATA start

六、参考
http://my.oschina.net/Kenyon/blog/54967
http://www.depesz.com/2011/01/24/waiting-for-9-1-pg_basebackup/
http://francs3.blog.163.com/blog/static/4057672720136210240967/

七、其他
这个工具印象上是linux的rsync功能外加支持DB在线部署,简化了之前的三步操作,另外支持在线数据同步,不需要另外关闭服务保证数据统一

© 著作权归作者所有

kenyon_君羊
粉丝 502
博文 173
码字总数 125197
作品 0
杭州
其他
私信 提问
加载中

评论(0)

PostgreSQL9.x集簇备份pg_basebackup

从postgresql 9版本开始增添了pgbasebackup客户端工具程序,它可以用来备份整个数据库集簇,可以用作流复制的基础备份的一个更方便的方式。 pgbasebackup语法详见:http://www.postgresql.o...

YuanyuanL
2015/08/27
173
0
从代码层判断 pg_basebackup 是否已正常结束 - 暨改进建议

标签 PostgreSQL , pg_basebackup 背景 用户通常会使用pg_basebackup来对PostgreSQL实施在线备份,对于超级大的数据库实例,可能需要备份很久。 如果将任务分解来看,假设备份是任务流中的一...

德哥
2018/06/21
0
0
PostgreSQL DBA快速入门(二) - 高可用流复制配置

PostgreSQL DBA快速入门(二) - 高可用流复制配置 之前的文章中我们谈论了单机PostgreSQL实例的部署,有人可能会说这不是生产级别的配置,因为没有任何高可用机制呀。那么本篇文章,我们来谈谈...

闻术苑
2018/07/31
409
0
PostgreSql基于Standby的异步流主从复制

一、概述 PostgreSQl从9.0版本之后推出一个类似于Oracle的active dataguard和MySql中继日志一样的日志传送。我们借助这个功能就可实现PostgreSql的主从复制。 基本原理就是,通常一台主数据库...

青苗飞扬
2018/06/26
0
0
postgresql高可用集群安装

一、hosts and topology structure of pg cluster 1.host infos cluster01node01 192.168.0.108 cluster01node02 192.168.0.109 cluster02_node03 192.168.0.110 2.topology structure prima......

pgmia
2018/04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java 获取json某个值

String jsonStr = "{\"name\":\"小可爱\",\"course\":\"191010入门课程4年级3讲\",\"teacherPhone\":\"11111111111\"}";JSONObject jsonObject = JSONObject.parseObject(jsonStr); ......

varju
8分钟前
27
0
如何使用printf系列便携地打印size_t变量?

我有一个size_t类型的变量,我想用printf()打印它。 我使用什么格式说明符来便携地打印它? 在32位机器中, %u似乎是正确的。 我用g++ -g -W -Wall -Werror -ansi -pedantic ,没有任何警告。...

javail
14分钟前
35
0
Hostbuddy for Mac(host文件编修改管理工具) v2.2.4永久激活版

想要快速更换你Mac电脑中的host文件么?host文件编修改管理工具哪款好用? Hostbuddy Mac版好用吗?在这款host文件管理软件Hostbuddy for Mac中,有着简单轻松使用方法,可以通过软件快速更新...

mac小叮当
23分钟前
39
0
正则表达式匹配DNS主机名或IP地址?

是否有人方便使用与任何合法DNS主机名或IP地址匹配的正则表达式? 编写一个可以在95%的时间内正常工作的代码很容易,但是我希望得到经过充分测试的东西,以完全匹配最新的DNS主机名RFC规范。...

技术盛宴
29分钟前
37
0
Vue中你可能认为是bug的情况原来是这样的

前言 我们知道Vue框架剧本双向数据绑定功能,在我们使用方便的同时,还有一些细节问题我们并不知道,接下来一起探讨一些吧 双向数据绑定 js变量改变影响页面 页面改变影响js变量 Vue2是如何做...

涂老师
30分钟前
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部