文档章节

postgresql通过repmgr搭建standby

73号车站
 73号车站
发布于 2015/04/29 18:48
字数 589
阅读 83
收藏 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
repmgr 4.2 发布,对 PostgreSQL 11 提供支持

第二象限公司(2ndQuadrant)于10月24日发布了repmgr 4.2,以对最新版本PostgreSQL 11提供支持。 repmgr是一款开源的、用于PostgreSQL服务器集群复制管理和故障转移的工具。它扩展了Postgre...

闻术苑
10/29
0
0
PostgreSql基于Standby的异步流主从复制

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

青苗飞扬
06/26
0
0
生产环境postgresql主从环境配置

主从服务器IP: 192.168.11.131 postgreSQL master 192.168.11.132 postgreSQL slave 服务器系统版本: # cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 (Maipo) PG......

断臂人
07/19
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

没有更多内容

加载失败,请刷新页面

加载更多

技术工坊|如何开发一款以太坊钱包(深圳)

【好消息!】HiBlock区块链技术工坊已经成功举办了26期,其中北京1期,西安1期,成都2期,上海22期。经常有社区的小伙伴问定期举办技术工坊的除了上海以外,其他城市有没有?现在区块链技术工...

HiBlock
8分钟前
1
0
Redis 梳理笔记

安装 安装gccyum install gcc-c++下载传输到服务器上解压tar -xzvf *.tar.gzcd redis-3.2.9编译make安装 make PREFIX=/usr/local/redis install将配置文件拷贝出来cp redis...

晨猫
10分钟前
0
0
PyCharm flask 'Debug mode off' 调试模式关闭的解决方法

flask的几种debug模式的方法 # 1.app.run 传参debug=trueapp.run(debug=True) #2 设置app的配置app = Flask(__name__)app.config['DEBUG'] = True #3 配置文件方式# config.py中添加d...

yimingkeji
17分钟前
1
0
聊聊storm TridentWindowManager的pendingTriggers

序 本文主要研究一下storm TridentWindowManager的pendingTriggers TridentBoltExecutor.finishBatch storm-core-1.2.2-sources.jar!/org/apache/storm/trident/topology/TridentBoltExecut......

go4it
23分钟前
1
0
java实现多线程两种基本方式

我们在开发当中经常会使用到多线程,这里我们来写两个小案例通过最基本的两种方式继承Thread类或实现Runnable接口来实现一个多线程。 继承Thread类 我们可以通过继承Thread类,并重写run()方...

王子城
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部