外观
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 -P28823. 第三方工具
OceanBase 支持与第三方配置管理工具集成,如:
- Ansible:用于自动化配置管理
- Puppet:用于配置管理和自动化部署
- Chef:用于配置管理和自动化部署
这些工具可以帮助实现参数的自动化管理和版本控制,提高运维效率和准确性。
