数据库备份可以分为4个备份类型。
l 全备份(完整备份):创建备份完成时数据库内存在的数据的副本。
l 差异备份:只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。
l 日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。
l 文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。
不同的备份类型适用的范围也不同。全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。文件备份必须与事务日志备份一起使用,所以文件备份只适用于完全恢复模型和大容量日志记录恢复模型。
每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方式的配合来完成数据库的备份。
经常使用备份方式组合有以下几种:
l 全备份+差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份。
l 全备份+日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份。
l 文件组备份+日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。
恢复模式
SQL Server 提供三种可供选择的恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。
恢复模式是一个数据库属性,它用于控制数据库备份和还原操作基本行为。为每个数据库选择最佳恢复模式是计划备份和还原策略的必要部分。
查看恢复模式:
1.展开“数据库”,然后根据数据库的不同,选择用户数据库,或展开“系统数据库”,再选择系统数据库。
2.右键单击该数据库,再单击“属性”,这将打开“数据库属性”对话框。
3.在“选择页”窗格中,单击“选项”。
4.当前恢复模式显示在“恢复模式”列表框中。
5.也可以从列表中选择不同的模式来更改恢复模式。可以选择“完整”、“大容量日志”或“简单”。
简单恢复模式
特点:无日志备份。自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。
工作丢失的风险 :最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。
能否恢复到时点:只能恢复到备份的结尾
降低工作丢失风险:不影响备份管理的前提下时常备份,以免丢失大量数据。
适用范围(符合下列所有要求):
1.不需要故障点恢复。如果数据库丢失或损坏,则会丢失自上一次备份到故障发生之间的所有更新,但您愿意接受这个损失。
2.您愿意承担丢失日志中某些数据的风险。
3.您不希望备份和还原事务日志,希望只依靠完整备份和差异备份。
完整恢复模式
特点:需要日志备份。数据文件丢失或损坏不会导致丢失工作。可以恢复到任意时点(例如应用程序或用户错误之前)。
工作丢失的风险:正常情况下没有。如果日志尾部损坏,则必须重做自最新日志备份之后所做的更改。
能否恢复到时点:果备份在接近特定的时点完成,则可以恢复到该时点。
时点恢复:出现故障后,可以尝试备份“日志尾部”(尚未备份的日志)。如果结尾日志备份成功,则可以通过将数据库还原到故障点来避免任何工作丢失。
缺点:使用日志备份的缺点是它们需要使用存储空间并会增加还原时间和复杂性。
一般的备份策略:
1.首先完整备份数据库以及日志备份.
2.在日志备份后的某个时间,数据库发生错误.接下来 先备份活动日志
3.然后还原完整数据库备份和日志备份,但是不恢复数据库;
4.还原并恢复结尾日志备份。这样就完成了恢复待故障点,恢复了所有数据.
降低工作丢失风险:建议经常执行日志备份,以将工作丢失的风险限定在业务要求所允许的范围内。
适用范围(符合下列任一要求):
1.您必须能够恢复所有数据
2.数据库包含多个文件组,并且您希望逐段还原读/写辅助文件组(以及可选地还原只读文件组)。
3.您必须能够恢复到故障点
4.您希望可以还原单个页
5.您愿意承担事务日志备份的管理开销。
大容量日志会恢复
特点:需要日志备份。是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过使用最小方式记录大多数大容量操作,减少日志空间使用量。
工作丢失的风险:如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改,否则不丢失任何工作。
能否恢复到时点:可以恢复到任何备份的结尾。不支持时点恢复。
切换到该模式的必要性:对于某些大规模大容量操作(如大容量导入或索引创建),暂时切换到大容量日志恢复模式可提高性能并减少日志空间使用量。仍需要日志备份。
何时使用大容量日志恢复模式:仅在运行大规模大容量操作期间以及在不需要数据库的时点恢复时使用该模式。
建议在其余时间使用完整恢复模式。当完成一组大容量操作后,我们建议您立即切换回完整恢复模式。
各个模式之间的切换:
1.从简单恢复模式切换到完整恢复模式:
a.完成到完整恢复模式或大容量日志恢复模式的切换之后,立即进行完整数据库备份或差异数据库备份以启动日志链。
b.计划常规日志备份并相应地更新还原计划。
2.从完整恢复模式或大容量日志恢复模式切换到简单恢复模式:
需要中断备份日志链。因此,极力建议您在切换之前备份日志,这样可允许您将数据库恢复到该点。
3.在完整恢复和大容量日志恢复之间切换:
a.在切换到大容量日志恢复模式之前,先备份日志。
b.执行大容量操作之后,立即切换回完整恢复模式。
c.切换回完整恢复模式之后,再次备份日志.
具体切换的语句:
将数据库设置为完整恢复模式:
USE master;
ALTER DATABASE database_name SET RECOVERY FULL;
将数据库设置为大容量日志恢复模式:
USE master;
ALTER DATABASE database_name SET RECOVERY BULK_LOGGED;
恢复模式(Recovery Model)旨在控制事务日志维护。恢复模式说明了工作丢失的风险,能否恢复到时点?
SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。
相对于简单恢复模式而言,完整恢复模式和大容量日志恢复模式提供了更强的数据保护功能。这些恢复模式都是基于备份事务日志来提供完整的可恢复性及在最大范围的故障情形内防止丢失工作。通常,数据库使用完整恢复模式或简单恢复模式。
下面对三种恢复模式做一个比较:
恢复模式 日志备份 恢复点 优点 缺点 解决方案及建议 简单(Simple)
无日志备份。
自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。
最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。只能恢复到备份的结尾。
简单恢复模式可最大程度地减少事务日志的管理开销,因为不备份事务日志。
如果数据库损坏,则简单恢复模式将面临极大的工作丢失风险。数据只能恢复到已丢失数据的最新备份。
在简单恢复模式下,备份间隔应尽可能短,以防止大量丢失数据。简单恢复模式并不适合生产系统,因为对生产系统而言,丢失最新的更改是无法接受的。在这种情况下,我们建议使用完整恢复模式。
完整(Full) 需要日志备份。 理论上可以恢复到任意时点。 数据文件丢失或损坏不会导致丢失工作。
此模式完整记录所有事务,占用大量空间。 大容量(Bulk-logged)
需要日志备份。
如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改。 可以恢复到任何备份的结尾。不支持时点恢复。
该模式是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。通过使用最小方式记录大多数大容量操作,减少日志空间使用量。
比完整模式节省日志存储空间。
对于某些大规模大容量操作(如大容量导入或索引创建),暂时切换到大容量日志恢复模式可提高性能并减少日志空间使用量。由于大容量日志恢复模式不支持时点恢复,因此必须在增大日志备份与增加工作丢失风险之间进行权衡。
注意:
- 适合于数据库的恢复模式取决于数据库的可用性和恢复要求。
- 在完整恢复模式和大容量日志恢复模式下,必须进行日志备份。如果不想进行日志备份,则请使用简单恢复模式。
概念
完全备份:备份全部选中的文件夹,并不依赖文件的存档属性来确定备份哪些文件(在备份过程中,任何现有的标记都被清除,每个文件都被标记为以备份,换言之,清除存档属性),完全备份也叫完整备份。
差异备份:是针对完全备份,备份上一次的完全备份后发生变化的所有文件。(差异备份过程中,只备份有标记的那些选中的文件和文件夹,它不清除标记,即备份后不标记已备份文件,换言之,不清除文档属性)
增量备份:增量备份是针对于上一次备份(无论是哪种备份);备份上一次备份后,所有发生变化的文件,(增量备份过程中,只备份有标记的选中的文件和文件夹,他清除标记,换言之,清除文档属性)
事务日志备份:在特定事务日志备份之前执行的完整数据库备份和上次差异备份(如果有),在完整数据备份之后执行的所有事务日志备份或特定事务日志备份之前执行的差异备份(如果您还原了差异备份)。如果您设置了恢复模式为简单模式,你将无法使用【事务日志】备份。在SQL SERvER 2000 和2005:创建事务日志备份,你必须使用完整恢复和大容量日志记录恢复模式
部分备份:通过指定READ_WRITE_FILEGROUPS 创建的备份称为 【部分备份】。在简单恢复模式下,只允许对只读文件组执行文件组备份,还原的数据备份类型:数据备份,部分备份或文件备份,对于数据库备份或部分备份,日志备份的数据库备份或部分备份的结尾处开始延续,对于一组文件备份,日志备份序列必须从整组文件备份的开头开始延续
文件备份:包含一个或多个文件(或文件组)中的所有数据
日志链:连续的日志备份序列称为”日志链“,日志链从数据库的完整备份开始,通常,仅当第一次备份数据库时,或将恢复模式从简单模式切换到完整模式或大容量日志恢复模式之后,才会开始一个新的日志链。除非在创建完完整数据库备份时选择覆盖现有备份集,否则现有的日志链将保持不变。在该日志链保持不变的情况下,便可从媒体集中的任何完整数据库备份还原数据库,然后再还原相应恢复点之前的所有后续日志备份,恢复点可以是上次日志备份的结尾,也可以是任何日志备份的特定恢复点。