数据库连接数配置

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 数据库连接数配置

问题出现场景

线上服务多开,数据库用 docker 部署的,然后发现系统日志中报有 sorry, too many clients already 的错误,看提示是 PG 库的连接数被占满了。


经过思考, PostgreSQL 数据库的默认最大连接数是 100 ,我们是 node 服务,使用 nestjs 框架, typeorm 来连接数据库,如果没记错的话,这种方式默认下一个服务会建立 10 个数据库连接。服务器是 16 核心的,起了 12node 服务,因此最大会有 120 个数据库连接,出现此问题合情合理。


那么解决方法也就是将数据库的最大连接数配置的高一点就可以了。


方式一

修改配置文件,首先进入到容器,进入 psql 环境,如下所示:

$ docker exec -it postgresql /bin/bash
$ su postgres
$ psql
postgres=#点击复制复制失败已复制


首先查看一下数据库最大连接数,如下所示:

postgres=# show max_connections;
 max_connections 
-----------------
 100
(1 row)点击复制复制失败已复制


可以看到目前的数据库最大连接数是 100 ,接下来查看 pg 库设置 max_connections 的配置文件的路径:

postgres=# select name, setting, boot_val, reset_val, sourcefile from pg_settings where name = 'max_connections';
      name       | setting | boot_val | reset_val |                sourcefile                
-----------------+---------+----------+-----------+------------------------------------------
 max_connections | 100     | 100      | 100       | /var/lib/postgresql/data/postgresql.conf
(1 row)点击复制复制失败已复制


命令解释:

  • name = 配置项名字
  • setting = 配置项的value
  • boot_val = 配置项的初始化value
  • sourcefile = 配置项所在的配置文件的路径


接下来在容器中使用 vi 来修改 /var/lib/postgresql/data/postgresql.conf 文件就好了。(我试过,没有vim,只有vi)


修改完成后重启容器即可。


提示

容器可能没有安装vi/vim这类编辑器,遇到此情况,可以在宿主机中找到挂载卷的地址,直接修改。


方式二

依据 postgresdocker hub 中的镜像描述有提到过这部分,文档地址:https://hub.docker.com/_/postgres

postgres配置.png


我们是用 docker compose 来部署的,文档中是用 docker run 来运行的, docker run 中的 -c 命令接触的少,目前还不知道在 docker-compose.yaml 配置文件中如何写,这个后续过来补。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
存储 监控 安全
数据库多实例的部署与配置方法
【10月更文挑战第23天】数据库多实例的部署和配置需要综合考虑多个因素,包括硬件资源、软件设置、性能优化、安全保障等。通过合理的部署和配置,可以充分发挥多实例的优势,提高数据库系统的运行效率和可靠性。在实际操作中,要不断总结经验,根据实际情况进行调整和优化,以适应不断变化的业务需求。
|
28天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
91 9
|
1月前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
49 3
|
1月前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
1月前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
56 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
166 2
|
2月前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
42 1
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
95 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
2月前
|
应用服务中间件 数据库连接 网络安全
网站连接数据库配置错误
网站连接数据库配置错误