docker搭建Postgresql主备集群

docker搭建Postgresql主备集群

搭建主库

docker-compose.yaml配置文件如下:

version: "3.1"
services:
  postgres:
    image: postgres:12.8
    container_name: pg_master
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    volumes:
      - ~/pg_data:/var/lib/postgresql/data
    ports:
      - 5432:5432
networks: {
   }

将Postgresql主库的数据文件保存到~/pg_data目录下并映射到容器内部,然后启动容器:

docker-compose up -d

在主库数据目录下执行如下命令:

echo "host    replication     all             0.0.0.0/0                 trust" >> ~/pg_data/pg_hba.conf

同时修改postgresql.conf文件的如下内容:

wal_level= replica

修改完成后重启主库容器:

docker-compose restart

备库配置

先使用pg_basebackup命令备份主库的数据,请注意pg_basebackup的版本应该与主库容器内的版本一致,不然会备份失败。比如主库的版本是12.8,备份时也需要使用12.8的pg_basebackup。

pg_basebackup -h 192.168.80.20 -p 5432 -U postgres -w -Fp -Xs -Pv -R -D ~/pg_data_slave

备份完成后新建docker-compose-slave.yaml文件,填入如下内容:

version: "3.1"
services:
  postgres:
    image: postgres:12.8
    container_name: pg_slave
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    volumes:
      - ~/pg_data_slave:/var/lib/postgresql/data
    ports:
      - 54322:5432
networks: {
   }

修改完成后,启动备库容器。

docker-compose up -d -f docker-compose-slave.yaml

相关推荐

  1. dockerPostgresql

    2024-02-22 08:28:05       54 阅读
  2. dockerredis三从

    2024-02-22 08:28:05       31 阅读
  3. docker compose reids 12从架构

    2024-02-22 08:28:05       55 阅读
  4. 达梦数据库

    2024-02-22 08:28:05       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 08:28:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 08:28:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 08:28:05       82 阅读
  4. Python语言-面向对象

    2024-02-22 08:28:05       91 阅读

热门阅读

  1. js设计模式汇总

    2024-02-22 08:28:05       47 阅读
  2. 突破编程_C++_面试(数组(1))

    2024-02-22 08:28:05       48 阅读
  3. 嵌入式24——IO

    2024-02-22 08:28:05       52 阅读
  4. 计算机网络--物理层练习题

    2024-02-22 08:28:05       47 阅读
  5. MySQL中的高级查询

    2024-02-22 08:28:05       35 阅读
  6. mysql binlog

    2024-02-22 08:28:05       47 阅读
  7. el-date-picker(日期时间选择)那些事

    2024-02-22 08:28:05       51 阅读
  8. uniapp引入微信小程序直播组件

    2024-02-22 08:28:05       60 阅读
  9. uniapp监听TV电视遥控器的红外按键事件

    2024-02-22 08:28:05       48 阅读
  10. 蓝桥杯基础知识点9 stack、queue、priority_queue

    2024-02-22 08:28:05       46 阅读