Linux数据库部署规范_数据库运维建议

5次阅读

linux数据库部署核心是稳定性、安全性和可维护性,须选用centos stream 8/9、rocky linux 8/9或ubuntu 22.04 lts等lts系统,禁用thp、调优swappiness、合理设置ulimit、隔离用户权限、加密备份并定期演练、统一日志监控。

Linux数据库部署规范_数据库运维建议

Linux环境下部署数据库,核心是稳定性、安全性和可维护性。不追求最新版本,而要选长期支持(LTS)的稳定发行版;不砌配置,而应按业务负载合理分配资源;不忽略日志与备份,而需将其纳入日常巡检闭环。

操作系统与内核调优

建议使用 CentOS Stream 8/9、Rocky Linux 8/9 或 Ubuntu 22.04 LTS 等长期支持系统。避免在生产环境使用滚动更新型发行版(如 Arch 或 Fedora Server)。关键调优项包括:

  • 禁用透明大页(THP)mysql/postgresql 对 THP 敏感,需在 /etc/default/grub 中添加 transparent_hugepage=never,并更新 grub 后重启
  • 调整 vm.swappiness:设为 1(非 0),减少数据库进程被交换出内存的概率
  • 文件系统选择 ext4 或 xfs,挂载时启用 noatime,nodiratime,降低元数据写入开销
  • ulimit 设置合理:数据库用户 soft/hard open files 至少 65536,nproc 不低于 4096

数据库安装与用户权限隔离

禁止用 root 直接运行数据库服务。标准做法是:

  • 创建专用系统用户(如 mysqlpostgres),仅赋予必要目录读写权限(/var/lib/mysql/var/lib/postgresql 等)
  • 数据库二进制文件由 root 所有,但启动脚本和服务单元文件(systemd)以普通用户身份运行
  • 网络监听地址默认绑定 127.0.0.1,如需远程访问,明确指定内网 IP,并配合防火墙(firewalld/iptables)限制源段
  • 数据库内账号遵循最小权限原则:应用账号仅授予所需库表的 select/INSERT/UPDATE/delete,禁用 FILE、SUPER、PROCESS 等高危权限

备份与恢复机制落地

备份不是“有就行”,而是“能用、可控、可验”。必须做到:

  • 全量 + 增量组合:MySQL 可用 mysqldump + binlog;PostgreSQL 推荐 pg_basebackup + WAL 归档
  • 备份文件加密存储:使用 gpg 或 openssl 加密,密钥离线保管;备份目录禁止开放 web 访问或匿名 FTP
  • 定期恢复演练:至少每季度在测试环境执行一次完整还原流程,验证备份有效性及 RTO/RPO 达标情况
  • 保留策略明确:本地保留最近 7 天,异地(对象存储/OSS)保留 30 天以上,所有备份标注时间戳与实例标识

监控与日志规范化

运维响应速度取决于能否快速定位问题。日志和指标需结构化处理:

  • 错误日志统一归集:MySQL 的 Error.log、PostgreSQL 的 postgresql-*.log 通过 rsyslog 或 filebeat 推送至集中日志平台(如 elk 或 Loki)
  • 慢查询必须开启并分析:MySQL 设置 slow_query_log=ONlong_query_time=1;PostgreSQL 开启 log_min_duration_statement = 1000
  • 核心指标采集不可少:连接数、QPS/TPS、缓冲池命中率、复制延迟(主从)、磁盘 I/O 等,接入 prometheus + grafana 实时告警
  • 日志轮转强制配置:使用 logrotate 按大小(如 100MB)或时间(daily)切割,保留 30 天,防止填满根分区
text=ZqhQzanResources