• docker下postgis主从分离部署


    主服务的IP:192.168.153.133

    从服务的IP:192.168.153.134

    一、主服务器

    1、拉取镜像

    docker pull mdillon/postgis

    2、创建容器

    docker run --name pg-master --restart=always  -v /data/postgresql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d mdillon/postgis
    docker run --name pg-slave --restart=always  -v /data/postgresql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d mdillon/postgis

    3、在主服务器上给从服务器添加同步数据权

    1)创建同步数据用户

    docker exec -it pg-master bash
    su postgres
    psql
    CREATE ROLE replica login replication encrypted password 'replica';

    退出docker容器,回到宿主机

    2)允许从库同步数据

    vi /data/postgresql/data/pg_hba.conf
    在最下面添加
    host   replication      replica       192.168.153.134/32          trust

    4、修改主服务器(192.168.153.133)的postgresql.conf

    vi /data/postgresql/data/postgresql.conf

    listen_addresses = '*' # 监听所有IP archive_mode = on # 允许归档 archive_command = '/bin/date' # 用该命令来归档logfile segment,这里取消归档。 wal_level = replica #开启热备 max_wal_senders = 32 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个 wal_keep_segments = 64 # 设置流复制保留的最多的xlog数目,一份是 16M,注意机器磁盘 16M*64 = 1G wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间 max_connections = 200 # 这个设置要注意下,从库的max_connections必须要大于主库的

    退出docker容器,回到宿主机

    5、重启主服务器的容器

    docker restart pg-master

    二、从服务器

    1、在从服务器上将主服务器的数据同步到从数据库

    docker exec -it pg-slave bash 
    su postgres
    rm -rf /var/lib/postgresql/data/*
    pg_basebackup -D $PGDATA -Fp -Xs -v -P -h 192.168.153.133 -U replica -W

    退出docker容器,回到宿主机

    2、添加恢复文件

    vi /data/postgresql/data/recovery.conf
    
    standby_mode = on
    primary_conninfo = 'host=192.168.153.133 port=5432 user=replica password=replica'
    recovery_target_timeline = 'latest'

    3、修改postgresql.conf

    vi /data/postgresql/data/postgresql.conf
    wal_level = replica
    max_connections = 1000
    hot_standby = on
    max_standby_streaming_delay = 30s
    wal_receiver_status_interval = 10s 
    hot_standby_feedback = on

    4、启动容器

    docker start pg-slave

    5、在主服务器上校验主从部署

    docker exec -it pg-master bash
    su postgres
    psql
    select client_addr,sync_state from pg_stat_replication;
    不为空创建成功
  • 相关阅读:
    strcpy_s 和 strcat_s的用法 简单
    SAP更改商品的授权
    SAP设置默认的登录Client Code
    SAP安装windwos XP Sap的show 教程什么都看不到,的解决办法
    SAP用户管理
    sap 常用事务代码
    SAP-系统表
    随笔
    SAP如何学好SAP BASIS
    SAP IMG
  • 原文地址:https://www.cnblogs.com/xiaofengfree/p/13402875.html
Copyright © 2020-2023  润新知