• postgresql16配置主从


    参考:

    Centos7.6部署postgresql15主从_centos postgresql_sqlboy-yuzhenc的博客-CSDN博客

    服务器

    1. vim /home/opt/postgresql-16.0/data/postgresql.conf
    2. #设置以下
    3. listen_addresses = '*' # 允许远程连接
    4. hot_standby = on # 打开热备
    5. wal_level = replica # 设置 WAL 日志级别为 replica
    6. max_wal_senders = 3 # 允许的 WAL 发送者数量,根据需要进行调整
    7. archive_mode = on
    8. archive_command = 'cp "%p" /home/opt/postgresql-16.0/data/archive/%f'
    9. mkdir /home/opt/postgresql-16.0/data/archive
    10. chown postgres:postgres -R /home/opt/postgresql-16.0/data/archive
    11. su - postgres
    12. pg_ctl -D /home/opt/postgresql-16.0/data restart
    13. #创建slave用户
    14. psql
    15. create role replicator with login replication encrypted password '密码';
    16. vim /home/opt/postgresql-16.0/data/pg_hba.conf
    17. #添加以下
    18. host replication replicator ip地址/32 md5

    从服务器

    首先,你需要创建一个新的PostgreSQL实例。然后,停止这个实例,并且同步用的数据目录需要是空的

    1. #使用pg_basebackup命令从主服务器复制数据
    2. pg_basebackup -Fp --progress -D /home/opt/postgresql-16.0/data/ -R -h 主库ip地址 -p 主库端口 -U replicator --password
    3. chown postgres:postgres -R /home/opt/postgresql-16.0/data/
    4. #创建slave配置文件
    5. vim /home/opt/postgresql-16.0/data/standby.signal
    6. #添加以下
    7. standby_mode = on #on为从库
    8. primary_conninfo = 'host=主库ip地址 port=主库端口 user=replicator password=密码' #主库信息
    9. recovery_target_timeline = 'latest' #流复制同步最新数据
    10. su - postgres
    11. pg_ctl -D /home/opt/postgresql-16.0/data start

    验证主从关系

    1. #主库上验证
    2. psql
    3. select * from pg_stat_replication;
    4. #从库上验证
    5. pg_controldata -D /home/opt/postgresql-16.0/data/ | grep 'Database cluster state'
    6. #正常显示
    7. Database cluster state: in archive recovery

    其他命令

    1. #备份数据
    2. pg_dump -U postgres -F c -b -f 备份文件路径 备份的数据库名称
    3. #恢复数据
    4. pg_restore -U postgres -d 备份的数据库名称 备份文件路径

  • 相关阅读:
    AI 法律助手与原创奇幻小说生成 | 开源专题 No.33
    C++入门学习(3)函数重载
    程序员搞开源,读什么书最合适?
    一些零碎的小知识点(数据库)
    ubuntu更新python版本
    可观察性支柱:探索日志、指标和跟踪
    Spring Cloud学习(二)【Eureka注册中心】
    使用Flink批处理实现WordCount
    初识MySQL
    docker 镜像启动并完成服务部署
  • 原文地址:https://blog.csdn.net/ownfire/article/details/133268882