上一篇
sql2012怎么导出数据库备份
- 数据库
- 2025-07-24
- 9
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 finished Overwrite 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
参数绕过验证(慎用)