惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
H
Hacker News: Front Page
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cisco Blogs
P
Palo Alto Networks Blog
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
AWS News Blog
AWS News Blog
Spread Privacy
Spread Privacy
S
Schneier on Security
The Hacker News
The Hacker News
Cyberwarzone
Cyberwarzone
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Tailwind CSS Blog
S
Secure Thoughts
N
Netflix TechBlog - Medium
T
The Exploit Database - CXSecurity.com
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Help Net Security
Help Net Security
K
Kaspersky official blog
Google Online Security Blog
Google Online Security Blog
L
LangChain Blog
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
Hacker News: Ask HN
Hacker News: Ask HN
www.infosecurity-magazine.com
www.infosecurity-magazine.com
有赞技术团队
有赞技术团队
P
Privacy International News Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Recent Announcements
Recent Announcements
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Register - Security
The Register - Security
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
Recorded Future
Recorded Future
The Last Watchdog
The Last Watchdog
G
Google Developers Blog
T
Threatpost
小众软件
小众软件
S
Securelist
Recent Commits to openclaw:main
Recent Commits to openclaw:main
O
OpenAI News

博客园 - jack_Meng

WinForm 双屏开发中屏幕适配与窗口定位 高考志愿填报之计算机类专业院校报考指南(2026版) WebSocket 快速入门教程(附示例源码) 自动生成项目工具--AutoBuilder,一键干掉80%的重复CRUD工作 C#/.NET/.NET Core优秀项目和框架2026年5月简报 在Win10系统中,默认使用照片查看器 C#实现控制台多区域输出 解决: 您的连接不是私密连接,您目前无法访问 因为此网站使用了 HSTS 小说下载 网页版时间,可全屏显示 个人笔记本连接公共WIFI的安全措施 追更 HelloGitHub 一整年,年度盘点 基于Rust开发的m3u8下载器M3U8Quicker:支持断点续传、边下边播 新写了个直播录制工具,可录制抖音快手斗鱼直播 bing 每日一图 --- 桌面壁纸 一款基于 C# 开发的 Windows 10/11 系统增强优化工具 适合个人的免费域名 语雀里存了三年的笔记,导出到了本地插件----YuqueOut C# 也能像 Python 一样写脚本 | .NET 10 构建基于文件的应用 js 双击页面 开始/暂停 页面滚动 使用bat批量给txt追加内容 Python摄像头监控:运动检测+自动录像+时间水印 【译】告别繁琐查错:认识下新的 Visual Studio Debugger Agent Workflow 好消息,在 Visual Studio 中可以免费使用 GitHub Copilot 了! [C#] 零依赖高性能跨平台 Web 胶水库 -- PicoServer 我的第一款独立产品--TaskManager 写 EF Core 查询,优化查询语句 最新.NET新手入门学习网站合集(2026更新版) Avalonia UI:.NET 跨平台桌面开发的“真香”选择 一个 txt 生成并保存 mp3的 Python 脚本 开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf c# 常用且免费的 AI 编程工具 CodeGeeX,在vs 2019中使用的 AI 大模型工具 支持在 vs studio 2019中安装的 免费的 AI 辅助工具 .Net Framework 使用Lazy<T>延迟初始化对象 微软官网wpf例程源码下载地址 GitHub“神级”项目学习网址 开源协议介绍 Windows 窗体控件和等效的 WPF 控件 爬取七猫中文网小说 ASP.NET Core 内存缓存实战 CliWrap —— .NET 最优雅的命令行交互库 .NET 高级开发 | 设计、实现一个事件总线框架 一个基于 .NET Core + Vue3 构建的开源全栈平台 Admin 系统 C#/.NET/.NET Core优秀项目和框架2026年3月简报--工作流引擎 C# 如何减少代码运行时间:7 个实战优化技巧
sql server backup database
jack_Meng · 2026-04-16 · via 博客园 - jack_Meng

在 SQL Server 中,BACKUP DATABASE 命令是用于创建数据库备份的核心工具,是数据保护和灾难恢复最关键的手段。

下面我会从最基础的完整备份讲起,逐步涵盖差异备份、事务日志备份,以及一些重要的实践建议。

1. 核心命令:完整备份 (Full Backup)

完整备份会备份整个数据库的所有数据,是其他所有备份类型的基础。

  BACKUP DATABASE [你的数据库名]
  TO DISK = 'D:\Backups\你的数据库名_Full_YYYYMMDD.bak'
  WITH INIT, -- 覆盖现有备份文件,而非追加
  COMPRESSION, -- 压缩备份,节省空间,建议始终使用
  STATS = 5; -- 每完成5%显示一个进度信息

2. 差异备份 (Differential Backup)

差异备份只备份自上一次完整备份以来所有发生变化的数据。它比完整备份快得多,并且可以大大减少恢复数据时需要应用的事务日志数量。

  -- 前提:必须先存在一个完整备份
  BACKUP DATABASE [你的数据库名]
  TO DISK = 'D:\Backups\你的数据库名_Diff_YYYYMMDD.bak'
  WITH DIFFERENTIAL, -- 指定进行差异备份
  COMPRESSION,
  STATS = 5;

3. 事务日志备份 (Transaction Log Backup)

事务日志备份备份的是自上一次事务日志备份(如果没有,则从上一次完整或差异备份)之后发生的所有事务记录。它允许你执行时间点恢复(例如恢复到某个误操作发生前的5分钟)。

  -- 前提:数据库恢复模式必须是“完整”或“大容量日志”
  BACKUP LOG [你的数据库名]
  TO DISK = 'E:\LogBackups\你的数据库名_Log_YYYYMMDD_HHMMSS.trn'
  WITH COMPRESSION, STATS = 5;

重要提示:如果数据库的恢复模式是“简单”,则不能使用 BACKUP LOG 命令。

4. 恢复模式与备份策略的关联

你选择的恢复模式直接决定了你能做哪些类型的备份,以及如何进行恢复。

恢复模式支持的操作数据安全日志空间管理适用场景
完整 完整、差异、日志 最高:可恢复到任意时间点 需要定期备份日志,否则日志文件会持续增长,直至空间写满 生产环境、重要业务系统
大容量日志 完整、差异、日志 较高:无法恢复到特定时间点,只能恢复到日志备份结尾 批量操作(如 SELECT INTO)日志较小,性能好。日志备份后日志空间不会自动收缩 数据仓库,或批量操作频繁的数据库
简单 完整、差异 最低:只能恢复到完整/差异备份结尾 自动管理:每次检查点后自动截断日志,日志文件很小 开发、测试、只读或可重建的系统

5. 一个可靠的生产环境备份策略示例

对于生产数据库,建议的备份策略如下:

  • 恢复模式:设置为 “完整”
  • 完整备份每周一次(例如周日凌晨 1:00)。
  • 差异备份每天一次(例如周一至周六的凌晨 1:00)。
  • 事务日志备份高频率执行(例如每 15 或 30 分钟一次)。

这样配置的好处是,一旦发生灾难,你最多只会丢失 15-30 分钟的数据,并且恢复速度相对较快(先还原完整备份,接着还原最新的差异备份,最后依次还原差异备份之后的所有日志备份)。

6. 最佳实践与重要提醒

  1. 备份到不同的物理设备:绝对不要将备份文件存储在数据库文件所在的同一块硬盘上。应存储到另一块物理磁盘、NAS 或云存储上。
  2. 验证备份:定期使用 RESTORE VERIFYONLY 命令检查备份文件的完整性,或直接在测试环境进行一次完整的恢复演练。
  3. 使用压缩:SQL Server 2008 及更高版本支持备份压缩,能节省 60-80% 的磁盘空间,并通常能提高备份速度。
  4. 管理备份历史:备份文件会持续累积并占满磁盘。可以编写维护计划或脚本,自动删除 30 天或 90 天前的旧备份文件。
  5. 加密备份:从 SQL Server 2014 开始,可以使用 BACKUP DATABASE ... WITH ENCRYPTION 对备份文件进行加密,防止备份文件被盗后数据泄露。

7. 常用辅助命令

  • 查看备份历史

      -- 查看特定数据库的所有备份记录
      SELECT * FROM msdb.dbo.backupset
      WHERE database_name = '你的数据库名'
      ORDER BY backup_finish_date DESC;
  • 验证备份文件是否有效

      RESTORE VERIFYONLY FROM DISK = 'D:\Backups\你的数据库名_Full_20250101.bak';
  • 查看备份文件内容

      -- 查看备份文件里包含了哪些备份集
      RESTORE HEADERONLY FROM DISK = 'D:\Backups\你的数据库名_Full_20250101.bak';

总结

  • 日常维护:对于绝大多数生产数据库,将恢复模式设为 “完整”,并建立“每周完整备份 + 每天差异备份 + 高频日志备份”的策略。
  • 安全底线:请务必确保备份文件和数据库文件不在同一物理磁盘上。
  • 简单场景:对于开发库或测试库,使用 “简单” 恢复模式,只做完整备份即可,这样管理成本最低。

如果你需要了解如何还原这些备份文件,可以告诉我,我可以为你详细解释 RESTORE DATABASE 的命令和步骤。

=======================================================================================