文档章节

postgresql通过repmgr搭建standby

73号车站
 73号车站
发布于 2015/04/29 18:48
字数 589
阅读 100
收藏 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
海淀
私信 提问
postgres使用repmgr单间流复制,无法访问repmgr的repl_nodes等表的问题

在使用repmgr搭建流复制 ,使用3个节点的 1节点 [postgres@dw01 repmgr]$ repmgr -f /usr/local/pgsql/repmgr/repmgr.conf --verbose master register [2016-01-13 15:47:40] [NOTICE] openi......

OpeNDB
2016/01/13
427
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...

闻术苑
2018/10/29
416
0
PostgreSQL Hot Standby

一、简介 PostgreSQL数据库提供了类似Oracle的standby数据库的功能。PostgreSQL9.0 standby数据库在应用WAL日志的同时,也可以提供只读服务,这是PostgreSQL9.0中最激动人心的功能,这个功能...

长平狐
2012/08/27
201
0
PostgreSql基于Standby的异步流主从复制

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

青苗飞扬
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

刚入职阿里,告诉你真实的职场生活,兼谈P6、P7、P8的等级

一:拿下offer的人,基本上都有什么特征? 二:为什么选择阿里? 三:阿里的工作氛围什么样? 四:阿里的薪资情况? 五:阿里的晋升空间有多大? 最近部门招聘,很多工程师,包括我在内都参与...

java知识分子
24分钟前
2
0

中国龙-扬科
27分钟前
1
0
深入理解定时器系列第一篇——理解setTimeout和setInterval

很长时间以来,定时器一直是javascript动画的核心技术。但是,关于定时器,人们通常只了解如何使用setTimeout()和setInterval(),对它们的内在运行机制并不理解,对于与预想不同的实际运行状...

Jack088
29分钟前
4
0
windows 安装nvm

1、nvw-windows的官网:https://github.com/coreybutler/nvm-windows/releases 2、选择nvm-setup.zip安装 3、配置环境变量 4、检查nvm是否安装成功 使用管理员权限打开一个命令行。输入nvm v...

灰白发
40分钟前
1
0
MySQL

慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句。例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查...

士兵7
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部