[3种方法] 如何创建 SQL Server 差异备份
2026-07-30
2026-07-30
2026-07-30
2026-07-30
数据保护是任何可靠数据库环境的基础。学习如何在 SSMS 中备份数据库是保护您的信息免受意外删除、硬件故障或系统错误影响的最有效方式。
本文提供了 SQL Server Management Studio 中数据库备份方法的实用指南,涵盖从简单的手动 GUI 点击和自定义 T-SQL 脚本到自动化计划备份。
在 SQL Server Management Studio (SSMS) 中备份数据库最直接的方式是使用图形用户界面 (GUI)——此方法适合偏好可视化操作而非编写代码的用户。
步骤 1:打开备份配置窗口
在 SSMS 对象资源管理器中,右键单击目标数据库,悬停在 Tasks 上,然后选择 Back Up… 以启动配置窗口。

步骤 2:配置常规备份设置
在
步骤 3:设置备份文件目标(关键步骤)
在

步骤 4:执行备份
单击窗口底部的

步骤 5:验证备份
导航到您选择的文件夹,验证
优点:
缺点:
对于需要更大控制权和速度的用户,脚本编写是在 SQL Server Management Studio (SSMS) 中进行数据库备份的首选方式。T-SQL (Transact-SQL) 让您绕过 GUI 菜单并即时执行备份。此方法高度灵活——脚本可以保存、重用,并可轻松修改以适应不同的数据库环境。
要执行标准完整备份,请在 SSMS 中打开”新建查询”窗口并使用以下脚本。此示例包含行业标准参数,以确保备份经过验证和压缩。
-- 1. 将 [YourDatabaseName] 替换为目标数据库的名称
-- 2. 将 DISK 路径更新为首选备份位置(本地磁盘/网络共享)
-- 3. 所有参数遵循 Microsoft 推荐的完整备份最佳实践
BACKUP DATABASE [YourDatabaseName]
TO DISK = N'D:\SQLBackups\YourDatabaseName_Full_' + CONVERT(VARCHAR(20), GETDATE(), 112) + '.bak'
WITH
-- FORMAT 覆盖现有备份文件,避免附加到过时备份上
-- 谨慎使用:删除目标备份文件中的所有现有数据
FORMAT,
-- MEDIANAME/NAME: 备份集的唯一标识符(便于在 msdb 中跟踪)
MEDIANAME = 'SQLServer_Full_Backups',
NAME = N'Full Backup of YourDatabaseName - ' + CONVERT(VARCHAR(20), GETDATE(), 120),
-- COMPRESSION: 减小文件大小(通常 30-70%)并加快备份/恢复速度
-- 注意:需要 SQL Server 2008 R2+ 标准版/企业版
COMPRESSION,
-- STATS = 10: 在 Messages 选项卡中显示进度更新(10%, 20%, ..., 100%)
STATS = 10,
-- CHECKSUM: 在备份期间验证页面完整性(早期检测损坏)
-- 与备份后的 VERIFYONLY 配合使用以确认文件有效性
CHECKSUM;
GO
-- 可选:创建后立即验证备份文件(对可靠性至关重要)
RESTORE VERIFYONLY
FROM DISK = N'D:\SQLBackups\YourDatabaseName_Full_' + CONVERT(VARCHAR(20), GETDATE(), 112) + '.bak';
GO
如果您需要一次备份所有用户数据库,此脚本会遍历您的实例并生成单独的带时间戳文件。
DECLARE @name VARCHAR(100) -- 数据库名称
DECLARE @path VARCHAR(200) -- 备份文件路径
DECLARE @fileName VARCHAR(256) -- 完整文件名
DECLARE @fileDate VARCHAR(20) -- 用于文件命名(时间戳)
-- 设置备份目录(调整此路径以匹配服务器的存储)
SET @path = 'D:\SQLBackups\'
-- 获取当前日期和时间以创建唯一文件名
SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112) + '_' + REPLACE(CONVERT(VARCHAR(20), GETDATE(), 108), ':', '')
-- 定义游标以遍历用户数据库
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.sys.databases
WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb') -- 排除系统数据库
AND state_desc = 'ONLINE' -- 仅备份当前在线的数据库
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.bak'
BACKUP DATABASE @name TO DISK = @fileName WITH CHECKSUM, COMPRESSION
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
优点:
缺点:
手动备份适用于一次性任务,但专业的灾难恢复策略依赖于自动化。在 SQL SSMS 中调度数据库备份可确保您的数据持续受到保护,无需每日手动干预。
在 SSMS 中,您有两种主要方法来设置此自动化备份工作流:SQL Server Agent 作业(适合基于脚本的可定制控制)或维护计划(适合简化、可视化的全合一体验)。
此方法使用方法 2 中的 T-SQL 脚本并按循环定时器运行。
维护计划适合希望使用引导式向导不仅处理备份,还处理文件清理的用户。
优点:
缺点:
虽然学习如何在 SSMS 中备份数据库是必要的,但随着环境增长,手动方法和基本脚本可能变得难以管理。对于即使几分钟数据丢失也不可接受的关键任务生产系统,像 i2Backup 这样的企业级解决方案在可靠性和效率方面提供了显著升级。
i2Backup 由 英方软件 提供,旨在提供一个集中式、自动化平台,远超标准计划作业。
从专家角度来看,从在 SSMS 中备份数据库过渡到使用像 i2Backup 这样的自动化工具,是从”被动”数据保护转向”主动”数据保护的转变。通过自动化”设置后即忘”的工作流,您降低了人为错误的风险,并确保您的 SQL Server 环境始终可恢复,无论是处理简单的意外删除还是全面的系统故障。
保护您的数据是任何数据库专业人员最重要的任务。无论您使用 GUI 的可视化简洁性、T-SQL 的速度,还是自动化计划的一致性,知道如何在 SSMS 中备份数据库可确保您的环境始终保持可恢复状态。
这在任何破坏性操作之前尤为重要。与表截断不同,像 SQL Server 中的 DROP DATABASE 这样的命令会永久删除整个数据库,且没有内置恢复选项。
为保持专业的灾难恢复策略,请始终验证备份并将副本存储到异地。对于管理复杂或大规模环境的用户,升级到像 i2Backup 这样的企业解决方案可以进一步简化数据库备份工作流,提供卓越的保护和安心。
问 1:备份时需要停止数据库吗?
不需要。SQL Server Management Studio 备份数据库操作是”在线”执行的。SQL Server 使用快照一致性机制,允许用户在备份进行期间继续读取和写入数据库,确保生产环境零停机。
问 2:如何测试我的自动化备份是否正常工作?
首先,右键单击 SQL Agent 作业并选择”Start Job at Step”以验证脚本无错误运行。更重要的是,定期在开发服务器上执行测试恢复。备份只有在您确认可以恢复后才是真正成功的。
问 3:i2Backup 备份 SQL Server 需要代理吗?
i2Backup 使用原生虚拟化 API 为 SQL Server 提供无代理 VM 备份(无需代理),对生产零影响。它兼容主流虚拟化平台,如 VMware、Hyper-V 等。
公告
邮件
销售