结合服务器外包公司运维标准,开发MES项目时候,就把Linux+OceanBase的标准做好,方便运维。
一、系统部署标准(Rocky Linux)
1. 系统版本与安装
plaintext
- 系统版本:Rocky Linux 9.x(最小化安装 Mininal Install)
- 架构:x86_64
- 语言:英文(避免中文乱码)
- 时区:Asia/Shanghai
- 磁盘分区:
/boot 1G
/ 100G(系统盘)
/data 剩余全部(数据盘,独立挂载)
swap 内存的1~2倍(32G以上内存可以给8G)
2. 系统初始化标准
bash
运行
# 1. 关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 2. 关闭防火墙(或统一规则)
systemctl stop firewalld
systemctl disable firewalld
# 3. 关闭交换分区
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab
# 4. 设置主机名(规范:ob-node1/2/3)
hostnamectl set-hostname ob-node1
# 5. 配置hosts(三台机器互相解析)
cat >> /etc/hosts << EOF
192.168.1.10 ob-node1
192.168.1.11 ob-node2
192.168.1.12 ob-node3
EOF
# 6. 内核参数优化(OceanBase推荐)
cat >> /etc/sysctl.conf << EOF
vm.swappiness = 0
vm.max_map_count = 655350
fs.file-max = 655360
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 65535
EOF
sysctl -p
# 7. 文件句柄限制
cat >> /etc/security/limits.conf << EOF
* soft nofile 655350
* hard nofile 655350
* soft nproc 655350
* hard nproc 655350
EOF
# 8. 新建统一用户(不用root跑业务)
useradd -m obadmin
echo "你的密码" | passwd --stdin obadmin
3. 目录结构标准(所有机器统一)
plaintext
/home/obadmin/
├── oceanbase/ # OB安装目录
├── backup/ # 本地备份临时目录
├── scripts/ # 运维脚本(备份、巡检、分区)
└── logs/ # 业务日志
/data/
├── oceanbase/ # OB数据目录
└── backup/ # NFS备份挂载点
二、OceanBase 部署标准
1. 集群架构标准
plaintext
- 部署方式:OBD 一键部署(不用手动装)
- 节点数:3节点(三副本)
- Zone:1个Zone(单机房)
- 租户:MySQL模式
- 端口:
2881 # OB SQL端口
2882 # OB RPC端口
8080 # OCP Express
2883 # OBProxy
2. 资源分配标准(以 32 核 128G 机器为例)
plaintext
- 内存分配:
系统预留:16G
OceanBase:112G
- MemStore(写入内存):30% ≈ 33G
- Block Cache(读缓存):50% ≈ 56G
- 其他:20% ≈ 23G
- CPU:全部给OB(绑核可选)
- 数据盘:独立SSD/NVMe,不要和系统盘共用
3. 租户配置标准(MES 业务)
plaintext
- 租户名:mes_tenant
- 字符集:utf8mb4
- collation:utf8mb4_general_ci
- 资源规格:
max_cpu:28
memory_size:100G
log_disk_size:200G
data_disk_size:根据实际
- 重要参数:
ob_compatibility_mode = mysql
sql_mode = 去掉NO_ZERO_DATE(兼容业务)
4. 数据库账号标准(最小权限原则)
plaintext
- 管理员账号:ob_root(仅本地用,不对外)
- 业务账号:mes_app(只有业务库的增删改查权限)
- 备份账号:mes_backup(只有备份权限)
- 监控账号:mes_monitor(只有只读权限)
三、监控告警标准
1. 监控组件
plaintext
方案A(简单,先用这个):
- OCP Express(OceanBase自带)
- 服务器基础监控:netdata 或 宝塔监控(简单)
方案B(专业,后期上):
- Prometheus + Grafana
- OceanBase Exporter
- Alertmanager 告警
2. 必须监控的核心指标(告警阈值)
表格
| 指标 | 告警阈值 | 级别 |
|---|---|---|
| 磁盘使用率 | >80% | 警告 |
| 磁盘使用率 | >90% | 严重 |
| 内存使用率 | >85% | 警告 |
| CPU 使用率 | >90% 持续 5 分钟 | 警告 |
| OB 副本状态 | 有副本异常 | 严重 |
| OB 节点离线 | 任意节点离线 | 严重 |
| 慢 SQL 数量 | 每分钟 > 100 条 | 警告 |
| 备份失败 | 任意备份失败 | 严重 |
| 数据库连接数 | >80% 最大连接 | 警告 |
3. 告警方式
plaintext
- 企业微信/钉钉机器人(首选,免费,手机随时看)
- 邮件(备用)
- 短信(严重告警才用,避免骚扰)
四、备份恢复标准(最重要!)
1. 备份策略
plaintext
- 备份方式:OceanBase 物理备份 + 日志归档
- 备份存储:独立NFS/另一台机器,绝对不能存同一台机器
- 全量备份:每周日凌晨2点
- 增量备份:每天凌晨2点
- 日志归档:实时/每2分钟归档
- 保留策略:
全量备份:保留4周
增量备份:保留2周
日志归档:保留2周
2. 备份脚本标准(统一放在 /home/obadmin/scripts/)
plaintext
backup_full.sh # 全量备份脚本
backup_incr.sh # 增量备份脚本
backup_verify.sh # 备份验证脚本
restore_test.sh # 恢复测试脚本
3. 备份验证标准
plaintext
- 每月做一次恢复演练
- 随机选一个备份,恢复到测试环境
- 验证数据完整性、查询正常
- 记录恢复时间、恢复结果
- 形成《备份恢复验证报告》
五、日常运维规范
1. 日常巡检(每天一次)
plaintext
巡检内容:
1. 服务器状态:CPU、内存、磁盘、网络
2. OB集群状态:节点是否在线、副本是否正常
3. 数据库连接数、QPS、慢SQL数量
4. 备份是否成功
5. 磁盘空间是否充足
6. 告警是否有未处理的
巡检工具:写个一键巡检脚本,执行完出报告
2. 定期维护(每周 / 每月)
plaintext
每周:
- 检查备份是否正常
- 清理过期日志、临时文件
- 查看慢SQL,优化Top10
每月:
- 做一次备份恢复演练
- 收集统计信息(避免执行计划变差)
- 检查磁盘碎片、合并情况
- 预创建下个月分区(流水表)
- 出一份月度运维报告
3. 变更规范(重要!)
plaintext
任何生产环境变更,必须遵守:
1. 先在测试环境验证
2. 写变更方案、回滚方案
3. 选择低峰期执行(凌晨或周末)
4. 变更前全量备份
5. 双人操作,一人操作一人复核
6. 变更后观察30分钟
7. 记录变更日志
六、故障处理标准流程
1. 故障分级
表格
| 级别 | 定义 | 响应时间 |
|---|---|---|
| P0 严重 | 数据库宕机、产线停报工 | 15 分钟内响应,2 小时内恢复 |
| P1 重要 | 性能严重下降、部分功能不可用 | 30 分钟内响应,4 小时内恢复 |
| P2 一般 | 慢 SQL、小问题,不影响核心业务 | 2 小时内响应,当天解决 |
| P3 轻微 | 咨询、优化建议 | 1 个工作日内 |
2. 故障处理流程
plaintext
1. 发现告警/用户反馈
2. 评估故障级别
3. 通知相关人员(运维、DBA、业务负责人)
4. 排查问题,定位根因
5. 制定恢复方案,优先恢复业务
6. 执行恢复操作
7. 验证业务恢复正常
8. 记录故障报告:原因、处理过程、预防措施
9. 复盘,避免再次发生
3. 常见故障处理手册(提前写好)
plaintext
- 服务器断电怎么处理
- 硬盘坏了怎么处理
- OB节点离线怎么处理
- 数据库连接满了怎么处理
- 慢SQL导致卡怎么处理
- 备份失败怎么处理
每个故障都写清楚:现象、原因、处理步骤、命令
外包拿到手就能照着做,不用每次临时查
七、文档交付标准(给外包 / 交接用)
必须有的文档清单
plaintext
1. 《系统部署手册》
- 硬件配置、网络拓扑
- 系统安装步骤、参数配置
- 账号密码表(加密保存)
2. 《OceanBase部署手册》
- 集群架构、资源分配
- 部署步骤、参数配置
- 租户、数据库、表结构说明
3. 《运维操作手册》
- 日常巡检步骤
- 备份恢复操作
- 扩容缩容步骤
- 版本升级步骤
4. 《故障处理手册》
- 常见故障现象、原因、处理步骤
- 紧急联系人、联系方式
5. 《变更记录》
- 每次变更的时间、内容、操作人、结果
八、给你的落地建议
第一阶段(项目初期)
✅ 系统部署标准化(照着上面的来)
✅ OceanBase 用 OBD 部署,配置统一
✅ 目录结构、账号、端口全部统一
✅ 写好基础运维脚本
第二阶段(上线前)
✅ 搭好监控告警,确保能收到告警
✅ 备份策略配置好,做一次恢复演练
✅ 写好运维手册、故障处理手册
✅ 整理好所有文档
第三阶段(上线后)
✅ 按规范做日常巡检、定期维护
✅ 每次变更都记录
✅ 每月复盘,持续优化
✅ 半年后,把成熟的方案整理成正式标准
一句话总结
标准越细、文档越全,运维越省心、外包越好招、出问题恢复越快。
你现在按这个标准搭,以后不管是自己运维、招运维、还是找外包,都能直接上手,不会出现 "只有你自己懂,别人接不住" 的情况。
阅读剩余
THE END