外观
OceanBase 配置规范
集群级配置规范
核心配置参数
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
cluster_id | 1 | 根据实际集群规划设置 | 集群唯一标识符 |
zone_list | - | 如 zone1,zone2,zone3 | 集群可用区列表 |
obconfig_url | - | 如 http://10.0.0.1:8080/services?Action=ObCluster&Version=1.0.0 | OCP 配置服务地址 |
rootservice_list | - | 如 10.0.0.1:2882:2881;10.0.0.2:2882:2881;10.0.0.3:2882:2881 | RootService 节点列表 |
enable_syslog_recycle | true | true | 启用系统日志回收 |
syslog_retention_period | 7 | 14 | 系统日志保留天数 |
enable_monitoring_log | true | true | 启用监控日志 |
网络配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
rpc_port | 2881 | 2881 | RPC 服务端口 |
sql_port | 2883 | 2883 | SQL 服务端口 |
mysql_port | 0 | 3306 | MySQL 兼容端口 |
rpc_timeout | 10s | 30s | RPC 超时时间 |
max_connections | 10000 | 50000 | 最大连接数 |
connection_timeout | 10s | 30s | 连接超时时间 |
性能配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
system_memory | 30G | 根据物理内存调整 | 系统预留内存 |
memory_limit_percentage | 80 | 80 | 内存使用上限百分比 |
cpu_count | 实际 CPU 核数 | 实际 CPU 核数 | CPU 核心数 |
enable_async_syslog | true | true | 启用异步系统日志 |
enable_sql_audit | false | true | 启用 SQL 审计 |
sql_audit_samplerate | 1 | 10 | SQL 审计采样率 |
租户级配置规范
资源配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
max_cpu | 1 | 根据租户需求调整 | 最大 CPU 核数 |
min_cpu | 1 | 根据租户需求调整 | 最小 CPU 核数 |
max_memory | 1G | 根据租户需求调整 | 最大内存 |
min_memory | 1G | 根据租户需求调整 | 最小内存 |
max_iops | 1000 | 根据租户需求调整 | 最大 IOPS |
min_iops | 1000 | 根据租户需求调整 | 最小 IOPS |
max_disk_size | 10G | 根据租户需求调整 | 最大磁盘空间 |
事务配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
txn_timeout | 10s | 30s | 事务超时时间 |
txn_start_timeout | 2s | 5s | 事务启动超时时间 |
txn_wait_timeout | 2s | 5s | 事务等待超时时间 |
enable_early_lock_release | false | true | 启用早释锁 |
enable_large_txns | true | true | 启用大事务支持 |
large_transaction_threshold | 100000 | 500000 | 大事务阈值 |
SQL 配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
sql_mode | STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | 保持默认值或根据业务需求调整 | SQL 模式 |
max_execution_time | 0 | 30000 | 最大 SQL 执行时间(毫秒) |
long_query_time | 1 | 0.5 | 慢查询阈值(秒) |
log_slow_query | true | true | 记录慢查询 |
enable_plan_cache | true | true | 启用执行计划缓存 |
plan_cache_size | 1000 | 5000 | 执行计划缓存大小 |
节点级配置规范
硬件相关配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
datafile_size | 10G | 根据物理磁盘大小调整 | 数据文件大小 |
redo_dir_size | 10G | 根据物理磁盘大小调整 | REDO 日志目录大小 |
log_disk_size | 10G | 根据物理磁盘大小调整 | 日志磁盘大小 |
block_cache_size | 1G | 根据内存大小调整 | 块缓存大小 |
meta_block_cache_size | 128M | 根据内存大小调整 | 元数据块缓存大小 |
memstore_limit_percentage | 50 | 40 | MemStore 内存占比 |
日志相关配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
enable_syslog_wf | true | true | 启用警告级系统日志 |
enable_syslog_recycle | true | true | 启用系统日志回收 |
syslog_level | INFO | INFO | 系统日志级别 |
log_disk_utilization_threshold | 90 | 85 | 日志磁盘使用率阈值 |
log_disk_utilization_limit | 95 | 90 | 日志磁盘使用率上限 |
enable_async_syslog | true | true | 启用异步系统日志 |
网络相关配置
| 参数名称 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
rpc_port | 2881 | 2881 | RPC 服务端口 |
sql_port | 2883 | 2883 | SQL 服务端口 |
mysql_port | 0 | 3306 | MySQL 兼容端口 |
rpc_timeout | 10s | 30s | RPC 超时时间 |
rpc_executor_queue_size | 100000 | 200000 | RPC 执行队列大小 |
rpc_thread_count | 4 | CPU 核数的 2 倍 | RPC 线程数 |
配置变更规范
变更流程
- 变更申请:提交配置变更申请,包括变更内容、影响范围、风险评估和回滚方案
- 变更审核:由 DBA 团队审核变更申请,确认变更的必要性和安全性
- 变更执行:在非业务高峰时段执行变更,遵循最小影响原则
- 变更验证:执行变更后,验证系统状态和业务功能是否正常
- 变更记录:记录变更详情,包括变更时间、变更内容、执行人员和验证结果
变更注意事项
- 集群级配置变更需谨慎,可能影响整个集群的稳定性
- 租户级配置变更应在租户维护窗口内执行
- 节点级配置变更需逐个节点执行,避免同时变更多个节点
- 对于关键参数变更,建议先在测试环境验证
- 变更前需备份当前配置,以便回滚
配置监控与审计
配置监控
- 监控配置参数的变化,及时发现异常变更
- 监控配置参数对系统性能的影响
- 建立配置基线,定期检查配置偏差
配置审计
- 记录所有配置变更操作,包括变更人员、变更时间和变更内容
- 定期审计配置变更记录,确保变更符合规范
- 对违规变更进行追溯和处理
配置最佳实践
- 分层配置管理:区分集群级、租户级和节点级配置,采用不同的管理策略
- 标准化配置模板:针对不同类型的租户和场景,制定标准化的配置模板
- 动态调整配置:根据业务负载变化,动态调整配置参数
- 定期备份配置:定期备份配置文件和配置参数,确保可恢复性
- 配置版本管理:对配置进行版本管理,支持配置回滚
- 配置文档化:详细记录配置参数的含义、用途和调整建议
常见问题(FAQ)
Q1: 如何查看当前集群的配置参数?
A1: 可以使用 SHOW PARAMETERS 命令查看当前集群的配置参数。例如:
sql
SHOW PARAMETERS LIKE '%cluster_id%';Q2: 配置参数变更后需要重启吗?
A2: 大部分配置参数支持动态生效,不需要重启集群或节点。但部分关键参数可能需要重启才能生效,具体请参考 OceanBase 官方文档。
Q3: 如何备份当前配置?
A3: 可以使用 ALTER SYSTEM BACKUP PARAMETERS 命令备份当前配置,或者直接备份配置文件。
Q4: 配置参数调整后如何验证效果?
A4: 可以通过监控系统性能指标(如 CPU 使用率、内存使用率、IOPS 等)来验证配置参数调整的效果,也可以通过执行基准测试来评估性能变化。
Q5: 如何批量调整多个租户的配置?
A5: 可以使用 OCP 管理平台进行批量租户配置调整,或者编写脚本通过 SQL 命令批量调整。
