zoukankan      html  css  js  c++  java
  • 配置recovery_min_apply_delay后重启standby节点报错:psql: FATAL: the database system is starting up

    环境:

    pg版本:PostgreSQL 9.4.4 on x86_64

    系统版本:CentOS release 6.6

    linux内核版本:2.6.32-504.8.1.el6.x86_64

    今天测试standby延时复制时,在standby节点配置了recovery_min_apply_delay参数,刚开始设置的是5min,但重启完standby节点后,连接数据库直接报:psql: FATAL:  the database system is starting up 错误,我一开始以为是节点中的backup标签有问题,之前曾经碰到过这个报错,是由backup的标签引起的,当时是删掉该标签就可以了,然后查看错误日志,错误日志中没有和backup标签有关的报错信息。怀疑是recovery_min_apply_delay参数的问题,将recovery_min_apply_delay从recovery.conf中去掉,重启,可以连接,重新调整recovery_min_apply_delay值得大小为5s,也可以连接,然后再设为5min,发现仍然报psql: FATAL:  the database system is starting up错误,查阅官方文档,没有这方面的说明。

    下面是测试内容:

    1、将recovery_min_apply_delay参数设为5s:

    recovery_min_apply_delay=5s
    recovery_target_timeline = 'latest'
    standby_mode = on
    primary_conninfo = 'host=192.168.173.43 port=1921 user=rep keepalives_idle=60'             # e.g. 'host=localhost port=5432'

    重启standby节点:

    pg_ctl restart -m fast

    可以正常连接:

    postgres@db-192-168-173-41-> psql
    psql (9.4.4)
    Type "help" for help.
    
    postgres=# 

    2、将recovery_min_apply_delay参数设为5min:

    recovery_min_apply_delay=5min
    recovery_target_timeline = 'latest'
    standby_mode = on
    primary_conninfo = 'host=192.168.173.43 port=1921 user=rep keepalives_idle=60'             # e.g. 'host=localhost port=5432'

    然后重启standby节点,连接数据库:

    postgres@db-192-168-173-41-> psql
    psql: FATAL:  the database system is starting up
    postgres@db-192-168-173-41-> 

    无法连接。

    在大约等待5min左右后,可以正常连接。

    注:

    1、需要等待大约recovery_min_apply_delay的时间后,才可以正常连接。

    2、在邮件列表中也有这个问题的疑问,但没有解答:

    http://www.postgresql.org/message-id/20151111155006.2644.84564@wrigleys.postgresql.org

    关于这个问题,如果大家有知道的,希望可以说一下。非常感谢。

    补充:

    今天查看邮件列表,发现这个问题已由Fujii Masao在今年3月5号修复,之前是设置延时参数后,即使主从状态是一致的,standby节点也无法访问,现在提交补丁后,即使重设该参数,当主从处于一致状态时,则standby就可以访问。

    详细链接:

     http://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=d34794f7d5566effd342dd0ebaca3de3b48656f0

  • 相关阅读:
    docker 入门(docker 镜像 、容器、仓库)
    windows 安装 docker
    关于go mod 的使用和goland 配置 go mod
    mac 安装docker
    vm 将宿主机文件夹 映射至 虚拟机
    centos 关于yum无法使用
    mac 安装 swoole 可能会出现的错误
    BZOJ3378:[USACO]MooFest 狂欢节(树状数组)
    BZOJ3110:[ZJOI2013]K大数查询(整体二分)
    BZOJ4170:极光(CDQ分治)
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/5368597.html
Copyright © 2011-2022 走看看