在企业服务器上安装数据库前,需要进行系统级的基础配置以确保安全性、稳定性和性能。以下是关键步骤:
一、系统更新与基础安全
-
更新系统
# CentOS/RHEL sudo yum update -y # Ubuntu/Debian sudo apt update && sudo apt upgrade -y -
创建专用用户(避免使用root运行数据库)
sudo useradd -m -s /bin/bash dbadmin sudo passwd dbadmin -
配置SSH安全
- 禁用root远程登录
- 使用密钥认证
- 修改默认SSH端口(可选)
-
配置防火墙
# CentOS (firewalld) sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-port=数据库端口/tcp sudo firewall-cmd --reload # Ubuntu (ufw) sudo ufw allow ssh sudo ufw allow 数据库端口/tcp sudo ufw enable
二、存储与文件系统优化
-
独立数据分区
- 使用XFS/ext4文件系统(避免使用Btrfs)
- 挂载参数优化(如
noatime,nodiratime)
示例/etc/fstab配置:/dev/sdb1 /var/lib/mysql xfs defaults,noatime,nodiratime 0 0
-
禁用交换分区(对内存敏感的数据库如Redis)
sudo swapoff -a # 永久禁用:注释/etc/fstab中的swap行 -
调整文件描述符限制
# 在/etc/security/limits.conf中添加 * soft nofile 65535 * hard nofile 65535
三、内核参数优化
编辑/etc/sysctl.conf(以MySQL为例):
# 网络连接优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
# 内存与缓存
vm.swappiness = 1
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
# 文件系统
fs.file-max = 65535
# 数据库专用(MySQL/PostgreSQL)
kernel.sem = 250 32000 100 128
应用配置:sudo sysctl -p
四、时间同步与时区
# 安装NTP服务
sudo timedatectl set-timezone Asia/Shanghai
sudo systemctl enable chronyd # CentOS
sudo systemctl enable systemd-timesyncd # Ubuntu
五、SELinux/AppArmor配置
- CentOS SELinux:
临时方案:setenforce 0
永久方案:编辑/etc/selinux/config为permissive(生产环境需配置策略) - Ubuntu AppArmor:
按需调整配置文件(如MySQL在/etc/apparmor.d/usr.sbin.mysqld)
六、数据库专用优化
-
禁用透明大页(Transparent Huge Pages)
echo never > /sys/kernel/mm/transparent_hugepage/enabled # 永久配置:添加到/etc/rc.local -
调整I/O调度器(SSD建议使用noop或deadline)
echo noop > /sys/block/sda/queue/scheduler -
创建数据库专用目录并设置权限
sudo mkdir -p /data/db sudo chown -R dbadmin:dbadmin /data/db
七、监控与日志准备
- 安装基础监控工具(如
htop,iotop,sysstat) - 配置日志轮转(logrotate)
- 设置数据库日志目录(如
/var/log/mysql)
八、备份与恢复准备
- 规划备份存储位置
- 测试系统快照功能(如LVM快照)
- 配置异地备份通道(可选)
九、环境检查清单
完成配置后验证:
- [ ] 磁盘空间:
df -h - [ ] 内存检查:
free -h - [ ] 网络连通性:
ping -c 4 网关/IP - [ ] 端口占用:
ss -tlnp | grep 数据库端口 - [ ] 时钟同步:
timedatectl status
注意事项
- 测试环境验证:所有配置先在测试环境验证
- 文档记录:记录所有修改的配置项
- 回滚方案:准备配置回滚脚本
- 数据库版本兼容性:确认操作系统与数据库版本的兼容性
这些配置可根据具体数据库(MySQL、PostgreSQL、MongoDB等)和硬件规模进行调整。生产环境建议结合监控数据持续优化。
CLOUD技术笔记