上一篇
sql2012怎么导出数据库备份
- 数据库
- 2025-07-24
- 2994
SQL Server 2012备份数据库可通过右键数据库选择“任务—备份”,设置路径及文件名,建议定期执行完整备份或根据需求选择差异/日志备份类型
SQL Server 2012 数据库备份基础
备份类型说明
| 备份类型 | 适用场景 | 特点 |
|---|---|---|
| 完整备份 | 首次备份或需要独立恢复数据时 | 包含全部数据,恢复速度快 |
| 差异备份 | 在完整备份基础上,仅备份自上次完整备份以来发生变化的数据 | 减少存储空间,需配合完整备份恢复 |
| 事务日志备份 | 高频数据修改场景(如金融系统) | 记录所有事务操作,支持精确恢复 |
备份文件存储位置
- 默认路径:
C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackup - 自定义路径:建议存储在独立磁盘阵列,避免与数据库文件同盘
- 命名规范:
DBName_BackupType_YYYYMMDD_HHMMSS.bak(如:SalesDB_Full_20230724_153000.bak)
通过 SQL Server Management Studio (SSMS) 导出备份
步骤 1:打开备份向导
- 启动 SSMS,连接到目标数据库实例
- 展开对象浏览器中的 “数据库” → 右键点击需备份的数据库 → 选择 “Tasks” → “Back Up…”
步骤 2:配置备份选项
| 参数 | 说明 |
|---|---|
| Source | 自动显示当前数据库名称 |
| Backup Type | 选择 Complete(完整)、Differential(差异)或 Transaction Log |
| Destination | 点击 Add → 选择磁盘路径 → 指定文件名 |
| Backup Components | 勾选 Database 及 Log(根据需求) |
| Options | Reliability:启用 Verify backup when finishedOverwrite Media:选择 Overwrite all existing data 或保留历史版本 |
步骤 3:执行备份
- 点击 “OK” 开始备份
- 进度条显示完成后,查看 “Messages” 窗口确认成功状态
通过 T-SQL 脚本导出备份
核心语法
BACKUP DATABASE [数据库名]
TO DISK = 'C:备份路径备份文件.bak'
WITH NOFORMAT,
REANABLE,
NAME = '备份描述(如:Full Backup 20230724)',
SKIP,
NOREWIND,
COMPRESSION;
参数说明
| 参数 | 作用 |
|---|---|
NOFORMAT |
不重新格式化媒体(防止覆盖已有数据) |
REANABLE |
备份后使备份介质可重复使用 |
SKIP |
跳过验证错误(谨慎使用) |
COMPRESSION |
启用备份压缩(需 SQL Server 企业版) |
示例脚本
-完整备份示例
BACKUP DATABASE WideWorldImporters
TO DISK = 'D:SQLBackupsWWI_Full.bak'
WITH FORMAT,
NAME = 'WWI-Full Backup',
COMPRESSION;
-差异备份示例
BACKUP DATABASE WideWorldImporters
TO DISK = 'D:SQLBackupsWWI_Diff.bak'
WITH DIFFERENTIAL,
NAME = 'WWI-Diff Backup',
COMPRESSION;
-事务日志备份示例
BACKUP LOG WideWorldImporters
TO DISK = 'D:SQLBackupsWWI_Log.trn'
WITH NOREWIND,
NAME = 'WWI-Log Backup';
通过 PowerShell 自动化备份
脚本示例
# 定义变量 $instance = "localhost" $database = "WideWorldImporters" $backupPath = "D:SQLBackupsWWI_Full.bak" # 构建备份命令 $cmd = "BACKUP DATABASE [$database] TO DISK = N'$backupPath' WITH NOFORMAT, REANABLE, COMPRESSION" # 执行 SQLCMD 命令 Invoke-Sqlcmd -ServerInstance $instance -Query $cmd
定时任务配置
- 将脚本保存为
.ps1文件 - 在 Windows 任务计划程序中创建任务:
- 触发器:每天凌晨 2:00
- 操作:启动 PowerShell 执行脚本
- 条件:勾选 “唤醒计算机执行任务”
备份策略最佳实践
| 场景 | 推荐方案 |
|---|---|
| 日常运维 | 每周1次完整备份 + 每天1次差异备份(低负载系统) |
| 高并发系统 | 完整备份 + 每15分钟事务日志备份(金融/电商系统) |
| 灾难恢复 | 异地存储备份文件(如云存储) + 定期验证备份完整性 |
常见问题解答(FAQs)
Q1:如何验证备份文件是否可用?
A1:


- 在 SSMS 中右键点击数据库 → 选择 “Restore Database”
- 选择 “Device” → 浏览至备份文件路径
- 观察 “Restore Options” 中的 “Error Messages” 区域
- 若提示 “The backup set is valid”,则表示文件正常
Q2:备份时提示 “Exclusive Access” 失败如何解决?
A2:

- 检查是否有其他进程(如杀毒软件扫描)占用备份文件
- 在 SSMS 中启用 “Backup Checksum” 选项(可在选项中开启)
- 尝试指定无并发访问的专用存储路径
- 使用 T-SQL 脚本添加
SKIP参数绕过验证(慎用)
