• postgresql流复制配置


    环境说明

    示例环境

    主机名

    IP

    角色

    系统版本

    数据目录

    pg版本

    master

    192.168.174.200

    主库

    CentOS Linux release 7.4.1708 (Core)

    /var/lib/pgsql/data

    9.2.23

    slave1

    192.168.129.201

    备库

    CentOS Linux release 7.4.1708 (Core)

    /var/lib/pgsql/data

    9.2.23

    postgresql安装

    请参照:Linux安装postgresql及基础操作

    备库不需要执行:service postgresql initdb、service postgresql start

    如已经执行请删除对应目录

    rm -rf /var/lib/pgsql

    mkdir -p /var/lib/pgsql/{data,xlog_archive}  
    chown -R postgres:postgres /var/lib/pgsql/  
    chmod 0700 /var/lib/pgsql/data

    主库配置(192.168.174.200)

    创建复制角色
    #启动数据库
    service postgresql start
    #切换用户 
    su - postgres
    #登入数据库
    psql -U postgres
    #创建replicator用户
    create role replicator with login replication password '123456';
    #将用户postgres的密码修改为postgres
    alter user postgres with password 'postgres';
    #退出
    q
    配置pg_hba.conf
    vi /var/lib/pgsql/data/pg_hba.conf

    # IPv4 local connections:
    host    all             all             0.0.0.0/0               trust
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    host     replication     all             0.0.0.0/0               trust

    配置postgresql.conf
    mkdir /var/lib/pgsql/xlog_archive
    chmod 0700 /var/lib/pgsql/xlog_archive
    vi /var/lib/pgsql/data/postgresql.conf
    listen_addresses = '*'
    wal_level = hot_standby
    synchronous_commit = on
    archive_mode = on
    archive_command = 'cp %p /var/lib/pgsql/xlog_archive/%f'
    max_wal_senders=5
    wal_keep_segments = 32
    hot_standby = on
    restart_after_crash = off
    replication_timeout = 5000
    wal_receiver_status_interval = 2
    max_standby_streaming_delay = -1
    max_standby_archive_delay = -1
    synchronous_commit = on
    restart_after_crash = off
    hot_standby_feedback = on
    重启服务
    service postgresql restart

    备库配置(192.168.174.201)

    创建目录
    mkdir -p /var/lib/pgsql/{data,xlog_archive}  
    chown -R postgres:postgres /var/lib/pgsql/  
    chmod 0700 /var/lib/pgsql/data
    
    pg_basebackup搭建主备流复制环境
    su - postgres
    pg_basebackup -h 192.168.174.200 -U postgres -D /var/lib/pgsql/data/ -X stream -P
    修改recovery.conf配置
    vim /var/lib/pgsql/data/recovery.conf
    
    standby_mode = 'on'  
    primary_conninfo = 'host=192.168.174.200 port=5432 user=replicator application_name=myapp-1 password=123456 keepalives_idle=60 keepalives_interval=5 keepalives_count=5'  
    restore_command = 'cp /var/lib/pgsql/xlog_archive/%f %p'  
    recovery_target_timeline = 'latest'
    启动服务
    su - postgres
    pg_ctl -D /var/lib/pgsql/data/ start

    测试

    select * from pg_stat_replication;

    主库201中创建mytab的表里面插入三条数据:

    登入备库进行查看,数据已经同步过来。

  • 相关阅读:
    JavaEE XML XSL转换(XSLT)
    Java 并发 中断线程
    Java 并发 线程同步
    Java 并发 关键字volatile
    Java 并发 线程的优先级
    Java 并发 线程属性
    Java 并发 线程的生命周期
    Java NIO Channel和Buffer
    Java NIO Channel之FileChannel [ 转载 ]
    VUE CLI3 less 全局变量引用
  • 原文地址:https://www.cnblogs.com/gmhappy/p/9472454.html
Copyright © 2020-2023  润新知