SQL Server 备份
前言
为什么要备份?理由很简单——为了还原/恢复。当然,如果不备份,还可以通过磁盘恢复来找回丢失的文件,不过SQL Server很生气,后果很严重。到时候你就知道为什么先叫你备份一次再开始看文章了。∩__∩。本系列将介绍SQL Server所有可用的备份还原功能,并尽可能用实例说话。
什么是备份?SQL Server基于Windows,以文件形式存放资料,所以备份就是Windows上SQL Server相关文件的一个某个时间点的副本。根据备份类型的不同,副本的种类和内容也有不同。
备份类型有哪些?SQL Server 目前版本中,可用的备份类型有:完整数据库备份、差异数据库备份、事务日志备份(后称日志备份)、文件和文件组备份、部分备份,根据SQL Server版本不同,有些备份类型不支持,另外根据恢复模式的不同,某些备份类型也不支持。
什么是恢复模式?
很多人只把关注点放在备份上面,而没有在意恢复模式,其实所有的备份都应该从恢复模式作为切入点。恢复模式实际上是一个控制备份还原的行为的数据库级别选项。SQL Server 在当前所有发布版本中只有三种恢复模式:简单恢复模式(后面简称简单模式),大容量日志恢复模式(后面简称大容量模式),完整恢复模式(后称完整模式)。
本文从恢复模式开始,提醒一下,绝大部分的专业属于都会陆续解释,如果读者有不明白,可以继续往下看或者上网搜索:
1.简单模式,Simple recovery model:某些操作可以被最小日志化。这种模式下,不支持日志备份、时间点恢复和页恢复。且文件恢复功能仅限于次要数据文件中的只读文件。
2.大容量日志模式,Bulk-logged recovery model:和完整模式类似,有时候可以理解为完整模式于简单模式的过渡模式。这种模式对某些大容量操作进行最小日志化,支持完整备份中的备份还原策略,但是由于某些操作被最小日志化,所以不能保证时间点恢复。
3.完整模式,Full recovery model: 在这个模式下,所以操作都被完整记录下来,并且支持所有类型的备份还原策略。
默认情况下,新库会继承Model库的配置,包括恢复模式,也就是FULL模式。可以在创建或日常使用过程中修改,并且不需要重启服务。恢复模式最重要的区别在于对待日志的行为。
简单模式:
是三种模式中最容易管理的,可以进行完整,差异和文件备份,但是不能做日志备份。在这种模式下,每当Checkpoint 进程发生时,会自动把日志文件中不活动的日志(在日志备份一文介绍)写入数据文件,写入后,对应的日志文件中的空间就可供新事务使用,注意这种空间重用或者截断并不自动减少日志文件的物理大小,如果需要减少空间,需要使用DBCC SHRINKFILE/DATABASE等命令实现。让日志空间重用的过程叫做截断。在简单模式下这个过程称为自动截断(auto-truncate)。在这种模式下,日志通常不需要管理,但是对于单个的大事务,日志文件可能会增长得很快,这种情况下最好把批处理降为小的批。简单模式最主要的限制是不能进行日志备份,也就是说无法进行时间点还原。在一些测试,开发或者SLA要求不严格的环境下,可以使用这种模式。
新闻热点
疑难解答