oceanbase参数设置

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OB
【 使用版本 】V4.2.1.9
【问题描述】oceanbase怎么设置最大连接数,连接池参数参数,超时时间,查询缓存等参数
【复现路径】oceanbase怎么设置最大连接数,连接池参数参数,超时时间,查询缓存等参数
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据文档库中的信息,您可以按照以下步骤和建议设置 OceanBase 的最大连接数、连接池参数、超时时间和查询缓存等参数 [1], [2]

最大连接数

  • 在 OceanBase 中,可以通过配置文件或系统变量来设置最大连接数。通常,最大连接数的设置涉及到数据库服务器端的配置,以及客户端连接池的配置。
  • 服务器端的最大连接数可以通过修改系统变量 max_connections 来设置。例如,您可以通过以下 SQL 语句来设置最大连接数为 1000:
    ALTER SYSTEM SET max_connections = 1000;
    
  • 客户端连接池的最大连接数可以通过配置文件中的 maxTotal 参数来设置。例如,在 application.properties 文件中,可以设置最大连接数为 10:
    db.app.pool.maxTotal=10
    

连接池参数

  • 初始连接数:通过 initialSize 参数设置连接池启动时创建的初始连接数。例如,设置初始连接数为 3:
    db.app.pool.initialSize=3
    
  • 最小空闲连接数:通过 minIdle 参数设置连接池中保持空闲的最小连接数。例如,设置最小空闲连接数为 5:
    db.app.pool.minIdle=5
    
  • 最大空闲连接数:通过 maxIdle 参数设置连接池中保持空闲的最大连接数。例如,设置最大空闲连接数为 20:
    db.app.pool.maxIdle=20
    

超时时间

  • 连接超时时间:通过 maxWaitMillis 参数设置在抛出异常之前,池等待(当没有可用连接时)连接返回的最大毫秒数。例如,设置连接超时时间为 5000 毫秒:
    db.app.pool.maxWaitMillis=5000
    
  • 连接空闲超时时间:通过 minEvictableIdleTimeMillis 参数设置对象在连接池中闲置的最短时间。例如,设置连接空闲超时时间为 30 分钟:
    db.app.pool.minEvictableIdleTimeMillis=1800000
    

查询缓存

  • OceanBase 社区版目前不支持查询缓存功能。如果您需要实现查询缓存,可以考虑在应用层使用缓存技术,如 Redis 或 Memcached,来缓存查询结果。

示例配置

以下是一个完整的 application.properties 文件示例,展示了如何配置连接池参数:

# Apache Commons DBCP2 Connection Pool
# Database Connection Pool Driver Class Name
db.app.pool.driverClassName=com.mysql.jdbc.Driver
# Database URL
db.app.pool.url=jdbc:mysql://host:port/schema_name?characterEncoding=UTF-8
# Database username
db.app.pool.username=user_name
# Database password
db.app.pool.password=******
# Initial size of connection pool
db.app.pool.initialSize=3
# Maximum number of connections in the connection pool
db.app.pool.maxTotal=10
# Maximum number of idle connections in the connection pool
db.app.pool.maxIdle=20
# Minimum number of idle connections in the connection pool
db.app.pool.minIdle=5
# Maximum wait time for obtaining connections (in milliseconds)
db.app.pool.maxWaitMillis=5000
# Verify the connection's query statement
db.app.pool.validationQuery=select 1
# Minimum evictable idle time (in milliseconds)
db.app.pool.minEvictableIdleTimeMillis=1800000

希望以上信息对您有所帮助。如果您有其他问题或需要进一步的帮助,请随时联系 OceanBase 的人工答疑。

更多信息请查看:

  1. 数据库连接规范
  2. Tomcat 连接池连接 OceanBase 数据库示例程序
1 个赞

通过配置文件配置最大连接数,连接池参数参数,超时时间等在哪里配置,比如像mysql可以在my.cnf文件里配置

根据文档库中的信息,OceanBase 的配置文件和 MySQL 的配置文件有所不同。在 OceanBase 中,您可以使用以下方法来配置最大连接数、连接池参数和超时时间等参数:

1. 服务器端配置

最大连接数 (max_connections)

  • 配置文件:OceanBase 的配置文件通常是 config.ini,位于 OceanBase 安装目录下的 conf 文件夹中。
  • 配置项max_connections
  • 示例
    [observer]
    max_connections = 1000
    

2. 客户端连接池配置

连接池参数

  • 配置文件:客户端连接池的配置文件通常取决于您使用的具体框架或应用。常见的配置文件包括 application.properties(Spring Boot)、db.properties(通用 Java 应用)等。
  • 配置项
    • initialSize:初始连接数
    • maxTotal:最大连接数
    • maxIdle:最大空闲连接数
    • minIdle:最小空闲连接数
    • maxWaitMillis:获取连接的最大等待时间
    • minEvictableIdleTimeMillis:连接空闲超时时间
    • validationQuery:验证连接的查询语句
    • removeAbandonedTimeout:连接被遗弃前的超时时间
    • removeAbandonedOnMaintenance:维护时移除被遗弃的连接
    • removeAbandonedOnBorrow:借用时移除被遗弃的连接

示例配置

Spring Boot (application.properties)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://host:port/schema_name?useSSL=false&characterEncoding=UTF-8
spring.datasource.username=user_name
spring.datasource.password=******
spring.datasource.initial-size=3
spring.datasource.max-active=10
spring.datasource.max-idle=20
spring.datasource.min-idle=5
spring.datasource.max-wait=5000
spring.datasource.validation-query=SELECT 1
spring.datasource.time-between-eviction-runs-millis=60000
spring.datasource.min-evictable-idle-time-millis=1800000
spring.datasource.remove-abandoned=true
spring.datasource.remove-abandoned-timeout=300
spring.datasource.log-abandoned=true
通用 Java 应用 (db.properties)
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://host:port/schema_name?useSSL=false&characterEncoding=UTF-8
username=user_name
password=******
initialSize=3
maxTotal=10
maxIdle=20
minIdle=5
maxWaitMillis=5000
validationQuery=SELECT 1
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=1800000
removeAbandonedOnMaintenance=true
removeAbandonedOnBorrow=true
removeAbandonedTimeout=300

3. 超时时间

连接超时时间

  • 配置项maxWaitMillis
  • 示例
    spring.datasource.max-wait=5000
    

连接空闲超时时间

  • 配置项minEvictableIdleTimeMillis
  • 示例
    spring.datasource.min-evictable-idle-time-millis=1800000
    

总结

  • 服务器端配置:在 config.ini 文件中配置 max_connections
  • 客户端连接池配置:在应用的配置文件中(如 application.propertiesdb.properties)配置连接池参数。

希望以上信息对您有所帮助。如果您有其他问题或需要进一步的帮助,请随时联系 OceanBase 的人工答疑。

更多信息请查看:

  1. DBCP 连接池连接 OceanBase 数据库示例程序
  2. 数据库连接池配置

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

2 个赞

小助手的回复是否符合您的需求呢?
还有什么需要咨询的?