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

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 直接运行数据库服务。标准做法是:
- 创建专用系统用户(如 mysql 或 postgres),仅赋予必要目录读写权限(/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=ON、long_query_time=1;PostgreSQL 开启 log_min_duration_statement = 1000
- 核心指标采集不可少 :连接数、QPS/TPS、缓冲池命中率、复制延迟(主从)、磁盘 I/O 等,接入 Prometheus + Grafana 实时告警
- 日志轮转强制配置 :使用 logrotate 按大小(如 100MB)或时间(daily)切割,保留 30 天,防止填满根分区






























