OceanBase教程FG101-OceanBase DBA日常工作流程
本文档风哥主要介绍OceanBase DBA的日常工作流程,包括OceanBase DBA的角色与职责、日常工作任务分类、工作流程原则、日常工作时间规划、工具与准备工作、检查清单设计、早间例行检查、日常维护操作、事件响应与处理等内容,风哥教程参考OceanBase官方文档系统管理员手册、监控与运维等内容编写,适合DBA人员在学习和工作中使用。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 OceanBase DBA的角色与职责
OceanBase DBA(数据库管理员)是负责OceanBase数据库系统的安装、配置、监控、维护、优化和故障处理的专业人员。OceanBase DBA的主要职责包括:
- 数据库安装与配置:负责OceanBase数据库的安装、初始化和配置
- 监控与告警:监控数据库的运行状态,及时处理告警
- 性能优化:优化数据库性能,包括SQL优化、参数调优等
- 备份与恢复:制定并执行备份策略,确保数据安全
- 故障处理:及时处理数据库故障,确保系统稳定运行
- 用户与权限管理:管理数据库用户和权限
- 容量规划:根据业务需求进行容量规划
- 文档与培训:编写运维文档,培训其他团队成员
1.2 OceanBase DBA日常工作任务分类
OceanBase DBA的日常工作任务可以分为以下几类:
- 例行检查:每日、每周、每月的例行检查
- 日常维护:数据库的日常维护操作
- 性能优化:数据库性能的监控和优化
- 故障处理:数据库故障的处理和恢复
- 变更管理:数据库结构和参数的变更
- 备份恢复:数据库备份和恢复操作
- 容量管理:数据库容量的监控和规划
- 安全管理:数据库安全的维护和加固
1.3 OceanBase DBA工作流程原则
OceanBase DBA的工作流程应遵循以下原则:
- 预防性维护:定期进行预防性维护,减少故障发生
- 标准化操作:制定标准化的操作流程,确保操作的一致性和安全性
- 文档化:详细记录所有操作和变更,便于问题追溯和知识传承
- 自动化:尽可能实现自动化操作,提高工作效率
- 持续优化:不断优化数据库性能和运维流程
- 安全第一:确保数据库的安全性和数据的完整性
Part02-生产环境规划与建议
2.1 OceanBase DBA日常工作时间规划
OceanBase DBA的日常工作时间规划建议如下:
## 早间(9:00-10:30)
– 9:00-9:30:查看监控告警,处理紧急问题
– 9:30-10:30:执行早间例行检查
## 上午(10:30-12:00)
– 10:30-11:30:处理日常维护任务
– 11:30-12:00:性能监控和分析
## 下午(14:00-17:30)
– 14:00-15:00:处理变更请求和故障
– 15:00-16:00:优化工作和容量规划,风哥提示:。
– 16:00-17:00:文档更新和知识整理
– 17:00-17:30:晚间例行检查
## 晚间/夜间
– 20:00:检查自动备份状态
– 22:00:检查系统状态(如有必要)
– 24:00:监控夜间批处理任务
2.2 OceanBase DBA工具与准备工作
OceanBase DBA需要准备的工具和环境如下:
## 监控工具
– Grafana + Prometheus:监控数据库性能指标
– OCP(OceanBase云平台):集群管理和监控
– Zabbix:系统级监控
## 管理工具
– ODC(OceanBase开发者中心):SQL开发和管理
– OBD(OceanBase Deployer):部署和管理
– obclient:命令行客户端
## 备份工具
– OBS(对象存储服务):备份存储
– 本地备份脚本:自动化备份
## 诊断工具,学习交流加群风哥微信: itpux-com。
– AWR报告:性能分析
– ASH报告:会话历史分析
– 日志分析工具:故障诊断
## 其他工具
– 自动化脚本:日常检查和维护
– 文档工具:记录和分享
– 沟通工具:团队协作
2.3 OceanBase DBA检查清单设计
OceanBase DBA应设计以下检查清单:
## 每日检查清单
– [ ] 监控告警检查
– [ ] 集群状态检查
– [ ] 存储使用情况检查
– [ ] 备份状态检查
– [ ] 性能指标检查
– [ ] 慢SQL检查
– [ ] 会话状态检查
– [ ] 日志文件检查
## 每周检查清单
– [ ] 完整备份验证
– [ ] 性能报告分析
– [ ] 容量规划评估
– [ ] 安全补丁检查
– [ ] 系统参数调优
– [ ] 索引使用情况检查
– [ ] 表空间使用情况检查
## 每月检查清单
– [ ] 数据库版本检查
– [ ] 全库备份恢复演练
– [ ] 安全审计
– [ ] 灾备切换演练,学习交流加群风哥QQ113257174。
– [ ] 性能基准测试
– [ ] 文档更新
Part03-生产环境项目实施方案
3.1 OceanBase DBA早间例行检查
3.1.1 OceanBase集群状态检查
$ obclient -h192.168.1.10 -P2881 -uroot@sys -p -e “SELECT * FROM oceanbase.__all_server;”
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
| svr_ip | svr_port | zone | start_service_time | stop_service_time | status | block_migrate | build_version | last_offline_time | last_heartbeat | with_rootserver | version | data_version | svr_type | observer_version |
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
| 192.168.1.10 | 2882 | zone1 | 2026-04-01 00:00:00 | NULL | ACTIVE | false | 4.3.0.0 | NULL | 2026-04-09 09:00 | true | 4.3.0.0 | 4.3.0.0-20260301120000 | observer | 4.3.0.0 |
| 192.168.1.11 | 2882 | zone2 | 2026-04-01 00:00:00 | NULL | ACTIVE | false | 4.3.0.0 | NULL | 2026-04-09 09:00 | false | 4.3.0.0 | 4.3.0.0-20260301120000 | observer | 4.3.0.0 |
| 192.168.1.12 | 2882 | zone3 | 2026-04-01 00:00:00 | NULL | ACTIVE | false | 4.3.0.0 | NULL | 2026-04-09 09:00 | false | 4.3.0.0 | 4.3.0.0-20260301120000 | observer | 4.3.0.0 |
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
# 检查租户状态
$ obclient -h192.168.1.10 -P2881 -uroot@sys -p -e “SELECT * FROM oceanbase.__all_tenant;”
+—————————-+————-+————-+————-+————+———————+———————+——————+————+——————+—————+—————+
| tenant_id | tenant_name | tenant_type | primary_zone | locality | create_time | modify_time | status | lock_status | compatibility_mode | replica_num | log_mode |
+—————————-+————-+————-+————-+————+———————+———————+——————+————+——————+—————+—————+
| 1 | sys | SYS | zone1;zone2;zone3 | FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3 | 2026-04-01 00:00:00 | 2026-04-01 00:00:00 | NORMAL | NONE | MYSQL | 3 | ARCHIVELOG |
| 1001 | fgedudb | USER | zone1;zone2;zone3 | FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3 | 2026-04-01 00:00:00 | 2026-04-01 00:00:00 | NORMAL | NONE | MYSQL | 3 | ARCHIVELOG |
+—————————-+————-+————-+————-+————+———————+———————+——————+————+——————+—————+—————+
3.1.2 OceanBase存储使用情况检查
$ obclient -h192.168.1.10 -P2881 -uroot@sys -p -e “SELECT * FROM oceanbase.__all_virtual_disk_stat;”
+———-+———-+——————+——————+——————+——————+——————+——————+——————+——————+
| svr_ip | svr_port | device_name | total_size | used_size | avail_size | usage_percent | read_count | write_count | io_error_count |
+———-+———-+——————+——————+——————+——————+——————+——————+——————+——————+,更多视频教程www.fgedu.net.cn。
| 192.168.1.10 | 2882 | /ob/fgdata | 107374182400 | 21474836480 | 85899345920 | 20.00 | 1000 | 500 | 0 |
| 192.168.1.11 | 2882 | /ob/fgdata | 107374182400 | 16106127360 | 91268055040 | 15.00 | 900 | 450 | 0 |
| 192.168.1.12 | 2882 | /ob/fgdata | 107374182400 | 10737418240 | 96636764160 | 10.00 | 800 | 400 | 0 |
+———-+———-+——————+——————+——————+——————+——————+——————+——————+——————+
3.1.3 OceanBase备份状态检查
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p -e “SELECT * FROM oceanbase.CDB_OB_BACKUP_JOB_HISTORY ORDER BY job_id DESC LIMIT 10;”
+——–+————-+———+———-+———————+———————+———————+———+———–+——————+————-+
| job_id | tenant_name | job_type | job_level | start_time | end_time | status | result | progress | result_code | comment |
+——–+————-+———+———-+———————+———————+———————+———+———–+——————+————-+
| 10001 | fgedudb | BACKUP | FULL | 2026-04-08 20:00:00 | 2026-04-08 20:30:00 | SUCCESS | NULL | 100.00 | 0 | Backup success |
| 10000 | fgedudb | BACKUP | INCREMENTAL | 2026-04-07 20:00:00 | 2026-04-07 20:15:00 | SUCCESS | NULL | 100.00 | 0 | Backup success |
+——–+————-+———+———-+———————+———————+———————+———+———–+——————+————-+
3.2 OceanBase DBA日常维护操作
3.2.1 OceanBase统计信息收集
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p -e “ANALYZE TABLE fgedu.t1;”
Query OK, 0 rows affected (0.10 sec)
# 收集数据库统计信息
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p -e “ANALYZE DATABASE fgedudb;”
Query OK, 0 rows affected (1.20 sec)
3.2.2 OceanBase慢SQL分析
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p -e “SELECT * FROM oceanbase.V$OB_SLOW_QUERY ORDER BY query_time DESC LIMIT 10;”
+—————————-+———————+———————+———-+——————+——————+——————+——————+——————+——————+,更多学习教程公众号风哥教程itpux_com。
| sql_id | start_time | end_time | user_name | database_name | query_time | lock_wait_time | return_rows | affected_rows | sql_text |
+—————————-+———————+———————+———-+——————+——————+——————+——————+——————+——————+
| 1234567890abcdef | 2026-04-09 08:30:00 | 2026-04-09 08:30:10 | fgedu | fgedudb | 10.00 | 0.00 | 100000 | 0 | SELECT * FROM t1 WHERE id > 100000 |
+—————————-+———————+———————+———-+——————+——————+——————+——————+——————+——————+
3.2.3 OceanBase参数调整
$ obclient -h192.168.1.10 -P2881 -uroot@sys -p -e “SHOW PARAMETERS LIKE ‘memory_limit’;”
+——-+———-+—————-+———-+——————+———–+——-+——————-+———-+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section |
+——-+———-+—————-+———-+——————+———–+——-+——————-+———-+
| zone1 | observer | 192.168.1.10 | 2882 | memory_limit | capacity | 16G | Memory limit for observer | OBSERVER |
| zone2 | observer | 192.168.1.11 | 2882 | memory_limit | capacity | 16G | Memory limit for observer | OBSERVER |
| zone3 | observer | 192.168.1.12 | 2882 | memory_limit | capacity | 16G | Memory limit for observer | OBSERVER |
+——-+———-+—————-+———-+——————+———–+——-+——————-+———-+
# 修改参数
$ obclient -h192.168.1.10 -P2881 -uroot@sys -p -e “ALTER SYSTEM SET memory_limit = ’24G’ ZONE ‘zone1’;”
Query OK, 0 rows affected (0.05 sec)
3.3 OceanBase DBA事件响应与处理
3.3.1 OceanBase故障响应流程
1. 接收告警
2. 初步分析
3. 确认故障
4. 制定方案
5. 执行修复
6. 验证修复
7. 记录总结
# 示例:处理节点故障
## 1. 接收告警
– 告警:节点192.168.1.11状态异常
## 2. 初步分析
$ obclient -h192.168.1.10 -P2881 -uroot@sys -p -e “SELECT * FROM oceanbase.__all_server WHERE svr_ip = ‘192.168.1.11’;”
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
| svr_ip | svr_port | zone | start_service_time | stop_service_time | status | block_migrate | build_version | last_offline_time | last_heartbeat | with_rootserver | version | data_version | svr_type | observer_version |
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
| 192.168.1.11 | 2882 | zone2 | 2026-04-01 00:00:00 | NULL | INACTIVE | false | 4.3.0.0 | 2026-04-09 09:30:00 | 2026-04-09 09:25 | false | 4.3.0.0 | 4.3.0.0-20260301120000 | observer | 4.3.0.0 |
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
## 3. 确认故障
– 节点192.168.1.11已离线
– 检查服务器状态
## 4. 制定方案
– 重启observer进程
## 5. 执行修复
$ ssh root@192.168.1.11
# cd /ob/app/oceanbase/bin
# ./observer restart
## 6. 验证修复
$ obclient -h192.168.1.10 -P2881 -uroot@sys -p -e “SELECT * FROM oceanbase.__all_server WHERE svr_ip = ‘192.168.1.11’;”
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
| svr_ip | svr_port | zone | start_service_time | stop_service_time | status | block_migrate | build_version | last_offline_time | last_heartbeat | with_rootserver | version | data_version | svr_type | observer_version |
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
| 192.168.1.11 | 2882 | zone2 | 2026-04-09 09:40:00 | NULL | ACTIVE | false | 4.3.0.0 | 2026-04-09 09:30:00 | 2026-04-09 09:41 | false | 4.3.0.0 | 4.3.0.0-20260301120000 | observer | 4.3.0.0 |
+—————-+———-+————+———————+———————+———-+—————–+———-+————————+——————+——————+——–+—————————-+———-+——————-+
## 7. 记录总结
– 故障原因:服务器内存不足导致进程崩溃
– 解决方案:重启observer进程,调整内存参数
– 预防措施:增加服务器内存,优化内存配置
Part04-生产案例与实战讲解
4.1 OceanBase DBA早间检查实战案例
#!/bin/bash
# morning_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
echo “=== OceanBase DBA早间检查开始 ===”
echo “检查时间: $(date)”
echo “\n1. 检查集群状态”
obclient -h192.168.1.10 -P2881 -uroot@sys -p”password” -e “SELECT svr_ip, svr_port, zone, status FROM oceanbase.__all_server;”
echo “\n2. 检查租户状态”
obclient -h192.168.1.10 -P2881 -uroot@sys -p”password” -e “SELECT tenant_id, tenant_name, status FROM oceanbase.__all_tenant;”
echo “\n3. 检查存储使用情况”
obclient -h192.168.1.10 -P2881 -uroot@sys -p”password” -e “SELECT svr_ip, device_name, total_size/1024/1024/1024 as total_gb, used_size/1024/1024/1024 as used_gb, usage_percent FROM oceanbase.__all_virtual_disk_stat;”
echo “\n4. 检查备份状态”
obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “SELECT job_id, tenant_name, job_type, status, start_time, end_time FROM oceanbase.CDB_OB_BACKUP_JOB_HISTORY ORDER BY job_id DESC LIMIT 5;”
echo “\n5. 检查慢SQL”
obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “SELECT sql_id, start_time, query_time, user_name, sql_text FROM oceanbase.V$OB_SLOW_QUERY ORDER BY query_time DESC LIMIT 5;”
echo “\n=== OceanBase DBA早间检查结束 ===”
4.2 OceanBase DBA日常维护实战案例
#!/bin/bash
# daily_maintenance.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
echo “=== OceanBase DBA日常维护开始 ===”
echo “维护时间: $(date)”
echo “\n1. 收集统计信息”
obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “ANALYZE DATABASE fgedudb;”
echo “\n2. 检查表空间使用情况”
obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “SELECT table_name, table_schema, data_length/1024/1024 as data_mb, index_length/1024/1024 as index_mb, (data_length + index_length)/1024/1024 as total_mb FROM information_schema.tables WHERE table_schema = ‘fgedudb’ ORDER BY total_mb DESC LIMIT 10;”
echo “\n3. 检查会话状态”
obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “SELECT user, host, db, command, time, state FROM information_schema.processlist WHERE time > 60 ORDER BY time DESC;”
echo “\n4. 清理过期备份”
obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “DELETE FROM oceanbase.CDB_OB_BACKUP_PIECE WHERE end_time < DATE_SUB(NOW(), INTERVAL 30 DAY);"
echo "\n=== OceanBase DBA日常维护结束 ==="
4.3 OceanBase DBA事件处理实战案例
## 问题现象
– 告警:表空间fgedutbs使用量达到90%
## 分析步骤
1. 检查表空间使用情况
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “SELECT tablespace_name, sum(bytes)/1024/1024/1024 as total_gb, sum(maxbytes)/1024/1024/1024 as max_gb, sum(bytes)/sum(maxbytes)*100 as usage_percent FROM dba_data_files GROUP BY tablespace_name;”
+—————+———-+———+—————+
| tablespace_name | total_gb | max_gb | usage_percent |
+—————+———-+———+—————+
| fgedutbs | 100.00 | 100.00 | 90.00 |
+—————+———-+———+—————+
2. 检查占用空间最大的表
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “SELECT table_name, table_schema, data_length/1024/1024/1024 as data_gb, index_length/1024/1024/1024 as index_gb, (data_length + index_length)/1024/1024/1024 as total_gb FROM information_schema.tables WHERE table_schema = ‘fgedudb’ ORDER BY total_gb DESC LIMIT 5;”
+————+————–+———+———-+———-+
| table_name | table_schema | data_gb | index_gb | total_gb |
+————+————–+———+———-+———-+
| t1 | fgedudb | 80.00 | 10.00 | 90.00 |
+————+————–+———+———-+———-+
## 解决方案
1. 扩展表空间
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “ALTER TABLESPACE fgedutbs ADD DATAFILE ‘/ob/fgdata/fgedutbs02.dbf’ SIZE 100G;”
Query OK, 0 rows affected (0.50 sec)
2. 验证表空间扩展
$ obclient -h192.168.1.10 -P2881 -uroot@fgedudb -p”password” -e “SELECT tablespace_name, sum(bytes)/1024/1024/1024 as total_gb, sum(maxbytes)/1024/1024/1024 as max_gb, sum(bytes)/sum(maxbytes)*100 as usage_percent FROM dba_data_files GROUP BY tablespace_name;”
+—————+———-+———+—————+
| tablespace_name | total_gb | max_gb | usage_percent |
+—————+———-+———+—————+
| fgedutbs | 100.00 | 200.00 | 45.00 |
+—————+———-+———+—————+
## 预防措施
– 设置表空间自动扩展
– 定期监控表空间使用情况
– 制定数据清理策略
Part05-风哥经验总结与分享
5.1 OceanBase DBA日常工作最佳实践
OceanBase DBA日常工作的最佳实践包括:
- 自动化运维:编写自动化脚本,减少手动操作,提高工作效率
- 标准化操作:制定标准化的操作流程,确保操作的一致性和安全性
- 预防性维护:定期进行预防性维护,减少故障发生
- 监控告警:建立完善的监控告警体系,及时发现和处理问题
- 文档化:详细记录所有操作和变更,便于问题追溯和知识传承
- 持续学习:不断学习OceanBase的新特性和最佳实践
- 团队协作:与开发、运维等团队保持良好的沟通和协作
5.2 OceanBase DBA工作效率提升技巧
OceanBase DBA工作效率提升技巧:
- 使用脚本自动化:编写脚本自动化日常检查和维护任务
- 使用工具提高效率:熟练使用OCP、ODC等工具
- 建立模板和规范:建立标准化的模板和规范,减少重复工作
- 合理安排时间:根据任务的优先级和紧急程度合理安排时间
- 批量操作:对相似的任务进行批量操作,提高效率
- 知识管理:建立知识库,积累和分享经验
5.3 OceanBase DBA职业发展建议
OceanBase DBA的职业发展建议:
- 技术深度:深入理解OceanBase的架构和原理,成为技术专家
- 技术广度:了解相关技术,如分布式系统、云平台等
- 管理能力:提高团队管理和项目管理能力
- 业务理解:深入理解业务需求,提供更好的数据库解决方案
- 认证和培训:获取OceanBase相关认证,参加培训和技术交流
- 社区参与:积极参与OceanBase社区,分享经验和知识
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
