结合服务器外包公司运维标准,开发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