• 配置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

  • 相关阅读:
    做好测试计划和测试用例的工作的关键是什么?
    windows创建虚拟环境
    面试题整理
    【爬虫】使用selenium设置cookie
    【爬虫】随机获取UA
    Scrapy爬虫提高效率
    【爬虫】多线程爬取糗事百科写入文件
    【爬虫】多线程爬取表情包
    【爬虫】Condition版的生产者和消费者模式
    【爬虫】Load版的生产者和消费者模式
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/5368597.html
Copyright © 2020-2023  润新知