运行数据库服务的服务器能备份吗?Synology ABB 安全备份方案

在企业 IT 运维中,很多管理员会困惑:“正在运行 MySQL、SQL Server 等数据库服务的服务器,能直接备份吗?会不会导致数据损坏?”—— 答案是可以备份,但需用支持 “数据一致性保障” 的工具,比如 Synology Active Backup for Business(简称 ABB)。若直接用普通备份工具拷贝数据库文件,易因数据读写冲突导致备份文件损坏,而 ABB 通过 VSS(卷影副本)、预备份脚本等技术,可在不中断数据库服务的前提下,实现安全备份。
本文基于 Synology 官方指南(参考链接:https://kb.synology.cn/zh-cn/DSM/tutorial/Can_I_back_up_servers_running_database_services),从 “核心答案→支持的数据库类型→前提准备→分数据库实操→注意事项→常见问题” 六个维度,手把手教你用 ABB 备份运行数据库服务的服务器,覆盖从配置到恢复验证的全流程,确保备份数据可复用、无风险。

一、核心答案:运行数据库服务的服务器能备份,但需满足 2 个关键条件

并非所有备份工具都能安全备份运行中的数据库服务器,用 Synology ABB 实现有效备份,需满足以下 2 个核心条件,缺一不可:
  1. 数据库服务支持 “在线一致性备份”:需数据库本身提供快照、事务日志等机制(如 SQL Server 的 VSS Writer、MySQL 的 binlog),或通过脚本临时冻结数据写入,避免备份时数据碎片化;
  1. 使用 ABB 的 “物理服务器整机备份” 或 “系统卷备份”:仅支持对服务器整机或包含数据库文件的系统卷进行备份,不支持单独备份数据库文件(文件级备份无法保障一致性)。
简单来说:只要你的数据库属于 ABB 支持范围(如下文清单),且配置了一致性保障方案,就能在数据库正常运行的情况下完成安全备份,无需停机。

二、明确范围:ABB 支持备份的数据库类型与版本

Synology 官方明确了支持备份的数据库类型及版本,若你的数据库不在清单内,需先迁移到兼容版本或采用其他备份方案(如数据库原生工具):
数据库类型
支持版本
一致性保障方案
关键限制
Microsoft SQL Server
2008 R2/2012/2014/2016/2019/2022
VSS 卷影副本(推荐)、事务日志备份
需启用 SQL Server VSS Writer 服务
MySQL
5.5/5.6/5.7/8.0
预备份脚本(冻结表)、binlog 增量
仅支持 InnoDB 引擎,MyISAM 需停机备份
PostgreSQL
9.6/10/11/12/13/14
pg_start_backup () 函数、预脚本
需修改 pg_hba.conf 允许备份账户访问
Oracle Database
11g R2/12c R1/R2/18c/19c
RMAN 备份集成、预脚本
需 Oracle 管理员权限(SYSDBA)
MongoDB
3.6/4.0/4.2/4.4/5.0
fsyncLock () 锁定、预脚本
副本集环境需备份主节点
特别提醒:MyISAM 引擎的 MySQL 数据库因不支持事务,无法通过在线方式保障一致性,需临时停止 mysqld 服务后再备份(或迁移到 InnoDB 引擎);Oracle 数据库需提前安装 RMAN 工具,并在 ABB 中配置 RMAN 备份参数。

三、前提准备:备份前必须完成的 4 项配置(避免失败)

在启动 ABB 备份任务前,需先完成数据库服务器与 NAS 的环境配置,这些步骤是保障备份成功的基础:

1. 配置数据库服务器的一致性保障方案

根据数据库类型选择对应方案,以下为 3 种主流数据库的配置步骤:

(1)SQL Server:启用 VSS Writer 服务(推荐)

  1. 登录 SQL Server 所在的 Windows 服务器,按下Win+R输入services.msc,打开 “服务” 窗口;
  1. 在服务列表中找到 “SQL Server VSS Writer”,确认 “启动类型” 为 “自动”,“状态” 为 “正在运行”(若未运行,右键点击 “启动”);
  1. 右键点击该服务→“属性”→“登录”,确认登录账户为 “Local System” 或具备 SQL Server 管理员权限的账户;
  1. 打开 “SQL Server Management Studio”,连接数据库后执行命令SELECT name, state_desc FROM sys.databases,确认所有数据库状态为 “ONLINE”(无 “RESTORING” 或 “OFFLINE”)。

(2)MySQL:创建预备份脚本(冻结表)

  1. 在 MySQL 服务器上新建文本文件,命名为mysql_pre_backup.bat(Windows)或mysql_pre_backup.sh(Linux);
  1. 写入以下脚本内容(根据实际账户密码修改):
# Windows脚本示例(需配置mysql环境变量)mysql -u root -p123456 -e "FLUSH TABLES WITH READ LOCK;"  # 冻结所有表,禁止写入mysql -u root -p123456 -e "SET GLOBAL read_only = ON;"     # 开启全局只读模式
# Linux脚本示例#!/bin/bashmysql -u root -p123456 -e "FLUSH TABLES WITH READ LOCK;"mysql -u root -p123456 -e "SET GLOBAL read_only = ON;"
  1. 给脚本添加执行权限(Linux:chmod +x mysql_pre_backup.sh;Windows:右键→“以管理员身份运行” 测试是否报错)。

(3)PostgreSQL:修改访问权限与备份函数

  1. 找到 PostgreSQL 配置文件pg_hba.conf(默认路径:C:Program FilesPostgreSQL14datapg_hba.conf);
  1. 添加备份账户的访问权限:在文件末尾添加host  all  backup_user  0.0.0.0/0  scram-sha-256(backup_user 为新建的备份账户);
  1. 重启 PostgreSQL 服务(Windows:服务中重启 “postgresql-x64-14”;Linux:systemctl restart postgresql-14);
  1. 登录 PostgreSQL:psql -U postgres,执行CREATE USER backup_user WITH SUPERUSER PASSWORD '123456';,创建具备超级权限的备份账户。

2. 安装 ABB 代理程序(数据库服务器端)

  1. 登录 Synology DSM→打开 Active Backup for Business→进入 “物理服务器” 页面;
  1. 点击 “添加服务器”→选择 “Windows/Linux 物理服务器”→下载对应系统的 ABB 代理程序(如 “ActiveBackupforBusiness_Agent_Windows_x64.exe”);
  1. 在数据库服务器上运行代理程序,按向导安装(默认下一步即可),安装完成后输入 NAS 的 IP、ABB 管理员账户密码,完成服务器添加。

3. 确认 NAS 存储空间充足

备份文件大小≈数据库服务器的系统卷 / 数据卷大小(含数据库文件),需确保 NAS 存储池可用空间≥备份目标卷大小的 1.2 倍(预留增量备份空间):
  • 查看方法:DSM→“存储管理器”→“存储空间”→查看目标存储池的 “可用容量”。

4. 测试数据库连接与权限

在 NAS 上通过 ABB 测试数据库服务器的访问权限:
  1. ABB→“物理服务器”→找到目标服务器→点击 “更多”→“测试连接”;
  1. 若提示 “数据库服务可访问”,说明权限正常;若提示 “拒绝访问”,需重新检查数据库账户权限(如 MySQL 的 root 账户是否允许远程连接)。

四、分数据库实操:用 ABB 备份运行中的数据库服务器(全步骤)

以下以 “备份运行 SQL Server 2019 的 Windows 服务器” 和 “备份运行 MySQL 8.0 的 Linux 服务器” 为例,详细讲解操作流程,其他数据库可参考适配。

场景 1:备份运行 SQL Server 2019 的 Windows 服务器(VSS 保障一致性)

步骤 1:创建 ABB 备份任务

  1. 打开 ABB→“物理服务器”→点击 “创建任务”→选择目标 Windows 服务器;
  1. 选择备份类型:勾选 “整个机器”(若仅需备份包含 SQL Server 的卷,可选择 “特定卷” 并勾选系统卷 + 数据卷);
  1. 设置备份目标:选择 NAS 上的备份共享文件夹(如 “ActiveBackupforBusiness”),建议新建子文件夹(如 “SQL_Server_Backup”)单独存储。

步骤 2:配置一致性保障(启用 VSS)

  1. 进入 “高级设置” 页面→勾选 “启用卷影副本 (VSS)”;
  1. 在 “VSS 组件” 下拉框中,勾选 “Microsoft SQL Server”(确保仅备份 SQL Server 相关组件,减少备份体积);
  1. 其他设置保持默认(如 “压缩备份”“加密备份” 可按需勾选),点击 “下一步”。

步骤 3:设置备份计划(避免业务高峰期)

  1. 勾选 “启用备份计划”→选择备份频率:“每日”(推荐)或 “每周”;
  1. 设置备份开始时间:选择数据库访问量低的时段(如凌晨 2:00-4:00);
  1. 增量备份设置:勾选 “启用增量备份”→设置增量频率(如 “每 6 小时”),基于全量备份生成差异数据。

步骤 4:启动备份并验证

  1. 点击 “完成”→在任务列表中找到该任务→点击 “运行”,手动触发首次全量备份;
  1. 备份过程中,可在 “日志中心” 查看进度(“备份日志”→“正在运行”),SQL Server 服务会正常运行(VSS 自动创建数据快照,不影响业务);
  1. 备份完成后,查看日志状态为 “成功”,且 SQL Server 数据库可正常读写(无 “备份导致卡顿” 问题)。

场景 2:备份运行 MySQL 8.0 的 Linux 服务器(预脚本保障一致性)

步骤 1:创建备份任务并关联预脚本

  1. ABB→“物理服务器”→“创建任务”→选择目标 Linux 服务器→选择 “特定卷”(勾选包含 MySQL 数据的卷,如/var/lib/mysql所在的/卷);
  1. 进入 “高级设置”→“预备份脚本”→点击 “浏览”,选择之前在 Linux 服务器上创建的mysql_pre_backup.sh脚本;
  1. 配置 “后备份脚本”(备份完成后恢复写入):新建mysql_post_backup.sh,写入mysql -u root -p123456 -e "SET GLOBAL read_only = OFF;",在 ABB 中关联该脚本;
  1. 勾选 “脚本执行超时时间”→设置为 “300 秒”(避免脚本卡住导致备份失败)。

步骤 2:设置备份计划与存储

  1. 备份计划:同场景 1,选择凌晨时段启动全量备份,每 8 小时增量备份;
  1. 存储设置:选择 NAS 的 ext4 格式存储池(支持快照,提升恢复速度),勾选 “启用备份验证”(自动检测备份文件完整性)。

步骤 3:运行备份与验证一致性

  1. 手动运行备份,查看 “日志中心”:确认 “预备份脚本执行成功”(显示 “FLUSH TABLES WITH READ LOCK 执行完成”);
  1. 备份完成后,登录 MySQL 执行SHOW GLOBAL VARIABLES LIKE 'read_only';,确认read_only值为 “OFF”(写入已恢复);
  1. 测试恢复:在 ABB 中选择该备份版本→“恢复”→“恢复到指定路径”(如/tmp/mysql_backup),查看恢复的ibdata1(InnoDB 共享表空间)文件大小与原文件一致,说明备份有效。

五、关键注意事项:避免备份风险的 5 个核心要点

  1. 禁止中断备份过程:备份时若强制停止 ABB 代理或重启数据库服务器,会导致数据库文件损坏(需用原生工具修复,如 MySQL 的mysqlcheck);
  1. 定期清理旧备份:通过 ABB “保留策略” 设置 “保留最近 30 天全量备份,最近 7 天增量备份”,避免 NAS 存储占满;
  1. 区分增量与差异备份:MySQL、PostgreSQL 建议用 “增量备份”(基于 binlog/pg_wald),SQL Server 用 “差异备份”(基于 VSS 快照差异),平衡备份速度与存储占用;
  1. 测试恢复流程:每月至少执行 1 次恢复测试(恢复到测试服务器),确认备份数据可正常启动数据库(避免 “备份成功但无法恢复” 的隐患);
  1. 升级 ABB 与代理:及时更新 ABB 套件(DSM “套件中心”→“更新”)和数据库服务器的代理程序,修复兼容性问题(如旧版本不支持 MySQL 8.0 的read_only参数)。

六、常见问题:备份运行中数据库服务器的 6 类故障解决

1. 备份 SQL Server 时提示 “VSS Writer 服务未响应”

  • 原因:VSS 服务依赖的 Windows 模块损坏,或 SQL Server 实例异常;
  • 解决:1. 重启 “SQL Server VSS Writer” 和 “Volume Shadow Copy” 服务;2. 执行vssadmin list writers,若显示 “SQL Server Writer” 状态为 “稳定”,重新运行备份;若状态异常,修复 SQL Server(控制面板→卸载程序→“更改”→“修复”)。

2. MySQL 备份后恢复的数据库无法启动

  • 原因:预备份脚本未正确执行FLUSH TABLES WITH READ LOCK,导致 InnoDB 表空间不一致;
  • 解决:1. 重新配置预脚本,在脚本中添加sleep 10(等待锁表生效);2. 恢复时使用 MySQL 的innodb_force_recovery=1参数(临时启动,导出数据后重建数据库)。

3. 备份 PostgreSQL 时提示 “pg_start_backup () 权限不足”

  • 原因:备份账户未授予 “SUPERUSER” 权限;
  • 解决:登录 PostgreSQL 执行ALTER USER backup_user WITH SUPERUSER;,重启 PostgreSQL 服务后重试。

4. 备份速度慢(低于 50MB/s)

  • 原因:数据库服务器与 NAS 网络带宽不足,或数据库正执行大量写入(如批量插入数据);
  • 解决:1. 升级网络至 10Gbps(NAS 与服务器直连);2. 调整备份时间,避开写入高峰期(如 SQL Server 的 ETL 任务时段)。

5. ABB 提示 “备份验证失败”

  • 原因:备份过程中网络丢包,或 NAS 存储块损坏;
  • 解决:1. 检查 NAS “存储管理器”→“硬盘”,确认无 “坏道”;2. 重新执行全量备份,勾选 “启用校验和”(增加数据完整性检测)。

6. Oracle 数据库备份时 RMAN 报错 “无法连接目标数据库”

  • 原因:ABB 中配置的 Oracle 账户无 SYSDBA 权限,或 TNS 监听未启动;
  • 解决:1. 执行grant sysdba to backup_user;授予权限;2. 启动 TNS 监听:lsnrctl start,在 ABB 中重新配置数据库连接字符串(如(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))))。

总结:运行数据库服务的服务器备份的核心逻辑

用 Synology ABB 备份运行中的数据库服务器,核心逻辑是 “先保障一致性,再执行备份”—— 通过 VSS、预脚本等技术冻结数据写入(或创建快照),避免备份时的读写冲突;再结合合理的备份计划与恢复测试,确保备份数据可用。
只要你严格按照本文的 “支持清单→前提配置→分步骤实操→注意事项” 操作,无论是 SQL Server、MySQL 还是 PostgreSQL,都能在不中断业务的情况下完成安全备份。若遇到复杂问题(如 Oracle RAC 集群备份),可参考 Synology 官方知识库原文,或联系技术支持提供数据库版本与 ABB 日志,获取针对性方案。
运行数据库服务的服务器能备份吗?Synology ABB 全流程指南【2025】

新闻中心

联系我们

技术支持

  • ·

    Synology Drive 我...

  • ·

    Synology Drive 与...

  • ·

    Synology Drive 内...

  • ·

    Synology Drive 同...

  • ·

    Synology删除文件后存储空...

  • ·

    Synology DSM 检查系...

  • ·

    Synology Drive能当...

  • ·

    Synology Docker容...

相关文章

地址:北京市海淀区白家疃尚品园             1号楼225

北京群晖时代科技有限公司

微信咨询

新闻中心