Skip to content

OceanBase 配置参数速查表

配置参数核心概念

OceanBase 配置参数用于控制数据库的各项功能和性能。了解和掌握常用配置参数对于优化 OceanBase 集群性能、确保稳定性和可靠性至关重要。本速查表涵盖了 OceanBase 中最常用的配置参数,按功能分类,并提供了参数说明、默认值、调整建议和使用示例。

参数分类

  • 性能参数:影响数据库性能的参数
  • 资源管理参数:控制资源分配和隔离的参数
  • 可靠性参数:影响数据一致性和可靠性的参数
  • 安全参数:控制数据库安全性的参数
  • 日志参数:控制日志生成和存储的参数
  • 网络参数:控制网络通信的参数

常用配置参数分类

1. 核心性能参数

max_connections

  • 描述:允许的最大连接数
  • 默认值:65535
  • 调整建议:根据业务需求和系统资源调整,建议设置为1000-10000
  • 示例
    sql
    ALTER SYSTEM SET max_connections = 5000;

memory_limit_percentage

  • 描述:OBServer 进程可用内存占系统总内存的百分比
  • 默认值:80
  • 调整建议:根据系统内存大小调整,建议预留20%内存给操作系统
  • 示例
    sql
    ALTER SYSTEM SET memory_limit_percentage = 85;

cpu_count

  • 描述:OBServer 进程使用的 CPU 核心数
  • 默认值:自动检测
  • 调整建议:根据系统 CPU 核心数调整,建议预留2-4个核心给操作系统
  • 示例
    sql
    ALTER SYSTEM SET cpu_count = 16;

workers_per_cpu_quota

  • 描述:每个 CPU 核心的工作线程数
  • 默认值:10
  • 调整建议:根据业务类型调整,CPU 密集型业务建议设置为8-12,IO 密集型业务建议设置为16-32
  • 示例
    sql
    ALTER SYSTEM SET workers_per_cpu_quota = 16;

2. 资源管理参数

resource_hard_limit

  • 描述:租户资源硬限制,超过该限制会触发资源限制
  • 默认值:100
  • 调整建议:根据租户重要性和资源需求调整,建议设置为80-90
  • 示例
    sql
    ALTER TENANT tenant1 SET resource_hard_limit = 90;

resource_soft_limit

  • 描述:租户资源软限制,超过该限制会触发告警,但不会限制资源
  • 默认值:0(不限制)
  • 调整建议:根据租户重要性和资源需求调整,建议设置为70-80
  • 示例
    sql
    ALTER TENANT tenant1 SET resource_soft_limit = 75;

max_ioPS

  • 描述:租户的最大 IOPS
  • 默认值:100000
  • 调整建议:根据存储设备性能和租户需求调整
  • 示例
    sql
    CREATE RESOURCE UNIT unit1 MAX_IOPS 50000;

min_ioPS

  • 描述:租户的最小 IOPS
  • 默认值:0
  • 调整建议:根据租户重要性和资源需求调整
  • 示例
    sql
    CREATE RESOURCE UNIT unit1 MIN_IOPS 10000;

3. 可靠性参数

replica_num

  • 描述:表的默认副本数
  • 默认值:3
  • 调整建议:根据业务可靠性要求调整,通常设置为3-5
  • 示例
    sql
    ALTER SYSTEM SET replica_num = 3;

log_sync_timeout

  • 描述:日志同步超时时间
  • 默认值:10000000(10秒)
  • 调整建议:根据网络延迟调整,建议设置为5-15秒
  • 示例
    sql
    ALTER SYSTEM SET log_sync_timeout = 15000000;

heartbeat_timeout

  • 描述:节点心跳超时时间
  • 默认值:10000000(10秒)
  • 调整建议:根据网络延迟调整,建议设置为5-15秒
  • 示例
    sql
    ALTER SYSTEM SET heartbeat_timeout = 15000000;

datafile_disk_percentage

  • 描述:数据文件占用磁盘空间的百分比
  • 默认值:95
  • 调整建议:根据磁盘容量调整,建议设置为85-90
  • 示例
    sql
    ALTER SYSTEM SET datafile_disk_percentage = 90;

4. 安全参数

password_policy

  • 描述:密码策略
  • 默认值:MEDIUM
  • 调整建议:生产环境建议设置为STRONG
  • 示例
    sql
    ALTER SYSTEM SET password_policy = 'STRONG';

password_expire_time

  • 描述:密码过期时间(天)
  • 默认值:0(永不过期)
  • 调整建议:生产环境建议设置为90-180天
  • 示例
    sql
    ALTER SYSTEM SET password_expire_time = 90;

enable_audit_log

  • 描述:是否启用审计日志
  • 默认值:False
  • 调整建议:生产环境建议启用
  • 示例
    sql
    ALTER SYSTEM SET enable_audit_log = True;

audit_log_level

  • 描述:审计日志级别
  • 默认值:1
  • 调整建议:根据审计需求调整,0表示只记录成功操作,1表示记录成功和失败操作
  • 示例
    sql
    ALTER SYSTEM SET audit_log_level = 1;

5. 日志参数

syslog_level

  • 描述:系统日志级别
  • 默认值:INFO
  • 调整建议:生产环境建议设置为WARN或ERROR
  • 示例
    sql
    ALTER SYSTEM SET syslog_level = 'WARN';

max_syslog_file_size

  • 描述:单个日志文件的最大大小
  • 默认值:0(不限制)
  • 调整建议:建议设置为100-500MB
  • 示例
    sql
    ALTER SYSTEM SET max_syslog_file_size = 200;

max_syslog_files

  • 描述:保留的最大日志文件数
  • 默认值:0(不限制)
  • 调整建议:建议设置为10-50个
  • 示例
    sql
    ALTER SYSTEM SET max_syslog_files = 30;

6. 网络参数

rpc_timeout

  • 描述:RPC 超时时间
  • 默认值:10000000(10秒)
  • 调整建议:根据网络延迟调整,建议设置为5-15秒
  • 示例
    sql
    ALTER SYSTEM SET rpc_timeout = 15000000;

net_send_buffer_size

  • 描述:网络发送缓冲区大小
  • 默认值:65536
  • 调整建议:根据网络带宽调整,建议设置为65536-262144
  • 示例
    sql
    ALTER SYSTEM SET net_send_buffer_size = 131072;

net_receive_buffer_size

  • 描述:网络接收缓冲区大小
  • 默认值:65536
  • 调整建议:根据网络带宽调整,建议设置为65536-262144
  • 示例
    sql
    ALTER SYSTEM SET net_receive_buffer_size = 131072;

配置参数查询与修改

1. 查询配置参数

查询所有参数

sql
SHOW PARAMETERS;

查询特定参数

sql
SHOW PARAMETERS LIKE 'max_connections';

查询参数详细信息

sql
SELECT * FROM oceanbase.gv$ob_para_info WHERE name LIKE 'max_connections';

查询租户级参数

sql
SHOW TENANT PARAMETERS LIKE 'resource_hard_limit';

查询节点级参数

sql
SHOW SERVER PARAMETERS LIKE 'memory_limit_percentage';

2. 修改配置参数

全局修改(影响所有节点)

sql
ALTER SYSTEM SET parameter_name = value;

租户级修改

sql
ALTER TENANT tenant_name SET parameter_name = value;

节点级修改

sql
ALTER SYSTEM SET parameter_name = value SCOPE = SERVER;

会话级修改

sql
ALTER SESSION SET parameter_name = value;

参数修改生效范围

参数类型修改方式生效范围生效时间
全局参数ALTER SYSTEM所有节点立即生效
租户参数ALTER TENANT特定租户立即生效
节点参数ALTER SYSTEM SCOPE=SERVER特定节点立即生效
会话参数ALTER SESSION当前会话立即生效

配置参数最佳实践

1. 参数调整原则

渐进式调整

  • 每次只调整一个或少数几个参数
  • 调整幅度不宜过大,建议每次调整10%-20%
  • 观察调整后的效果,再决定是否继续调整

基于数据调整

  • 根据监控数据和性能指标进行调整
  • 避免凭经验或猜测进行调整
  • 建立参数调整的基线和效果评估机制

考虑系统资源

  • 参数调整应考虑系统硬件资源限制
  • 避免过度分配资源导致系统不稳定
  • 根据系统负载和资源使用率进行调整

2. 不同场景的参数调整

高并发场景

  • 增加 max_connections 参数值
  • 调整 workers_per_cpu_quota 参数
  • 优化网络参数,增加缓冲区大小
  • 调整锁相关参数,减少锁竞争

大数据场景

  • 增加 memory_limit_percentage 参数值
  • 调整存储相关参数,优化 IO 性能
  • 优化日志参数,减少 IO 开销
  • 调整查询缓存参数,提高缓存命中率

高可用场景

  • 调整 replica_num 参数,增加副本数量
  • 优化心跳和超时参数,提高故障检测速度
  • 调整日志同步参数,确保数据一致性
  • 配置合理的资源隔离参数,避免资源竞争

常见问题(FAQ)

Q1: 如何快速查找特定功能的参数?

A1: 快速查找参数的方法:

  • 使用 SHOW PARAMETERS LIKE '%keyword%' 命令,其中 keyword 是与功能相关的关键词
  • 参考 OceanBase 官方文档的参数分类
  • 使用 OCP 等管理工具的参数查询功能

Q2: 参数修改后是否需要重启?

A2: 大部分 OceanBase 参数修改后立即生效,不需要重启。但有少数核心参数需要重启节点才能生效,具体可以查看参数的 need_restart 属性:

sql
SELECT name, need_restart FROM oceanbase.gv$ob_para_info WHERE name LIKE 'parameter_name';

Q3: 如何备份和恢复配置参数?

A3: 备份和恢复配置参数的方法:

  • 备份:使用 SHOW PARAMETERS INTO OUTFILE '/path/to/parameters.sql' 命令导出参数配置
  • 恢复:使用 source /path/to/parameters.sql 命令导入参数配置
  • 使用 OCP:通过 OCP 管理工具备份和恢复参数配置

Q4: 如何确定参数的合理值?

A4: 确定参数合理值的方法:

  • 参考 OceanBase 官方文档的建议值
  • 基于基准测试结果调整
  • 根据历史监控数据和业务需求调整
  • 参考同行业或类似场景的经验值

Q5: 如何监控参数修改的效果?

A5: 监控参数修改效果的方法:

  • 监控相关的性能指标,如 TPS、QPS、响应时间等
  • 监控资源使用率,如 CPU、内存、IO 等
  • 监控业务指标,如业务响应时间、成功率等
  • 对比参数修改前后的性能差异

配置参数管理工具

1. OCP 参数管理

OceanBase Cloud Platform (OCP) 提供了直观的参数管理界面:

  • 参数查询:支持按功能分类查询参数
  • 参数修改:支持在线修改参数,实时生效
  • 参数对比:支持不同集群或不同时间点的参数对比
  • 参数备份与恢复:支持参数配置的备份和恢复
  • 参数模板:支持创建和应用参数模板

2. 命令行工具

obclient

使用 obclient 命令行工具管理参数:

sql
-- 查询参数
SHOW PARAMETERS LIKE 'max_connections';

-- 修改参数
ALTER SYSTEM SET max_connections = 5000;

ob_admin

使用 ob_admin 工具管理参数:

bash
# 查看参数信息
ob_admin show_parameters -h192.168.1.100 -P2882

3. 第三方工具

OceanBase 支持与第三方配置管理工具集成,如:

  • Ansible:用于自动化配置管理
  • Puppet:用于配置管理和自动化部署
  • Chef:用于配置管理和自动化部署

这些工具可以帮助实现参数的自动化管理和版本控制,提高运维效率和准确性。