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

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
量子位
aimingoo的专栏
aimingoo的专栏
V
V2EX
Vercel News
Vercel News
B
Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
S
Secure Thoughts
U
Unit 42
博客园 - 叶小钗
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
Help Net Security
Help Net Security
S
Security Affairs
Microsoft Security Blog
Microsoft Security Blog
W
WeLiveSecurity
博客园 - Franky
Forbes - Security
Forbes - Security
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Schneier on Security
Schneier on Security
I
InfoQ
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Webroot Blog
Webroot Blog
AWS News Blog
AWS News Blog
Last Week in AI
Last Week in AI
Security Archives - TechRepublic
Security Archives - TechRepublic
C
CERT Recently Published Vulnerability Notes
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
SecWiki News
SecWiki News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
J
Java Code Geeks

博客园 - jack_Meng

油候脚本中,使用GM_info对象,打印脚本信息 使用油候脚本,移除页面无法选择文字 高中免费电子教辅资料合集 Windows防火墙关闭445端口:Windows在防火墙禁用echo-reply(type 0)、time-exceeded(type 11)、destination-unreachable(type 3)类型的ICMP包 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 的命令和步骤。

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