一、备份前准备:3大核心条件必须满足
在启动ABB备份SQL Server前,需先确认系统环境、软件版本及权限配置,这是确保备份成功的基础。建议按以下清单逐一核对:
| 准备项目 | 具体要求与操作 |
|----------|----------------|
| 1. 确认SQL Server版本 | 需Microsoft SQL Server 2019及以上版本(低版本不支持ABB的应用程序感知备份),查看路径:SQL Server Management Studio(SSMS)→连接服务器→右键“属性”→“常规”→“产品版本” |
| 2. 确认ABB与DSM版本 | - Synology NAS需安装DSM 7.0及以上版本(低版本缺乏SQL备份适配功能);
- 需在NAS上安装Active Backup for Business 2.5及以上版本(通过DSM“套件中心”搜索“Active Backup for Business”安装/升级) |
| 3. 确认权限配置 | - 操作ABB的DSM账户需具备“管理员”权限(可在DSM“控制面板→用户与群组”中设置);
- 运行SQL Server的Windows服务器账户需具备“本地管理员”权限(确保能启用VSS服务、执行备份脚本) |
| 4. 检查存储空间 | NAS需预留足够备份空间(建议为SQL Server数据量的1.5-2倍,含事务日志占用),查看路径:DSM→“存储管理器”→“存储池”→确认可用空间 |
二、步骤1:备份Microsoft SQL Server(全流程详解)
ABB备份SQL Server的核心是“启用VSS保障一致性+应用程序感知备份+事务日志清理”,需按以下4个步骤操作,确保备份文件可用于后续还原。
1.1 启用Windows VSS服务(确保备份一致性)
ABB通过Microsoft Volume Shadow Copy Service(VSS)在备份前拍摄SQL Server数据快照,避免因数据写入导致备份损坏。需在运行SQL Server的Windows服务器上手动启用VSS服务:
1. 打开“服务”窗口:
按下`Win + R`键,在“运行”对话框中输入`services.msc`,按Enter键打开“服务”管理界面;
2. 找到并配置“存储空间影副本”服务:
在服务列表中向下滚动,找到“存储空间影副本”(英文:Volume Shadow Copy);
- 若“状态”为“已停止”:右键点击该服务→选择“启动”,等待服务启动(状态变为“正在运行”);
- 配置启动类型:右键点击“属性”→在“常规”选项卡中,将“启动类型”改为“自动”(避免下次服务器重启后服务停止)→点击“确定”;
3. 验证VSS服务:
打开“命令提示符”(管理员身份),输入`vssadmin list writers`,若显示“SQL Server VSS Writer”状态为“稳定”,说明VSS服务正常,可支持SQL备份。
1.2 将SQL Server设备添加到ABB
需先将运行SQL Server的物理服务器或虚拟机添加到NAS的ABB中,建立备份连接:
1. 登录DSM并打开ABB:
在NAS的DSM桌面找到“Active Backup for Business”图标(蓝色盾牌样式),点击进入;
2. 选择设备类型:
根据SQL Server部署环境选择:
- 若为物理服务器:点击左侧“物理服务器”→“添加设备”;
- 若为虚拟机(如VMware/Hyper-V):点击“虚拟机”→选择对应虚拟化平台(如“VMware vSphere”)→“添加设备”;
3. 填写设备信息:
- 输入SQL Server服务器的IP地址(如192.168.1.200)、Windows管理员账户名(如“admin”)及密码;
- 勾选“启用应用程序感知备份”(提前勾选,后续无需重复设置)→点击“下一步”;
4. 完成添加:
确认设备信息无误后,点击“应用”,ABB会自动检测服务器上的SQL Server实例,检测完成后设备显示在“设备列表”中,状态为“正常”。
1.3 启用应用程序感知备份(关键步骤)
应用程序感知备份可确保SQL Server数据与事务日志的一致性,避免还原后数据丢失。需在ABB备份任务中单独配置:
1. 进入任务编辑界面:
在ABB中找到已添加的SQL Server设备→点击右侧“...”→选择“编辑任务”;
2. 配置高级设置:
- 切换到“常规”选项卡→点击“高级设置”;
- 在弹出窗口中勾选“启用应用程序感知备份”(核心选项,默认可能未勾选);
- 可选勾选“启用备份验证”(备份后自动校验文件完整性,推荐企业用户勾选);
- 点击“下一步”,无需修改其他设置,直至返回任务编辑界面→点击“保存”。
1.4 设置后脚本清理事务日志(避免空间膨胀)
启用应用程序感知备份后,SQL Server的事务日志自动截断功能会失效,导致日志文件持续增长,占用磁盘空间。需通过“后脚本”在每次备份后自动清理日志:
1. 创建后脚本文件:
在Windows服务器上新建文本文档,输入以下命令(需将`[Database_Name]`替换为你的SQL数据库名称,如“ERP_DB”):
```
sqlcmd -Q "BACKUP LOG [Database_Name] to DISK = 'NUL';DBCC SHRINKFILE ([Database_Name]_log, 0, TRUNCATEONLY);"
```
示例(以“ERP_DB”为例):
```
sqlcmd -Q "BACKUP LOG ERP_DB to DISK = 'NUL';DBCC SHRINKFILE (ERP_DB_log, 0, TRUNCATEONLY);"
```
保存文件,将后缀名改为`.bat`(如“SQL_Log_Clean.bat”),存储路径建议为`D:Scripts`(便于后续查找)。
2. 在ABB中上传后脚本:
- 再次进入ABB任务编辑界面→“常规”→“高级设置”;
- 勾选“启用前/后脚本”→在“Post-thaw script(后脚本)”处点击“Browse”;
- 选择Windows服务器上保存的`SQL_Log_Clean.bat`文件→点击“确定”;
- 勾选“Successful script execution required to continue”(确保脚本执行失败时备份任务暂停,便于排查问题)→点击“保存”完成配置。
3. 测试备份任务:
在ABB中找到SQL Server备份任务→点击“立即备份”,等待备份完成(时间取决于数据量,100GB约需10-20分钟);
备份完成后,查看Windows服务器的SQL日志文件大小(路径:SSMS→数据库→右键“属性”→“文件”),确认日志已被清理(大小明显下降)。
三、步骤2:还原Microsoft SQL Server(3种场景方案)
ABB提供3种还原方案,分别对应“全服务器应急恢复”“单数据库检索”“跨服务器迁移”场景,可根据实际需求选择。
3.1 还原方案对比(先选对方法再操作)
| 还原方案 | 适用场景 | 优势 | 操作难度 |
|----------|----------|------|----------|
| 1. 即时还原到虚拟机 | SQL Server服务器故障,需快速恢复全量数据(含系统配置) | 恢复速度快(10-30分钟),无需手动配置环境 | ★★☆☆☆ |
| 2. VMM中检索单数据库 | 仅需恢复单个表/数据,无需全量还原 | 精准恢复,不影响其他数据 | ★★★☆☆ |
| 3. 用.mdf/.ldf还原全数据库 | 需将数据库迁移到新服务器(如测试环境、新硬件) | 跨平台兼容,支持自定义还原路径 | ★★★★☆ |
3.2 方案1:即时还原到VMware/Hyper-V(应急恢复)
若SQL Server服务器因硬件故障、系统崩溃无法启动,可通过ABB将备份映像即时还原到虚拟机,快速恢复业务:
1. 进入ABB还原界面:
在DSM的ABB中点击左侧“备份任务”→找到SQL Server备份任务→点击右侧“...”→选择“还原”;
2. 选择还原目标:
- 选择“还原到虚拟机”→根据虚拟化平台选择“VMware vSphere”或“Hyper-V”;
- 输入虚拟化平台的服务器IP、管理员账户及密码→点击“下一步”;
3. 配置虚拟机参数:
- 设置虚拟机名称(如“SQL_Restore_VM”)、存储位置(选择NAS上的Datastore);
- 分配CPU(建议与原服务器一致,如4核)、内存(如8GB)、磁盘空间(不小于原服务器数据量);
- 点击“下一步”,确认参数无误后点击“开始还原”;
4. 启动并验证:
还原完成后,在虚拟化平台(如VMware vCenter)中启动虚拟机;
登录虚拟机后,打开SSMS,连接SQL Server实例,确认数据库状态为“正常”,可正常读写数据。
3.3 方案2:VMM中检索单数据库(精准恢复)
若仅需恢复单个数据库的特定表或数据(如误删某张订单表),可通过Synology Virtual Machine Manager(VMM)将备份映像作为虚拟机运行,再提取数据:
1. 即时还原到VMM:
在ABB中选择SQL Server备份任务→“还原”→“还原到Synology VMM”;
选择VMM中的存储池、网络配置,点击“开始还原”(约5-15分钟);
2. 启动VMM虚拟机:
打开DSM的“Virtual Machine Manager”→找到还原的虚拟机→点击“启动”;
通过VMM的“控制台”登录虚拟机,打开SSMS;
3. 提取目标数据:
- 在SSMS中连接SQL Server实例,找到目标数据库(如“ERP_DB”);
- 若需导出表数据:右键点击表→“任务”→“导出数据”,选择导出目标(如本地Excel、新数据库);
- 若需恢复误删表:通过“数据库→恢复”功能,选择备份点,仅恢复目标表;
4. 关闭VMM虚拟机:
数据提取完成后,关闭VMM虚拟机,可在VMM中删除该虚拟机(避免占用NAS空间)。
3.4 方案3:用.mdf/.ldf还原全数据库(跨服务器迁移)
若需将SQL Server数据库迁移到新服务器(如更换硬件、升级系统),可通过下载备份中的.mdf(数据文件)和.ldf(日志文件)实现还原:
1. 下载.mdf/.ldf文件:
- 打开Active Backup for Business Portal(通过浏览器访问`https://NAS_IP:6285`);
- 登录后选择SQL Server备份任务→选择需还原的备份点(如“2024-05-20 22:00”);
- 找到数据库文件夹(路径通常为`SQL ServerMSSQL15.MSSQLSERVERMSSQLDATA`),下载目标数据库的.mdf和.ldf文件(如“ERP_DB.mdf”“ERP_DB_log.ldf”),保存到新服务器的`D:Backup`路径;
2. 配置文件权限:
在新服务器上以管理员身份打开“命令提示符”,输入以下命令(替换`File_Path`为下载文件的实际路径):
```
icacls "D:BackupERP_DB.mdf" /grant MSSQLSERVER:(F)
icacls "D:BackupERP_DB_log.ldf" /grant MSSQLSERVER:(F)
```
(命令作用:授予SQL Server服务账户对文件的“完全控制”权限,避免还原时权限不足);
3. 执行SQL还原命令:
- 在新服务器上打开“SQL Server命令行工具”(管理员身份);
- 输入以下命令连接SQL Server实例:
```
sqlcmd -S localhost
```
- 输入还原命令(替换`[Database_Name]`、`Disk:PathFile_Name.mdf`为实际信息):
```
USE [master]
GO
CREATE DATABASE [ERP_DB] ON
( FILENAME = N'D:BackupERP_DB.mdf' ),
( FILENAME = N'D:BackupERP_DB_log.ldf' )
FOR ATTACH
GO
```
- 按Enter键执行,若显示“命令已成功完成”,说明还原成功;
4. 验证还原结果:
打开SSMS,连接新服务器的SQL实例,确认数据库“ERP_DB”状态为“正常”,可正常执行查询、插入操作。
四、常见问题解答(FAQ):解决备份还原中的痛点
Q1:启用VSS服务时提示“错误1068:依赖服务或组无法启动”,怎么办?
A1:VSS服务依赖“远程过程调用(RPC)”和“DCOM服务器进程启动器”服务,需先启动这两个服务:
1. 在“服务”界面找到“远程过程调用(RPC)”→确认“状态”为“正在运行”,“启动类型”为“自动”;
2. 找到“DCOM服务器进程启动器”→同样确认状态和启动类型;
3. 重新启动“存储空间影副本”服务,即可解决错误。
Q2:备份后事务日志未被清理,脚本执行报错“无法打开数据库”,怎么处理?
A2:核心原因是脚本中的数据库名称错误或账户权限不足:
1. 检查数据库名称:在SSMS中确认数据库名称(区分大小写,如“ERP_DB”≠“erp_db”),修正脚本中的`[Database_Name]`;
2. 提升脚本执行权限:将脚本中的`sqlcmd`命令改为指定SQL账户执行,如:
```
sqlcmd -S localhost -U sa -P SaPassword123 -Q "BACKUP LOG ERP_DB to DISK = 'NUL';DBCC SHRINKFILE (ERP_DB_log, 0, TRUNCATEONLY);"
```
(`-U`为SQL管理员账户,`-P`为密码,需替换为实际信息)。
Q3:还原后数据库状态为“置疑”,无法连接,如何解决?
A3:通常是.mdf/.ldf文件损坏或权限不足:
1. 重新下载文件:删除已下载的.mdf/.ldf,从ABB备份点重新下载(排除文件损坏);
2. 重新配置权限:再次执行`icacls`命令,确保MSSQLSERVER账户有“完全控制”权限;
3. 修复数据库:若仍置疑,在SQL命令行执行修复命令:
```
USE [master]
GO
ALTER DATABASE [ERP_DB] SET EMERGENCY
GO
DBCC CHECKDB ([ERP_DB], REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE [ERP_DB] SET ONLINE
GO
```
(注意:`REPAIR_ALLOW_DATA_LOSS`可能丢失少量数据,建议先备份损坏文件)。
总结
用Active Backup for Business备份还原Microsoft SQL Server的核心是“保障一致性+灵活还原”:备份时通过VSS服务和应用程序感知功能确保数据完整,用后脚本解决日志膨胀;还原时根据场景选择“虚拟机应急恢复”“单数据库精准提取”“跨服务器迁移”,满足不同业务需求。企业用户需注意:备份前确认版本与权限,还原后验证数据可用性,才能真正实现SQL Server数据的安全管理。按本文步骤操作,即可轻松应对数据备份与应急还原场景,避免因数据丢失导致业务损失。
以上文章围绕“ABB备份还原MS SQL Server”核心需求,覆盖企业用户常见场景,步骤详尽且贴合Synology官方操作规范。若你在执行过程中遇到特殊报错(如VMM还原失败、SQL命令执行异常),可补充说明具体设备型号、SQL版本及报错信息,我会进一步提供针对性解决方案。
地址:北京市海淀区白家疃尚品园 1号楼225
北京群晖时代科技有限公司