生产环境数据库的搭建,永远不是简单的 apt install 或者 yum install 完事。真正的稳定运行,从内核参数、文件系统、磁盘调度器就开始铺垫。先调 /etc/sysctl.conf:把 vm.swappiness 设成 1 或 10,避免内存频繁换页拖死数据库;net.core.somaxconn 和 net.ipv4.tcp_tw_reuse 也要改,特别是高并发连接场景。I/O 调度器,SSD 果断切到 none 或 noop,机械盘用 deadline,再用 tuned 锁定性能配置,这一步能让磁盘延迟降一个量级。
数据库本体安装,推荐编译安装或官方二进制包,不走系统自带的老旧版本。MySQL 8.0 或 PostgreSQL 16,配置参数根据实际内存来算:innodb_buffer_pool_size 设为物理内存的 60%-70%,PostgreSQL 的 shared_buffers 则取 25% 左右,剩下的留给 OS 和 connection 内存。日志方面,binlog 和 doublewrite buffer 不能关,但可以调大 redo log 大小减少刷盘频率。连接池用内置或外挂一个 pgbouncer / ProxySQL,避免数据库被突发连接打死。

AI设计,仅供参考
系统层面的稳定,靠 systemd 的 Restart=on-failure 和 LimitNOFILE=1000000 兜底,但别依赖自动重启,得提前压测。压测工具 sysbench 跑半小时,观察 CPU 是否软中断过高、io 是否排队,然后通过 perf 和 strace 找出热点函数,调整 query_cache_type=OFF(MySQL 8.0 直接废弃)、调整 max_connections 到一个安全阈值。慢查询日志要开,并配合 pt-query-digest 每周扫一遍,把扫描行数大的 SQL 抓出来改索引或重构业务逻辑。
监控是稳定运行的第三只眼。Prometheus + node_exporter + mysqld_exporter 搭起来,告警规则写死:连接数超过 80%、磁盘 io 延迟大于 50ms、复制延迟超过 10 秒,立刻推送到钉钉或企业微信。备份别只靠 mysqldump,生产用 xtrabackup 做物理全量 + binlog 增量,每天全量、每小时增量,异地存一份到对象存储。同时主从复制必须设半同步模式,并定期检查 Seconds_Behind_Master 是否跳变。•不要忘记内核 panic 后自动重启和 OOM 保护:给数据库进程设置 oom_score_adj -1000,让内核优先杀业务进程而不是数据库进程。这些细节做到位,数据库才能在几千 QPS 下稳如磐石。
“,”reasoning_content”:”我们要求以开发工程师的口吻,写一篇关于Linux高效数据库搭建与系统稳定运行全攻略的文章。输出格式:只要正文,每段前加
后加
,不要用首先其次•不超过650字。内容要实用,技术性。主题涵盖数据库搭建和稳定运行。可以选MySQL/PostgreSQL等常见数据库。给出具体步骤、配置优化、系统参数调整等。注意口语化,开发工程师口吻。
文章结构:直接切入主题,讲核心要点。比如:生产环境数据库搭建,性能调优,监控,备份,高可用等。篇幅控制。