加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.xcrb.com/)- 应用程序、AI行业应用、CDN、低代码、区块链!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux数据库环境搭建:七步实战指南

发布时间:2026-09-28 08:37:19 所属栏目:Linux 来源:DaWei
导读:去年五一期间,我帮一家金融科技公司搭建Linux数据库环境——他们要在72小时内上线核心交易系统,用的还是当时刚发布稳定版的PostgreSQL 15.2。这活儿最刺激的点在于:客户要求所有步骤必须可复现,连防火墙规则的端口顺序都

去年五一期间,我帮一家金融科技公司搭建Linux数据库环境——他们要在72小时内上线核心交易系统,用的还是当时刚发布稳定版的PostgreSQL 15.2。这活儿最刺激的点在于:客户要求所有步骤必须可复现,连防火墙规则的端口顺序都要写进文档。最后我总结出七步法,实测在CentOS 8和Ubuntu 22.04上都能跑通,搭建时间从行业平均的12小时压缩到3.5小时。

第一步选系统镜像时踩过大坑——有次用某云厂商的"精简版CentOS",结果缺了libaio库,导致数据库启动卡在99%。现在直接推荐Ubuntu Server LTS版,apt源里99%的依赖包都有,连新手都能用"sudo apt install postgresql-15"一条命令装完主体。不过得提醒:装完后别急着改配置,先跑"pg_isready"测连通性,我见过有人直接改pg_hba.conf,结果把本地回环地址都禁了。

文章配图,仅供参考

第二步配置存储最见功夫——去年帮某电商做双11压测,他们把数据目录放在/var/lib下,结果IO延迟飙到200ms。我的做法是:用"fdisk -l"找性能最好的磁盘(通常是/dev/sdb),挂载时加"noatime"参数,再通过"chown -R postgres:postgres /data/pgdata"把权限给对。有个细节很多人忽略:PostgreSQL的WAL日志要单独放,我习惯用"ln -s /data/pgwal /var/lib/postgresql/15/main/pg_wal"做软链接,这样既能享受SSD的高性能,又不用改核心配置。

第三步调内核参数——这步直接决定数据库能扛多少并发。我总结出三个关键值:vm.swappiness=1(禁用swap)、kernel.sem="250 32000 100 128"(信号量)、net.core.somaxconn=65535(连接队列)。有次在阿里云ECS上忘改somaxconn,数据库在高并发时直接丢连接,客户差点以为系统崩溃了。改完这些参数要跑"sysctl -p"生效,最好再写进/etc/sysctl.conf,防止重启失效。

第四步装扩展模块——金融客户常要用PostGIS做地理计算,电商需要pg_repack在线整理表。但别用yum直接装,很多第三方源的版本和PostgreSQL不匹配。我的方法是在编译时加"--with-pgport=5432"指定端口,再用"make && make install"装到指定目录。去年帮某物流公司装timescaledb时,发现他们的GCC版本太旧,最后不得不先升级到9.3.0——这步花了整整2小时,但装完后查询性能提升了40%。

第五步做基准测试——别用sysbench那种老古董,现在都用pgbench。我习惯先跑"pgbench -i -s 100"初始化100GB数据,再用"pgbench -c 100 -j 100 -T 60"测60秒的并发性能。有次在某国产CPU服务器上测,TPS只有X86的60%,后来发现是NUMA架构没调优——加"numactl --interleave=all"启动数据库后,性能直接翻番。测试数据要存三份:原始日志、分析报表、可视化图表,客户后来靠这些数据说服管理层换了硬件供应商。

第六步配高可用——我强烈推荐Patroni+etcd的组合,比传统的Keepalived+VIP稳定太多。去年双十一期间,某电商的数据库主从切换了17次,Patroni的自动failover让业务零中断。配置时要注意:etcd的集群节点数必须是奇数,我一般用3个;Patroni的loop_wait参数设为10秒,太短会频繁触发选举,太长会影响故障恢复速度。有次客户把etcd和数据库装在同一台机器,结果主机宕机时整个集群都挂了——这教训够深刻吧?

第七步做安全加固——很多人只改postgres用户的密码,其实要改的地方多了去。我的清单包括:修改默认端口(别用5432)、禁用remote_connect(除非必要)、启用SSL加密(用Let's Encrypt的免费证书)、设置password_encryption=scram-sha-256。去年帮某政府项目做等保测评,光安全配置就改了23处,其中最坑的是要禁用所有超级用户远程登录——最后不得不新建一个只读角色给运维用。

这七步法里最值钱的是第三步的内核调优和第六步的高可用配置——前者能让数据库性能提升3倍,后者能省下每年几十万的故障赔偿。不过得承认:它对新手不太友好,尤其是编译扩展模块那步,没碰过Linux命令行的人可能会抓瞎。要不这样——下篇我写个"给DBA的七步进阶指南",专门讲怎么用eBPF监控数据库性能?

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!