文档章节

postgresql通过repmgr搭建standby

73号车站
 73号车站
发布于 2015/04/29 18:48
字数 589
阅读 56
收藏 0
点赞 0
评论 0

 一    准备

       1. 两台机机器,操作系统ubuntu

            node1: ip 192.168.4.32

            node2: ip 192.168.8.68

        2. pg和repmgr安装

                                这两个我是通过源码,从pg官网下载,repmgr在github下载。pg编译步骤./configure;make;make install,

                    把repmgr源码下载后,copy到pg源码的src/contrib/下,直接make,make install即可。

    二    搭建standby

        1.  node1配置

               a) 修改pg配置文件

                        postgresql.conf: 具体配置如下

                                listen_addresses='*'
                                wal_level = 'hot_standby'
                                archive_mode = on
                                archive_command = 'cd .'   # we can also use exit 0, anything that
                                                                                   # just does nothing
                                max_wal_senders = 10
                                wal_keep_segments = 5000   # 80 GB required on pg_xlog
                                hot_standby = on
                                shared_preload_libraries = 'repmgr_funcs'
                                listen_addresses = '*'

                        pg_hba.conf: 具体配置如下  

                                host    all             all             192.168.4.32/32            trust
                                host    all             all             192.168.8.68/32            trust
                                host    replication     hli        192.168.4.32/32            trust
                                host    replication     hli        192.168.8.68/32            trust
                b)启动服务

                      pg_ctl start -D ../data
                             执行psql -f ../share/contrib/repmgr_funcs.sql posgres
                             重启服务:pg_ctl -D $PGDATA restart

                c)node1、node2交换key
                            生成key:ssh-keygen -t rsa
                            交换key:
                                        node1执行:ssh-copy-id hli@192.168.4.32
                                                      ssh-copy-id hli@192.168.8.68
                                        node2执行
                                                      ssh-copy-id hli@192.168.4.32
                                                        ssh-copy-id hli@192.168.8.68
                        
            2. node2配置
                    a)clone master:
                            repmgr -d postgres -U hli -h 192.168.4.32 standby clone -D $PGDATA
                    b)启动服务:
                            pg_ctl -D $PGDATA start
                        
            3. 生成repmgr.conf
                    node1 的配置文件repmgr.conf内容:
                        cluster=my_cluster
                        node=1
                        node_name=node1
                        conninfo='host=192.168.4.32 dbname=postgres user=hli'
                        master_response_timeout=10
                        reconnect_attempts=3
                        reconnect_interval=5
                        failover=automatic
                        promote_command='repmgr standby promote -f /home/hli/postgresql-9.3.5/release/bin/repmgr.conf'
                        follow_command='repmgr standby follow -f /home/hli/postgresql-9.3.5/release/bin/repmgr.conf'
                    node2的配置文件repmgr.conf内容:
                        cluster=my_cluster
                        node=2
                        node_name=node2
                        conninfo='host=192.168.8.68 dbname=postgres user=hli'
                        master_response_timeout=30
                        reconnect_attempts=3
                        reconnect_interval=5
                        failover=automatic
                        promote_command='repmgr standby promote -f /home/hli/release/bin/repmgr.conf'
                        follow_command='repmgr standby follow -f /home/hli/release/bin/repmgr.conf'

            4. 注册master和standby
                    node1上执行:
                        repmgr -f ./repmgr.conf --verbose master register
                    node2上执行:
                        repmgr -f ./repmgr.conf standby register

            5. 初始化wintess服务
                    node2上注册该服务,也可以在第三台机器上做,不过本次实验只有两台机器,所以该witness服务最好在node2上,这样不管node1还是node2服务死掉,都能保证有服务可以正常使用
                    node2上执行:
                                    repmgr -d postgres -U hli -h 192.168.4.32 -D ./witness -f ./repmgr_witness.conf witness create
                            repmgr_witness.conf内容如下:
                                    cluster=my_cluster
                                    node=3
                                    node_name=node3
                                    conninfo='host=192.168.8.68 dbname=postgres user=hli port=5499'
                                    master_response_timeout=5
                                    reconnect_attempts=2
                                    reconnect_interval=2
                                    failover=automatic
                                    promote_command='repmgr standby promote -f /home/hli/sn/zy/release/repmgr.conf'
                                    follow_command='repmgr standby follow -f /home/hli/sn/zy/release/repmgr.conf'

            6. 在node2上注册repmgrd daemons
                    node2上执行:
                        repmgrd -f ./repmgr.conf --daemonize -> /var/log/repmgr.log 2>&1

            至此配置完成,当node1掉电等各种异常导致服务挂掉后,node2上的服务就会成为新的master



































© 著作权归作者所有

共有 人打赏支持
73号车站
粉丝 0
博文 1
码字总数 589
作品 0
海淀
repmgr实现pg流复制失效自动切换

本次测试中用到的配置及脚本见:https://github.com/lxgithub/repmgrconfscripts 一、系统 IP HOSTNAME PG VERSION DIR OS192.168.100.146 node1 9.3.4 /opt/pgsql CentOS6.4_x64192.168.100......

LIAN-SA
2014/04/18
0
3
PostgreSql基于Standby的异步流主从复制

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

青苗飞扬
06/26
0
0
postgresql的hot standby(replication stream)

PG在9.*版本后热备提供了新的一个功能,那就是Stream Replication的读写分离,是PG高可用性的一个典型应用,也就是我们传统意义上说的Hot-Standby,比如Oracle的DG,mssql的mirror以及Mysql的...

kenyon_君羊
2012/04/24
0
15
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
04/22
0
0
PostgreSQL 11 preview - Allow on-line enabling and disabling of data checksums

标签 PostgreSQL , checksum , online modify , pgverifychecksums , pgenabledatachecksums , pgdisabledatachecksums 背景 PostgreSQL的数据文件是以数据块组织的,由于数据块可能比文件系......

德哥
05/06
0
0
Postgresql9.2 主备设置

1.1 主机说明 主服务器:192.168.1.120 备用服务器:192.168.1.121 1.2 配置主服务器 说明:从库只安装数据库软件,不进行数据库初始化。 1) 创建归档目录 mkdir /usr/local/pgsql/archive c...

yntmdr
07/06
0
0
给PostgreSQL爱好者的参考资料

出处 http://blog.163.com/digoal@126/blog/static/163877040201172183022203/ 给PostgreSQL爱好者的参考资料 2011-08-21 08:32:39| 分类: PostgreSQL|举报|字号 订阅 推荐书籍: 概念书籍:......

3444542
06/26
0
0
PostgreSQL的流复制配置(基于事务日志传送)

自PostgreSQL 9.0开始,添加了流复制(Streaming Repulication)。流复制源于pg早期的“同步日志传送复制”(Synchronous Log Shipping Repulication)--一个高可用的(HA)解决方案。 流复制...

YuanyuanL
2014/09/15
0
0
PostgreSQL基于流复制的HA实现

继上两周由DBA+杭州群联合发起人周正中带来的数据库安全专题分享,本周起,他将为大家分享数据库管理专题,以下讲解的是PostgreSQL基于流复制的HA实现。 专家简介 周正中 网名:德哥@Digoal...

德哥@Digoal
2015/10/27
0
0
阿里云 RDS PostgreSQL 隐藏开关 - hash to btree, unlogged to logged

标签 PostgreSQL , 阿里云 , rds , 隐藏开关 背景 为了保护用户数据的可靠性,阿里云RDS PostgreSQL做了一些保护机制。 1、例如PostgreSQL 10版本以前, HASH索引是不写WAL日志的,所以如果你...

德哥
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

jquery刷新页面(局部及全页面刷新)

window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象(用于框架) opener.location.reload()刷新父窗口对象(用于单开窗口) top.location.reload()刷新最顶端对象...

uug
4分钟前
0
0
CoreText进阶(五)- 文字排版样式和效果

CoreText进阶(五)- 文字排版样式和效果 效果 以下是三个设置了不同属性的效果图 第一个设置了文字颜色为红色,字体为16号 第二个设置了文字颜色为灰色,字体为16号,对其为居中 第三个设置...

aron1992
30分钟前
1
0
10.23 linux任务计划cron~10.27 target介绍

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是...

洗香香
40分钟前
0
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

20.20 告警系统主脚本 告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "en...

lyy549745
44分钟前
0
0
Don’t Repeat Yourself

在软件工程中,Don’t Repeat Yourself(DRY)是软件开发的原则,旨在减少重复,用抽象代替它,使用数据规范化来避免冗余。 这个原则在维基百科上是说是由Andy Hunt和Dave Thomas《The Pragmat...

woshixin
45分钟前
0
0
搭建webpack项目框架

作者:汪娇娇 时间:2018年6月4日 一、说明 随着业务发展和前端人员的增加,搭建一个通用框架以及制定统一规范就成了必然。对于选型这方面,一开始好像就没考虑其他框架,直接选了webpack。w...

娇娇jojojo
53分钟前
0
0
Java基础——面向对象(内部类)

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 内部类: 1.有名内部类 2.无名内部类 内部类申请...

凯哥学堂
今天
0
0
HttpClient内部三个超时时间的区别

RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(config.connReqTimeout) //从连接池中获取连接的超时时间 ......

1713716445
今天
0
0
每天一个命令SCP

每天一个命令:SCP scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速...

河图再现
今天
0
0
cron/chkconfig/systemd/unit/target

linux任务计划 : cron工具 任务计划在运维工作中用到的比较多,大部分系统管理工作都是通过定期自动执行某个脚本来完成。 查看linux中任务计划的配置文件: /etc/crontab [root@yolks-001 ~]...

Hi_Yolks
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部