postgres流复制,主从环境配置

原创 2017年07月16日 00:29:02

主机规划

  • 主库ip: 192.168.1.100
  • 备库ip: 192.168.1.101

192.168.1.100 主库的配置

  • 修改pg_hba.conf,增加replica用户,进行同步。

    host replication replica 192.168.1.101/32 md5
  • 主库增加用户,赋予登录和备份的权限

    CREATE ROLE replica login replication encrypted password 'replica'
  • 修改主库postgresql.conf

    wal_level = hot_standby  # wal级别
    max_wal_senders = 32 # 最多可以有几个流复制连接
    wal_keep_segments = 256 # 流复制保留的最多的xlog数目
    wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间
    max_connections = 100 # 从库的max_connections必须要大于主库
  • 重启主库

    pg_ctl stop  -D /mnt/postgresql/data
    pg_ctl start -D /mnt/postgresql/data
  • 备库测试连接主库 (postgres@2017)

    psql -h 192.168.1.100 -p 5432 -U postgres

192.168.1.101从库的配置

  • 创建备机数据库备份目录

    mkdir -p /mnt/postgresql_standby/data
  • 备机做基础备份

    pg_basebackup -F p --progress -D $PGDATA -X stream -h 192.168.1.100 -p 5432 -U replica -W
  • 修改recovery.conf (文件可以从pg的安装目录的share文件夹中获取)

    cp /usr/pgsql-9.5/share/recovery.conf.sample /mnt/postgresql_standby/data/recovery.conf
  • 修改recovery.conf

    standby_mode = on  # 这个说明这台机器为从库
    primary_conninfo = 'host=192.168.1.100 port=5432 user=replica password=replica'  # 这个说明这台机器对应主库的信息
    recovery_target_timeline = 'latest' # 这个说明这个流复制同步到最新的数据
  • 修改从库postgresql.conf的配置

    max_connections = 1700 # 一般查多于写的应用从库的最大连接数要比较大
    hot_standby = on  # 说明这台机器不仅仅是用于数据归档,也用于数据查询
    max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间
    wal_receiver_status_interval = 1s  # 多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间
    hot_standby_feedback = on # 如果有错误的数据复制,是否向主进行反馈
  • 配置完后重启从服务器

    pg_ctl stop -D $PGDATA
    pg_ctl start -D $PGDATA

验证是否部署成功

  • 在主节点上执行:

    select client_addr,sync_state from pg_stat_replication;
    
  • 还可以分别在主、从节点上查看

    ps aux | grep postgres
  • 查看备库落后主库多少字节的WAL日志:

    postgres=# select pg_xlog_location_diff(pg_current_xlog_location(),replay_location)from pg_stat_replication;

    ————–2017-11-25 补充—————-

    • 可能会遇到”FATAL: requested WAL segment00800002A0 has already been removed”
      解决方法
      1. 增大wal_keep_segments
      2. 归档,出现这样情况,从归档中拷贝过来(不适用)
      3. 启用replication slot (pg9.4以后才有)
    • 在postgresql.conf中添加

          max_replication_slots = 2000
    • 在拷贝到备库之前,主库要创建一个slot:

      postgres=# SELECT * FROM pg_create_physical_replication_slot('node_a_slot');
        slot_name  | xlog_position
      -------------+---------------
       node_a_slot |
      
      postgres=# SELECT * FROM pg_replication_slots;
        slot_name  | slot_type | datoid | database | active | xmin | restart_lsn
      -------------+-----------+--------+----------+--------+------+-------------
       node_a_slot | physical  |        |          | f      |      |
      (1 row)
    • 在备库的recovery.conf文件中添加一行:

      standby_mode = 'on'
      primary_conninfo = 'host=192.168.4.225 port=19000 user=wslu password=xxxx'
      primary_slot_name = 'node_a_slot'

参考:
http://blog.csdn.net/prettyshuang/article/details/51777645

版权声明:本文为博主原创文章,未经博主允许不得转载。

postgres配置主从流复制

摘要: postgres主从流复制 postgres在9.0之后引入了主从的流复制机制,所谓流复制,就是从库通过tcp流从主库中同步相应的数据。postgres的主从看过一个视频,大概效率为3w多事务...

redis主从复制之linux环境配置

redis 主从复制配置和使用都非常简单。通过主从复制可以允许多个 slave server 拥有和 master server 相同的数据库副本。    redis主从复制有以下特点: (1...

mysql 5.6.14主从复制(也称mysql AB复制)环境配置

mysql 5.6.14主从复制(也称mysql AB复制)环境配置 作者:xcga_wise  发布日期:2013-11-21 08:40:13 一、...

postgres主从异步复制配置

1 流复制介绍 PostgreSQL 9.0以后版本支持:异步、同步两种复制策略,以及通过两种策略演化出来的同步+异步,异步复制从节点间级联复制。他们的优缺点简要介绍如下表:复制方式 优点...

Redis sentinel主从切换环境配置及服务器搭建

手把手教你,Redis sentinel主从切换环境配置及服务器搭建,验证及切换主从

postgres 9.2.3流复制环境搭建

环境: primary 10.0.0.1    Red Hat Enterprise Linux Server release 5.4 standby 10.0.0.2    Red Ha...

Postgres 主从复制搭建步骤

系统版本: linux6.4 64bit 数据库 postgres 9.52台机器ip : 192.168.0.13 /192.168.0.14具体步骤: 一. 首先先在这两台机器上把pos...
  • hkyw000
  • hkyw000
  • 2016年06月16日 17:52
  • 862

ubuntu环境下配置mysql主从复制

我是在VMWare虚拟机的Ubuntu 16.04上进行的测试,步骤如下 1、依次下载安装MySQL,我使用的是 sudo apt-get install mysql-server mysql-cli...

Win7环境MYSQL 主从复制的配置(无插件版)

近期做了个项目,要求数据库做个主从复制(因为读多写少,不用中间件),现在把相关步骤和命令写下来,免得自己以后老是忘记、丢三落四的。 首先做准备工作: 下载mysq集群版(https://dev.mys...

MySQL主从复制配置-windows单机环境

windows8.1系统下配置mysql主从复制 1.测试环境概述   本地win8操作系统,64位操作系统,3G内存,下载的是mysql5.6.16-winx64.zip包   在本地磁盘上解...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:postgres流复制,主从环境配置
举报原因:
原因补充:

(最多只允许输入30个字)