首页 > 其他分享 >openGauss 检查应用连接数

openGauss 检查应用连接数

时间:2024-05-13 14:30:14浏览次数:22  
标签:10 20 检查 08 连接数 2022 openGauss

检查应用连接数

如果应用程序与数据库的连接数超过最大值,则新的连接无法建立。建议每天检查连接数,及时释放空闲的连接或者增加最大连接数。

操作步骤

  1. 以操作系统用户omm登录数据库主节点。

  2. 使用如下命令连接数据库。

    gsql -d postgres -p 8000
    

    postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

    连接成功后,系统显示类似如下信息:

    gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.
    
    openGauss=# 
    
  3. 执行如下SQL语句查看连接数。

    openGauss=# SELECT count(*) FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;
    

    显示类似如下的信息,其中2表示当前有两个应用连接到数据库。

    count
    -------
         2
    (1 row)
    
  4. 查看现有最大连接数。

    openGauss=# SHOW max_connections;
    

    显示信息如下,其中200为现在的最大连接数。

     max_connections 
    -----------------
     200
    (1 row)
    

异常处理

如果显示的连接数接近数据库的最大连接数max_connections,则需要考虑清理现有连接数或者增加新的连接数。

  1. 执行如下SQL语句,查看state字段等于idle,且state_change字段长时间没有更新过的连接信息。

    openGauss=# SELECT * FROM pg_stat_activity where state='idle' order by state_change;
    

    显示类似如下的信息:

    datid | datname  |       pid       |    sessionid    | usesysid | usename |    application_name    | client_addr | client_hostname | client_port |         backend_start         | xact_start |          query
    _start          |         state_change          | waiting | enqueue | state | resource_pool | query_id |                          query                           | connection_info | unique_sql_id
    -------+----------+-----------------+-----------------+----------+---------+------------------------+-------------+-----------------+-------------+-------------------------------+------------+---------------
    ----------------+-------------------------------+---------+---------+-------+---------------+----------+----------------------------------------------------------+-----------------+---------------
     16200 | postgres | 140556276659968 | 140556276659968 |       10 | omm     | statement flush thread |             |                 |             | 2022-01-10 20:31:19.679721+08 |            |
                    | 2022-01-10 20:31:19.679741+08 | f       |         | idle  | default_pool  |        0 |                                                          |                 |             0
     16200 | postgres | 140556569540352 | 140556569540352 |       10 | omm     | cm_agent               | 10.244.2.24 |                 |       50522 | 2022-01-10 20:31:15.582877+08 |            | 2022-01-10 20:
    31:20.612987+08 | 2022-01-10 20:31:20.616886+08 | f       |         | idle  | default_pool  |        0 | select * from disable_conn('polling_connection', '', 0); |                 |             0
     16200 | postgres | 140556602111744 | 140556602111744 |       10 | omm     | cm_agent               | 10.244.2.24 |                 |       50476 | 2022-01-10 20:31:09.92659+08  |            | 2022-03-09 10:
    47:40.948749+08 | 2022-03-09 10:47:40.948891+08 | f       |         | idle  | default_pool  |        0 | show synchronous_standby_names;                          |                 |             0
     16200 | postgres | 140556637828864 | 140556637828864 |       10 | omm     | cm_agent               | 10.244.2.24 |                 |       50472 | 2022-01-10 20:31:08.921173+08 |            | 2022-03-09 10:
    47:41.131224+08 | 2022-03-09 10:47:41.13128+08  | f       |         | idle  | default_pool  |        0 | show most_available_sync;                                |                 |             0
    (4 rows)
    
  2. 释放空闲的连接数。

    查看每个连接,并与此连接的使用者确认是否可以断开连接,或执行如下SQL语句释放连接。其中,pid为上一步查询中空闲连接所对应的pid字段值。

    openGauss=# SELECT pg_terminate_backend(140390132872976);
    

    显示类似如下的信息:

    openGauss=# SELECT pg_terminate_backend(140390132872976);
     pg_terminate_backend 
    ----------------------
     t
    (1 row)
    

    如果没有可释放的连接,请执行下一步。

  3. 增加最大连接数。

    gs_guc set -D /gaussdb/data/dbnode -c "max_connections= 800"
    

    其中800为新修改的连接数。

  4. 重启数据库服务使新的设置生效。

    说明:
    重启openGauss操作会导致用户执行操作中断,请在操作之前规划好合适的执行窗口。

    gs_ctl restart -D /gaussdb/data/dbnode
    

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:10,20,检查,08,连接数,2022,openGauss
From: https://www.cnblogs.com/renxyz/p/18189141

相关文章

  • openGauss 分析查询效率异常降低的问题
    分析查询效率异常降低的问题问题现象通常在几十毫秒内完成的查询,有时会突然需要几秒的时间完成;而通常需要几秒完成的查询,有时需要半小时才能完成。处理办法通过下列的操作步骤,分析查询效率异常降低的原因。使用analyze命令分析数据库。analyze命令更新所有表中数据大小以......
  • openGauss 分析查询语句运行状态
    分析查询语句运行状态问题现象系统中部分查询语句运行时间过长,需要分析查询语句的运行状态。处理办法以操作系统用户omm登录主机。使用如下命令连接数据库。gsql-dpostgres-p8000postgres为需要连接的数据库名称,8000为端口号。设置参数track_activities为on。......
  • openGauss 分析查询语句是否被阻塞
    分析查询语句是否被阻塞问题现象数据库系统运行时,在某些业务场景下,查询语句会被阻塞,导致语句运行时间过长。原因分析查询语句需要通过加锁来保护其要访问的数据对象。当要进行加锁时发现要访问的数据对象已经被其他会话加锁,则查询语句会被阻塞,等待其他会话完成操作并释放锁资......
  • openGauss 概述
    概述数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全,openGauss数据库支持三种备份恢复类型、多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。备份与恢复类型可分为逻辑备份与恢复、闪回恢复。逻辑备份与恢复:通过逻辑导出对数据进行备份,逻辑备份只......
  • openGauss 服务启动失败
    服务启动失败问题现象服务启动失败。原因分析配置参数不合理,数据库因系统资源不足,或者配置参数不满足内部约束,启动失败。由于部分数据节点状态不正常,导致数据库启动失败。目录权限不够。例如对/tmp目录、数据库数据目录的权限不足。配置的端口已经被占用。开启了系统防火......
  • openGauss 分析查询语句长时间运行的问题
    分析查询语句长时间运行的问题问题现象系统中部分查询语句运行时间过长。原因分析查询语句较为复杂,需要长时间运行。查询语句阻塞。处理办法以操作系统用户omm登录主机。使用如下命令连接数据库。gsql-dpostgres-p8000postgres为需要连接的数据库名称,800......
  • [转帖]openGauss数据库性能调优
    https://www.modb.pro/db/29135 概述本文描述了openGauss数据库基于Taishan服务器,在openEuler操作系统上,为了达到数据库的极致性能,所依赖的关键系统级调优配置。硬件规格:CPU:鲲鹏-920(1620)ARMaarch6464核*2内存:>=512G磁盘:NvmeSSD*4(每块大于1TB)网卡:......
  • 3-3nginx自身健康检查
    3.3nginx自身健康检查查看服务器状态信息编译安装时使用--with-http_stub_status_module,开启状态页面模块修改Nginx配置文件,定义状态页面vim/usr/local/nginx/conf/nginx.conf……location/status{    #表示http://IP/status  stub_status;}……启......
  • java代码评审检查表
    Java代码评审检查表编号检查项是否不适用BUG数代码行备注源文件1是否以UFT-8编码      2是否使用通配符导入      3import语句是否换行      ......
  • 选择排序桌面检查
    码云代码:https://gitee.com/yibo886/codes/0ihau3t9pj6bkfqzxcmnl93博客园:一、实验题目:代码审查二、实验目的1、熟悉编码风格,利用开发环境所提供的平台工具对代码进行自动格式审查;2、根据代码规范制定代码走查表,并按所制定的审查规范互审代码。三、实验内容1、IDEA环境和P......