文档章节

postgresql通过repmgr搭建standby

73号车站
 73号车站
发布于 2015/04/29 18:48
字数 589
阅读 74
收藏 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主从环境配置

主从服务器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 11 preview - Allow on-line enabling and disabling of data checksums

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

德哥
05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用xtrabackup完成远程备份

转载收藏,以防丢失 需求 Can I backup remote databases from my local server02-27-2013, 06:17 AMHi, I am using mysqldump so far for taking daily backups of my Production datab......

阿dai
10分钟前
1
0
OSChina 周五乱弹 —— 心情超级好开始乱删库

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 手机党少年们想听歌,请使劲儿戳(这里) 把生命除去上班时间, 都开心不起来。 @真Skr小机灵鬼儿: 你才不孤独呢, 想想你早起, @for。:这...

小小编辑
11分钟前
4
6
为什么你的python版本一团糟?因为少了这个操作

坑人的版本 Python 的版本问题一直是个广被吐槽的黑点。以至于有人调侃说: Python 是世界上最好的两种语言! 在这里我要说明下,对于初学者来说,版本间的语法差异其实并不大。现在刚开始学...

crossin
昨天
2
0
Cannot forward after response has been committed

声名:转载自CSDN 通过toncat启动服务器,可以正常登陆访问,登陆进去选择子系统的时候点击登陆的时候,可是去又回到了登陆界面,如此反复就是不能够进入子系统,查看后台报的错误: java.la...

小橙子的曼曼
昨天
2
0
shell编程(告警系统邮件引擎、运行告警系统)

告警系统邮件引擎 1.如果要使用邮件引擎功能,需要调用mail.py文件,放到/usr/local/sbin/mon/mail/目录下即可,具体内容如下: #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,s...

蛋黄_Yolks
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部