Synology 备份运行数据库服务的服务器全指南:方法/工具/一致性保障(DSM 7.x适配)
在企业IT架构中,运行数据库服务的服务器(如MySQL、PostgreSQL服务器)是核心数据载体,一旦因硬件故障、勒索攻击导致数据丢失,将直接影响业务连续性。许多用户疑问“能否通过Synology NAS备份这类运行中的数据库服务器”——答案是肯定的,但需针对数据库“实时读写”的特性,采用适配的备份方法与工具,否则易出现“备份文件损坏”“数据不一致”等问题。本文基于Synology官方技术文档,从“可行性说明→前提准备→核心备份方案→一致性保障→恢复验证”五大维度,手把手教您完成运行中数据库服务器的备份,覆盖主流数据库类型(MySQL、PostgreSQL、SQL Server),适配DSM 7.x全版本,兼顾中小企业单机数据库与集群场景。
一、核心问题解答:Synology能备份运行数据库服务的服务器吗?(官方结论)
首先明确Synology官方立场:完全支持备份运行中的数据库服务器,但需满足两个核心条件——“使用适配的备份工具”与“保障数据一致性”,具体可行性说明如下:
| 可行性维度 | 官方结论 | 关键依据 |
|-------------------------|-----------------------------------|-------------------------------------------|
| 是否支持“运行中备份” | 支持(热备份) | Synology工具(如Hyper Backup)可通过数据库原生命令(mysqldump、pg_dump)捕获实时数据,无需停机 |
| 是否支持主流数据库 | 支持MySQL、PostgreSQL、SQL Server、MongoDB等 | 官方文档明确列出适配的数据库版本(如MySQL 5.7+/8.0+、PostgreSQL 10+/14+) |
| 是否保障数据一致性 | 支持(需配置一致性选项) | 可通过“预备份脚本”“事务日志备份”“锁定临时表”等方式避免数据碎片化 |
| 是否支持异地/定时备份 | 支持(全量+增量备份) | Hyper Backup支持定时全量备份,Snapshot Replication支持增量同步,可跨NAS异地备份 |
二、前提准备:4大核心条件,奠定备份基础
备份运行中的数据库服务器前,需先确认环境、工具、权限满足要求,避免因基础条件缺失导致备份失败或数据损坏。
1. 确认数据库与Synology工具适配性
不同数据库需搭配特定Synology工具,且有版本限制,需优先核对:
| 数据库类型 | 支持的Synology备份工具 | 数据库版本要求 | 备注 |
|------------------|-----------------------------------|-----------------------------------|---------------------------------------|
| MySQL/MariaDB | Hyper Backup、Snapshot Replication、MariaDB Backup | MySQL 5.7+、MariaDB 10.2+ | 需开启数据库远程访问权限(授权NAS IP登录) |
| PostgreSQL | Hyper Backup、pg_dump(原生命令) | PostgreSQL 10+ | 需配置postgresql.conf允许远程连接 |
| SQL Server | Hyper Backup、SQL Server Management Studio(配合) | SQL Server 2016+ | 需安装ODBC驱动(Synology NAS端) |
| MongoDB | Hyper Backup、mongodump(原生命令) | MongoDB 4.0+ | 需启用MongoDB认证(用户名密码登录) |
- 工具安装路径:
Hyper Backup/Snapshot Replication:DSM桌面→套件中心→搜索工具名称→点击“安装”(DSM 7.x默认支持,无需额外依赖)。
2. 权限准备:3类关键权限(缺一不可)
| 操作对象 | 所需权限 | 获取方式 |
|-------------------------|-----------------------------------|-------------------------------------------|
| Synology NAS | DSM超级管理员权限(如admin账户) | 需具备“套件管理”“共享文件夹管理”“任务计划”权限 |
| 数据库服务器 | 数据库管理员权限(如MySQL root) | 由数据库管理员分配,需允许远程执行备份命令(如MySQL授权:`GRANT ALL PRIVILEGES ON . TO 'root'@'NAS_IP' IDENTIFIED BY '密码';`) |
| 数据库服务器操作系统 | 服务器管理员权限(如Windows Administrator、Linux root) | 需在服务器上配置“预备份脚本”“日志访问权限” |
3. 网络与存储准备
- 网络连通性:
1. 确保Synology NAS与数据库服务器在同一局域网(或可通过VPN互通),测试连通性:NAS端SSH执行`ping 数据库服务器IP`(如`ping 192.168.1.200`),确保无丢包;
2. 开放数据库端口(如MySQL 3306、PostgreSQL 5432),NAS端可通过`telnet 数据库服务器IP 端口`(如`telnet 192.168.1.200 3306`)验证端口可达。
- 存储容量:
NAS需预留“数据库容量1.5倍”的存储空间(全量备份+增量备份),例如500GB数据库,建议NAS可用容量≥750GB;可通过DSM→存储管理器→查看“可用容量”。
4. 备份前的数据库状态检查
运行中的数据库需先排除异常状态,避免备份源头数据损坏:
1. 检查数据库服务状态:
- MySQL:服务器端执行`systemctl status mysqld`(Linux)或查看“服务”中“MySQL”状态(Windows),确保“active(running)”;
- PostgreSQL:执行`systemctl status postgresql`,确认服务正常。
2. 修复数据库碎片/错误:
- MySQL:执行`mysqlcheck -u root -p --auto-repair --check --optimize --all-databases`,自动修复表错误;
- PostgreSQL:执行`pg_checksums verify /var/lib/postgresql/14/main`(路径需根据版本调整),检查数据完整性。
三、核心备份方案:分数据库类型+Synology工具实操(DSM 7.x)
针对不同数据库的特性,需采用差异化的备份流程,以下以“MySQL(最常用)”“PostgreSQL”“SQL Server”为例,详解基于Hyper Backup(主流工具)的备份步骤,每步附详细路径与配置说明。
方案1:备份运行中的MySQL/MariaDB服务器(Hyper Backup)
MySQL支持通过“mysqldump原生命令”实现热备份,Hyper Backup可集成该命令,保障数据一致性:
步骤1:在数据库服务器配置远程备份权限
1. 登录MySQL服务器(Linux示例),打开终端,执行以下命令授权NAS访问:
```bash
mysql -u root -p 输入root密码登录
GRANT ALL PRIVILEGES ON . TO 'backup_user'@'NAS_IP' IDENTIFIED BY 'Backup@123'; 创建备份专用用户,NAS_IP替换为NAS实际IP
FLUSH PRIVILEGES; 刷新权限
exit;
```
2. 编辑MySQL配置文件(`/etc/my.cnf`或`/etc/mysql/my.cnf`),允许远程连接:
```ini
[mysqld]
bind-address = 0.0.0.0 允许所有IP访问(或指定NAS_IP,更安全)
skip-networking = off 关闭网络限制
```
3. 重启MySQL服务使配置生效:
```bash
systemctl restart mysqld Linux
Windows:服务中找到“MySQL”→右键“重启”
```
步骤2:在NAS上创建Hyper Backup任务
1. 登录DSM→打开“Hyper Backup”套件→点击左侧“+”(新建备份任务);
2. 选择备份目标:若备份到本地NAS,选“本地文件夹与USB设备”;若异地备份,选“Synology NAS”(需另一台Synology设备),此处以“本地备份”为例;
3. 选择备份文件夹:点击“浏览”→选择NAS上的共享文件夹(如“MySQL_Backup”,建议单独创建,避免混存其他文件)→点击“确定”;
4. 配置“应用程序备份”(核心:集成mysqldump保障一致性):
- 点击“应用程序”→勾选“MySQL/MariaDB”→点击“设置”;
- 在弹出窗口中,填写数据库服务器信息:
- 服务器地址:数据库服务器IP(如192.168.1.200);
- 端口:3306(MySQL默认端口,若自定义需修改);
- 用户名/密码:步骤1创建的“backup_user”与“Backup@123”;
- 勾选“使用mysqldump进行备份”(关键!通过原生命令捕获一致数据);
- 可选:勾选“备份所有数据库”或“指定数据库”(按需选择,建议全量备份);
- 点击“测试连接”,显示“连接成功”后点击“确定”;
5. 设置备份策略:
- 备份类型:勾选“全量备份”(首次必须全量)+“增量备份”(后续仅备份变化数据,节省空间);
- 备份周期:设置“每天凌晨2点”(业务低峰期,减少对数据库影响);
- 保留策略:勾选“保留最近10个版本”(避免备份文件过多占用空间);
6. 点击“应用”→“立即备份”,等待任务完成(时间取决于数据库大小,50GB约需30-60分钟)。
方案2:备份运行中的PostgreSQL服务器(Hyper Backup+pg_dump)
PostgreSQL通过“pg_dump”实现热备份,Hyper Backup配置逻辑与MySQL类似,但需注意用户权限与配置文件路径:
关键差异步骤(与MySQL对比):
1. 数据库服务器授权:
登录PostgreSQL服务器,编辑`/var/lib/postgresql/14/main/pg_hba.conf`(版本不同路径可能变化),添加NAS IP信任规则:
```ini
host all all NAS_IP/32 md5 允许NAS IP通过密码登录
```
重启PostgreSQL:`systemctl restart postgresql`。
2. Hyper Backup应用设置:
步骤4中勾选“PostgreSQL”→“设置”,填写:
- 服务器地址:PostgreSQL服务器IP;
- 端口:5432(默认);
- 用户名:postgres(默认管理员);
- 密码:postgres账户密码;
- 勾选“使用pg_dump进行备份”,其他步骤与MySQL一致。
方案3:备份运行中的SQL Server服务器(Hyper Backup+ODBC)
SQL Server需先在NAS安装ODBC驱动,再通过Hyper Backup连接备份:
额外步骤:NAS安装SQL Server ODBC驱动
1. 登录DSM→套件中心→“设置”→“套件来源”→点击“新增”,输入名称“Synology”,位置“https://packages.synology.com”→“确定”;
2. 在套件中心搜索“ODBC Driver for SQL Server”→点击“安装”;
3. 安装完成后,打开“控制面板”→“信息中心”→“应用程序”,确认“ODBC Driver for SQL Server”状态为“已安装”。
备份步骤(核心差异):
Hyper Backup“应用程序设置”中勾选“SQL Server”→“设置”,填写:
- 服务器地址:SQL Server服务器IP;
- 端口:1433(默认);
- 数据库名称:目标数据库(如“BusinessDB”);
- 认证方式:选择“SQL Server认证”,输入用户名(如sa)与密码;
- 勾选“备份事务日志”(保障增量备份一致性),其他步骤与MySQL一致。
四、关键保障:运行中数据库备份的“数据一致性”技巧
运行中的数据库因存在“未提交事务”“缓存数据”,直接拷贝文件会导致备份损坏,需通过以下3种官方推荐方法保障一致性:
1. 使用数据库原生备份命令(最常用)
如MySQL的`mysqldump`、PostgreSQL的`pg_dump`、SQL Server的`BACKUP DATABASE`,这些命令会:
- 临时锁定表(避免备份时数据写入);
- 捕获已提交事务,忽略未提交事务;
- 生成SQL脚本格式的备份文件(可直接用于恢复,兼容性强);
- 配置要点:在Hyper Backup“应用程序设置”中必须勾选“使用原生命令备份”,不可直接备份数据库文件目录。
2. 备份事务日志(增量备份一致性)
对于支持事务日志的数据库(如SQL Server、MySQL InnoDB),可通过“全量备份+事务日志备份”实现秒级恢复,避免增量备份数据缺失:
- SQL Server示例:
1. 全量备份后,在Hyper Backup中勾选“备份事务日志”,设置“每30分钟备份一次日志”;
2. 恢复时,先恢复全量备份,再按时间顺序恢复事务日志,可恢复到故障前任意时间点。
3. 预备份脚本(复杂场景适配)
若数据库有自定义业务逻辑(如定时任务、临时表),可在备份前执行脚本清理无效数据,Hyper Backup支持配置“预备份脚本”:
1. 在数据库服务器创建脚本(如`pre_backup.sh`,Linux示例):
```bash
!/bin/bash
备份前删除7天前的临时表
mysql -u root -p'Password@123' -e "DROP TABLE IF EXISTS temp_db.temp_table_$(date -d '7 days ago' +%Y%m%d);"
```
2. 在Hyper Backup“高级设置”→“预备份脚本”中,填写脚本路径(如`//192.168.1.200/script/pre_backup.sh`),并授权NAS访问脚本文件(服务器端设置共享或文件权限)。
五、备份后验证与恢复:确保备份可用(避免“无效备份”)
备份完成后必须验证可用性,否则故障时无法恢复,官方推荐“定期恢复测试”(每月至少1次),步骤如下:
1. 备份文件完整性验证
1. 登录DSM→打开Hyper Backup→找到目标备份任务→点击“版本”;
2. 选择最新备份版本→点击“验证”→Hyper Backup会检查备份文件是否损坏、数据是否完整;
3. 若显示“验证成功”,说明备份可用;若“验证失败”,检查数据库服务器网络连接,重新执行备份。
2. 模拟恢复测试(关键步骤)
以MySQL为例,在测试服务器(非生产环境)恢复备份,验证数据一致性:
1. 在测试服务器安装与生产环境相同版本的MySQL;
2. 从NAS复制备份文件(路径:`/volume1/MySQL_Backup/[备份任务名]/[版本号]/mysql_backup.sql`)到测试服务器;
3. 执行恢复命令:
```bash
mysql -u root -p < mysql_backup.sql 导入备份数据
```
4. 登录MySQL,执行查询验证:
```sql
USE 目标数据库;
SELECT COUNT() FROM 核心表; 对比生产环境表数据量,确保一致
SELECT FROM 核心表 LIMIT 10; 检查数据内容是否正常
```
3. 恢复故障生产数据库(应急场景)
若生产数据库故障,按以下步骤恢复(基于Hyper Backup):
1. 登录DSM→Hyper Backup→目标任务→“版本”→选择最近的可用备份版本;
2. 点击“恢复”→选择“恢复到原始位置”(或“恢复到其他位置”,避免覆盖);
3. 勾选“恢复应用程序数据”→“设置”,填写生产数据库服务器信息(与备份时一致);
4. 点击“应用”,等待恢复完成(期间停止数据库相关业务,避免数据写入);
5. 恢复后,登录数据库验证数据,重启相关业务服务。
六、常见问题解答:6类高频备份故障解决(官方方案)
1. Q:备份MySQL时提示“mysqldump: Got error: 1045: Access denied”,怎么办?
A:权限问题,解决步骤:
1. 检查NAS IP是否在MySQL授权列表:执行`SELECT Host, User FROM mysql.user WHERE User='backup_user';`,确认Host为NAS IP;
2. 重置备份用户密码:`SET PASSWORD FOR 'backup_user'@'NAS_IP' = PASSWORD('NewBackup@123');`,重新在Hyper Backup中配置密码;
3. 关闭MySQL防火墙:Linux执行`firewall-cmd --add-port=3306/tcp --permanent`,重启防火墙。
2. Q:备份PostgreSQL时提示“pg_dump: could not connect to database”,原因是什么?
A:远程连接配置错误,解决方法:
1. 检查`pg_hba.conf`是否添加NAS IP规则,且认证方式为“md5”(非“ident”);
2. 编辑`postgresql.conf`,确保“listen_addresses = ''”(允许远程连接);
3. 重启PostgreSQL服务:`systemctl restart postgresql`。
3. Q:备份SQL Server时提示“ODBC Driver not found”,如何处理?
A:NAS未安装ODBC驱动,解决步骤:
1. 确认套件中心已添加“Synology官方套件源”(步骤见方案3);
2. 重新搜索“ODBC Driver for SQL Server”,确保安装对应版本(如“ODBC Driver 17 for SQL Server”);
3. 安装后重启Hyper Backup,重新配置备份任务。
4. Q:备份完成后验证提示“数据不一致”,怎么排查?
A:可能是备份时数据库有大量未提交事务,解决方法:
1. 调整备份时间到业务低峰期(如凌晨2点,避免订单创建、数据写入高峰);
2. 在预备份脚本中添加“事务提交”命令(MySQL示例:`mysql -u root -p -e "FLUSH TABLES WITH READ LOCK; COMMIT;"`);
3. 重新执行全量备份,再次验证。
5. Q:增量备份占用空间越来越大,如何优化?
A:配置合理的保留策略,步骤:
1. 打开Hyper Backup→目标任务→“编辑”→“保留策略”;
2. 勾选“按时间保留”(如保留最近30天)+“按版本数保留”(如保留10个版本),两者取交集;
3. 勾选“删除过期备份时优化存储空间”(Btrfs文件系统支持,释放碎片空间)。
6. Q:能否通过Snapshot Replication备份运行中的数据库服务器?
A:支持,但需满足条件:
1. 数据库服务器需为Synology Virtual Machine Manager(VMM)中的虚拟机(Snapshot Replication仅支持虚拟机备份);
2. 虚拟机需使用Btrfs存储池,且开启“虚拟机快照一致性”(VMM→虚拟机→“编辑”→“快照”→勾选“应用程序一致性”);
3. 备份步骤:Snapshot Replication→“创建”→选择虚拟机→设置同步周期,其他与Hyper Backup类似。
总结
Synology完全支持备份运行中的数据库服务器,核心是“选对工具(Hyper Backup为主)+ 保障一致性(原生命令/事务日志)+ 定期验证”。不同数据库的备份差异主要在“授权方式”与“一致性工具”(如MySQL用mysqldump,PostgreSQL用pg_dump),需按官方适配方案操作,避免直接拷贝数据库文件导致备份无效。
若您在备份特定数据库(如MongoDB、Oracle)时遇到问题,或需要配置“跨地域异地备份”,可参考Synology官方文档(https://kb.synology.cn/zh-cn/DSM/tutorial/Can_I_back_up_servers_running_database_services)获取型号适配细节,或告诉我您的数据库类型与规模(如“50GB MySQL单机”“200GB PostgreSQL集群”),我帮您定制专属备份方案。
需要我为您整理一份运行中数据库服务器备份checklist吗?包含前提确认清单、分数据库操作步骤、一致性配置要点及恢复测试流程,方便您实操时逐点核对,避免遗漏关键环节?

地址:北京市海淀区白家疃尚品园 1号楼225
北京群晖时代科技有限公司
