pgsql的同步须知

pgsql的同步模式是根据master上的日志来做的同步,有两种同步方式,参考
http://www.chinaxing.org/articles/Postgres/2012/12/14/2012-12-14-hight-availability-in-postgresql.html

pgsql的日志有一个自动回收的特性,如果某些日志发现不需要了,pgsql会重命名他们,并且用新日志覆盖;这带来一个问题,如果传送给备机的日志还没有全部传好,但是master上已经没有了,就会导致问题,所以,pgsql提供了一个接口,在postgresql.conf里面配置archive_command,这个用于在流复制的时候,pgsql会调用这里配置的命令,官方wiki的例子是cp到自定义的日志目录(你可以自己rsync到备机,如果用rsync,master上的wal_keep_segments也要设大一些,防止在rsync完成之前日志就没了),在备机上修改recovery.conf,里面配置restore_command,这个命令也会被调用

关于9.1新增的pg_basebackup命令,德哥建议用rsync,看http://blog.163.com/[email protected]/blog/static/16387704020133277305874

archive模式的例子,亲测通过
master的postgresql.conf

wal_level = hot_standby
wal_keep_segments = 32
max_wal_senders = 3

archive_mode = on
#这里之所以mkdir,是自己在配置的时候死活提示没有权限,发现路径不过,自己mkdir以后,就很清楚的知道在哪里了
archive_command = ‘mkdir -p p_archive;cp -i %p pg_archive/%f‘

slave的recovery.conf,暂时随便找个地方放好了

standby_mode = on
primary_conninfo = ‘host=192.168.1.111 user=repuser password=123456‘
restore_command = ‘cp pg_archive/%f %p‘
#某个时候会自动调用cleanup清理,默认pg_archivecleanup没有安装,需要apt-get install postgresql-contrib
archive_cleanup_command = ‘pg_archivecleanup pg_archive %r‘

slave上使用pg_basebackup来同步的测试

sudo service postgresql stop;sudo rm -rf /var/lib/postgresql/9.4/main;sudo -u postgres pg_basebackup -h 192.168.1.111 -D /var/lib/postgresql/9.4/main -U repuser -v -P;sudo cp /home/mmc/Desktop/recovery.conf /var/lib/postgresql/9.4/main/;sudo service postgresql start;
时间: 2025-01-05 19:20:28

pgsql的同步须知的相关文章

debian8下pgsql的主备同步热切手动脚本

9以后,通过流复制直接做 主:192.168.1.111 从:192.168.1.222 需要在postgres帐号下先配置ssh互信,双机都配置 sh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]192.168.1.222 测试 ssh 192.168.1.222 date sudo apt-get install rsync openssh-server 修改postgres的系统帐号和sql帐号的密码创建一

rsync+inotify实时同步

一.Rsync简介: rsync是一个远程数据同步工具,可通过lan/wan快速同步多台主机间的文件.它使用所谓的"rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行rsync server的机器也叫backup server,一个rsync server可同时备份多个client的数据:也可以多个rsync server备份一个client的数据.rsync可以搭配

postgresql同步流复制搭建

节点 IP 角色 master 10.10.100.1 master standby1 10.10.100.2 standby1 standby2 10.10.100.3 standby2 master上创建流复制所需要的用户. CREATE ROLE replication WITH REPLICATION PASSWORD 'replication' LOGIN; 修改master的pg_hba.conf文件,设置replication用户远程访问权限 ## vim /data/pgsql/

Pgsql 主从复制

系统版本:Ubuntu12.04数据库版本:postgresql-9.1.3 下载地址:http://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.gz Master :192.168.1.10 Slave : 192.168.1.108 Master PostgreSQL安装: sudo apt-get  install lib64readline-gplv2-devlib64readline6-dev libreadlin

centos6.5下postgresql9.4.3同步流复制的standby安装与配置

一.同步流复制的架构 PostgreSQL从9.1版本之后提供了同步复制的架构.同步复制要求在数据写入Standby数据库后,事务的commit才返回,所以Standby库出现问题时,会导致主库被hang住.解决这个问题的方法是启动两个Standby数据库,这两个standby数据库只要有一个是正常的,就不会让主库hang住.所以在实际应用中,同步流复制,总是有1个主库和2个以上的Standby库. 二.同步复制的配置 实现同步复制功能主要是在主库上配置参数"synchronous_standb

多线程编程--5种方法实现线程同步

1:用Interlocked系列函数实现线程同步: 2:用CRITICAL_SECTION及其系列函数实现线程同步: 3:用RTL_SRWLOCK及其系列函数实现线程同步: 4:用事件内核对象实现线程同步: 5:用信号量内核对象实现线程同步:   1:用Interlocked系列函数实现线程同步实例如下: //旋转锁 #include <iostream> using namespace std; #include <process.h> #include <windows.

.NET面试题解析(07)-多线程编程与线程同步

系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 关于线程的知识点其实是很多的,比如多线程编程.线程上下文.异步编程.线程同步构造.GUI的跨线程访问等等,本文只是从常见面试题的角度(也是开发过程中常用)去深入浅出线程相关的知识.如果想要系统的学习多线程,没有捷径的,也不要偷懒,还是去看专业书籍的比较好. 常见面试题目: 1. 描述线程与进程的区别? 2. 为什么GUI不支持跨线程访问控件?一般如何解决这个问题? 3. 简述后台线程和前台线程的区别? 4. 说说常

PostgreSQL的 Slony-I 数据同步

原文--http://www.tuicool.com/articles/mMvARf 先谈谈slony的局限性: 1. DDL动作是不会被复制到: 2. 如果想使用slony来同步数据,表必须是带有主键的 内容大家看原文:个人感觉总结的很好! 下面是为slony维护:定制的脚本 包括了服务启动/关闭:以及slony set删除/安装. #!/bin/sh SLONIK=/opt/pgsql/bin/slonik SLON=/opt/pgsql/bin/slon CLUSTER_NAME=lott

企业技术负责人必须知道的DevOps10个小技巧

DevOps成为越来越多的大型公司和组织的关键,所以参考一些公司成功实施DevOps的一些做法对我们很重要. 很明显,只要正确运用,DevOps会是非常有效的工具.今年6月份,一份Puppet问卷显示,使用DevOps方法的IT部门成功部署软件的次数平均是不使用的200倍.同时,他们的恢复次数比没使用DevOps的同行多了24次,而且修改配置的失败率降到原来的三分之一. 因为这些成功,DevOps变得格外流行,一份2012年以来的真实报告显示DevOps职位比例从不到1%增加到30%. 下面列举