硬盘 / 存储的通电时长、休眠时间(省电、延寿);
数据库服务(MySQL/Oracle/SQL Server)的定时启停 / 运行时段。
下面分开讲,都是生产环境常用、可直接落地的配置方法。
一、硬盘 / 存储设备:设置休眠与通电策略(延长寿命)
1. Linux 服务器(hdparm 控制硬盘休眠)
查看是否支持休眠:
bash
运行
hdparm -I /dev/sda | grep 'Write cache'
有 * 表示支持。
设置 5 分钟无访问后休眠(单位:5 秒 × 分钟数):
bash
运行
hdparm -S 60 /dev/sda # 5分钟=60×5秒
0:不休眠1~240:5 秒 ×N241~255:30 分钟 ×N
开机自动生效(写入 /etc/rc.local 或 systemd 脚本):
bash
运行
vi /etc/rc.local# 添加:/usr/sbin/hdparm -S 60 /dev/sda
2. 企业存储 / 阵列(如 HP 3PAR、华为 OceanStor)
一般在管理界面 → 系统 / 电源管理 → 硬盘休眠 / 节能策略:
空闲 10–30 分钟休眠;
工作日 7:00–21:00 高性能,夜间低功耗;
关闭 “全局休眠”,避免业务中断。
3. NAS(群晖 / 威联通 / 铁威马)
群晖 DSM:控制面板 → 硬件和电源 → 硬盘休眠,选择 10/20/30 分钟。
同时可设置定时开关机:控制面板 → 硬件和电源 → 定时开关机,创建工作日 / 周末计划。
二、数据库服务:设置运行时段 / 定时启停
场景 A:仅允许指定时间段提供服务(例如 8:00–20:00)
MySQL(Linux + cron)
编写启停脚本(
/usr/local/bin/mysql_on.sh、mysql_off.sh):
bash
运行
# mysql_on.shsystemctl start mysqld# mysql_off.shsystemctl stop mysqld
加入 crontab:
bash
运行
SQL Server(Windows 任务计划)
新建任务:
触发器:每天 8:00、20:00;
操作:启动程序
net start mssqlserver/net stop mssqlserver。
Oracle(Linux + crontab)
bash
运行
# 启动0 8 * * 1-5 su - oracle -c 'dbstart $ORACLE_HOME'# 关闭0 20 * * 1-5 su - oracle -c 'dbshut $ORACLE_HOME'
场景 B:记录 / 限制数据库 “运行时长”(用于计费 / 审计)
可以在数据库里建一张表,记录每次启动、停止时间:
sql
-- MySQL 示例CREATE TABLE server_runtime ( id INT AUTO_INCREMENT PRIMARY KEY, start_time DATETIME, stop_time DATETIME, run_hours DECIMAL(10,2));-- 启动时INSERT INTO server_runtime (start_time) VALUES (NOW());-- 停止时UPDATE server_runtime SET stop_time=NOW(), run_hours=TIMESTAMPDIFF(SECOND,start_time,NOW())/3600WHERE stop_time IS NULL;
三、生产环境推荐配置(安全 + 延寿)
7×24 业务:
存储:不休眠(
hdparm -S 0),但温度控制 20–25℃;数据库:持续运行,用 RAID + 备份保障。
白天业务、夜间可停:
存储:20 分钟无访问休眠;
数据库:8:00–20:00 自动启动 / 关闭。
测试 / 开发环境:
硬盘:10 分钟休眠;
数据库:工作日 9:00–18:00 运行。

