---
title: 连接数据库或Master主备倒换异常
description: "连接数据库或Master主备倒换异常，出现如下报错信息："
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/trouble/bootkit_hpc_troublecase_0125.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/trouble/bootkit_hpc_troublecase_0125.html
indexId: 2fb02a40eaffb5a81a4613336fdd93b84e2f39aa087b58d4177295a7312ef05874
---
# 连接数据库或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场景，修改任意数据库节点配置文件即可。

  a. 执行以下命令，修改“postgresql.conf”配置文件。
    vi /usr/local/postgresql/data/postgresql.conf

    其中： “/usr/local/postgresql/data”是数据库PGDATA路径，麒麟环境为“/var/lib/pgsql/data”。 HA场景为共享目录，请用户根据配置文件实际所在目录输入命令。

  b. 按“i”进入编辑模式，修改“max_connections”文件配置项。
    根据实际情况修改数据库最大连接数，确保最大连接数大于Donau Scheduler
    配置连接数，如下为示例：

```
max_connections =
1000
# (change requires restart)
```

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


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
4. 配置文件修改完成后，重新加载配置文件。

  - 非DB HA场景
    systemctl reload postgresql.service

  - DB HA场景

    a. 执行以下命令，查询数据库主节点。
      pcs status

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

```
pgsql      (ocf::heartbeat:pgsql): Started
ccsdb01
```


    b. 使用PuTTY工具，以DonauKit运维登录用户（如donau_guest）登录数据库主节点。
    c. 执行以下命令，切换至root帐户，并按提示输入用户密码。
      su - root

    d. 执行以下命令，切换至postgres用户。
      su - postgres

    e. 执行以下命令，重新加载配置文件。
      pg_ctl reload

5. 重启数据库服务后，可查看配置是否生效。

  a. 使用PuTTY工具，以DonauKit运维登录用户（如donau_guest）登录数据库节点。
  b. 执行以下命令，切换至root帐户，并按提示输入用户密码。
    su - root

  c. 执行以下命令，切换至postgres用户。
    su - postgres

  d. 执行以下命令，进入数据库控制台。
    psql -p 15432

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

```
Password for user postgres:
```


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

  e. 执行以下命令，可查看设置的最大连接数。
    show max_connections;

    如下为示例：

```
max_connections
-----------------
1000
(1 row)
```


  f. 执行以下命令，退出数据库。
    \q
