SQL Server 2016 备份与恢复完全指南
|
admin
2026年8月17日 18:16
本文热度 130
|
数据库是企业的核心资产,一次误操作或硬件故障就可能造成不可挽回的损失。SQL Server 2016 提供了成熟的备份与恢复体系,本文帮你从恢复模式、备份类型、脚本实战到最佳实践,快速建立可靠的数据保护策略。
一、三种恢复模式
恢复模式决定事务日志如何记录和维护,是备份策略的基础。
-- 切换到完整恢复模式 ALTER DATABASE [MyDatabase] SET RECOVERY FULL;
二、三种备份类型
- :只备份自上次完整备份后变化的数据页,体积小、速度快。
-- 完整备份(推荐启用压缩和校验) BACKUP DATABASE [MyDatabase] TO DISK = 'D:\Backups\MyDatabase_Full.bak' WITH INIT, COMPRESSION, CHECKSUM, STATS = 10;
-- 差异备份 BACKUP DATABASE [MyDatabase] TO DISK = 'D:\Backups\MyDatabase_Diff.bak' WITH DIFFERENTIAL, INIT, COMPRESSION, CHECKSUM, STATS = 10;
-- 事务日志备份 BACKUP LOG [MyDatabase] TO DISK = 'D:\Backups\MyDatabase_Log.trn' WITH INIT, COMPRESSION, STATS = 10;
三、恢复数据库
恢复时按顺序应用备份:完整 → 差异 → 事务日志。前面用 NORECOVERY 串联,最后一个用 RECOVERY 完成。
-- 1. 恢复完整备份 RESTORE DATABASE [MyDatabase] FROM DISK = 'D:\Backups\MyDatabase_Full.bak' WITH NORECOVERY, REPLACE, STATS = 10;
-- 2. 恢复差异备份 RESTORE DATABASE [MyDatabase] FROM DISK = 'D:\Backups\MyDatabase_Diff.bak' WITH NORECOVERY, STATS = 10;
-- 3. 恢复日志到指定时间点 RESTORE LOG [MyDatabase] FROM DISK = 'D:\Backups\MyDatabase_Log.trn' WITH RECOVERY, STOPAT = '2026-08-15T15:25:00';
四、SQL Server 2016 新特性
- :直接备份到 Azure Blob 存储,方便云端和异地容灾。
五、备份策略建议
六、最佳实践
- 启用
COMPRESSION 和 CHECKSUM,既省空间又能尽早发现数据损坏。
- 遵循 3-2-1 原则:3 份副本、2 种介质、1 份异地。
- 完整恢复模式下务必定期备份事务日志,否则日志文件会无限增长。
- 误操作后先备份尾日志(Tail-Log),再做时间点恢复,可挽回最后一批数据。
- 使用 SQL Server Agent 维护计划或自定义存储过程实现备份自动化。
七、写在最后
备份不是目的,可恢复才是。无论你选择哪种策略,都要记得定期验证恢复流程。灾难发生时,一份可用的备份比任何华丽的架构都更值钱。
该文章在 2026/8/17 18:30:52 编辑过