鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

连接数据库或Master主备倒换异常

问题现象描述

连接数据库或Master主备倒换异常,出现如下报错信息:

FATAL:  remaining connection slots are reserved for non-replication superuser connections

关键过程、根本原因分析

数据库“postgresql.conf”配置文件中“max_connections”设置过小,管理员需要手动修改该配置项。

结论、解决方案及效果

  1. 使用PuTTY工具,以DonauKit运维登录用户(如donau_guest)登录服务器。
  2. 执行以下命令,切换至root帐户,并按提示输入用户密码。

    su - root

  3. 修改数据库最大连接数。DB HA场景,修改任意数据库节点配置文件即可。
    1. 执行以下命令,修改“postgresql.conf”配置文件。

      vi /usr/local/postgresql/data/postgresql.conf

      其中:

      • “/usr/local/postgresql/data”是数据库PGDATA路径,麒麟环境为“/var/lib/pgsql/data”
      • HA场景为共享目录,请用户根据配置文件实际所在目录输入命令。
    2. 按“i”进入编辑模式,修改“max_connections”文件配置项。
      根据实际情况修改数据库最大连接数,确保最大连接数大于Donau Scheduler配置连接数,如下为示例:
      max_connections = 1000                # (change requires restart)

      Donau Scheduler数据库配置可查看“/opt/batch/master/conf/master.properties”配置文件中“db.connectNum”配置项,该配置项默认不显示。若未显式配置,则以缺省值200为准。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 配置文件修改完成后,重新加载配置文件。
    • 非DB HA场景

      systemctl reload postgresql.service

    • DB HA场景
      1. 执行以下命令,查询数据库主节点。

        pcs status

        显示信息包含以下内容,表示数据库运行在主机名为ccsdb01节点,如下为示例:

        pgsql      (ocf::heartbeat:pgsql): Started ccsdb01
      2. 使用PuTTY工具,以DonauKit运维登录用户(如donau_guest)登录数据库主节点。
      3. 执行以下命令,切换至root帐户,并按提示输入用户密码。

        su - root

      4. 执行以下命令,切换至postgres用户。

        su - postgres

      5. 执行以下命令,重新加载配置文件。

        pg_ctl reload

  5. 重启数据库服务后,可查看配置是否生效。
    1. 使用PuTTY工具,以DonauKit运维登录用户(如donau_guest)登录数据库节点。
    2. 执行以下命令,切换至root帐户,并按提示输入用户密码。

      su - root

    3. 执行以下命令,切换至postgres用户。

      su - postgres

    4. 执行以下命令,进入数据库控制台。

      psql -p 15432

      输入数据库管理员用户postgres的密码:

      Password for user postgres:

      “15432”表示数据库端口号,请根据实际规划修改。

    5. 执行以下命令,可查看设置的最大连接数。

      show max_connections;

      如下为示例:

       max_connections
      -----------------
       1000
      (1 row)
    6. 执行以下命令,退出数据库。

      \q