SQL Server 2008备份策略设计上(五)

不管是数据库Dev仍是DBA,都但愿关键业务数据库的完整性和可用性能获得保障,数据库备份是一种不错的选择。SQL Server 2008支持不一样应用层次的多种备份方式,为咱们的业务数据提供了强有力的保障,这一篇博文就来探讨如何在SQL Server 2008下设计合理的备份策略。
为了设计合理的备份策略,首先要熟悉SQL Server 2008都支持哪些恢复模式,它支持的恢复模式有以下:
 
翻译后以下:
 
 
简单恢复模式:
在简单恢复模式下,只支持完整备份和差别备份,不支持事务日志备份。在简单恢复模式下还原数据库时只能还原到上一次数据库备份的数据,而上一次数据库备份之后的数据将没法进行还原,在发生灾难时,这些上一次数据库备份之后的数据必须重作。因此简单恢复模式并不适用于生产系统。另外在简单恢复模式下,因为事务日志会被截断,因此日志文件不会一直膨胀,很是小。
完整恢复模式:
完整恢复模式是微软建议在生产环境中使用的恢复模式。正常状况下(即能备份日志尾部)发生灾难进行还原数据库时,不会丢失任务数据。可是若是日志尾部损坏,则必须重作自上一第二天志备份或差别备份等以后所作的更改。在完整恢复模式下,全部的操做都会在日志中完整地记录下来。
大容量日志恢复模式:
大容量日志恢复模式简单地记录了大多数大容量操做日志(Bulk INSERT,CREATE INDEX,SELECT INTO),而不是记录所有大容量操做日志,因此这些大容量操做比在完整恢复模式下执行要快不少,同时大容量日志恢复模式完整记录了其余事务日志。因此大容量日志恢复模式是一种特殊用途的恢复模式,只应用于提升某些大规模大容量操做(如大量数据的大容量导入)的性能。完整恢复模式下有关备份的许多说明也适用于大容量日志恢复模式。
若是在最新日志备份后发生日志损坏或执行大容量日志记录操做,则必须重作自该上次备份以后所作的更改,不然不丢失任何数据。
另外设计合理的备份策略,还要熟悉SQL Server 2008都支持哪些备份类型,它支持的备份类型有以下:
 
 
翻译后以下:
 
 
完整数据库备份:
完整备份会备份数据库中的全部数据,以及能够恢复这些数据的足够的日志。它为差别、事务日志备份建立基准备份。在数据库底层上,完整备份其实是把全部页(page)复制到备份设备上。
差别数据库备份:
差别备份仅备份自上次完整备份后发生更改的数据。一般,创建基准备份以后执行的差别备份比基准备份更小,建立速度也更快。所以,使用差别备份能够加快进行频繁备份的速度,从而下降数据丢失的风险。一般,一个差别基准会由若干个相继的差别备份使用。还原时,首先还原完整备份,而后再还原最后一个的差别备份。
业务数据库运行一段时间后,随着数据库的更新,包含在差别备份中的数据量会增长。这使得建立和还原差别备份的速度变慢。所以,必须从新建立一个完整备份,为另外一个系列的差别备份提供新的差别基准。
一样,差别备份和完整备份相似,也会备份恢复数据的足够日志,这是由数据库系统控制的。
在数据库底层上,差别备份是备份自上次完整备份之后全部修改的区(extent)
部分备份:
部分备份与完整数据库备份相似,可是部分备份不包含全部文件组。部分备份包含主文件组、每一个读写文件组以及任何指定(可选)的只读文件中的全部数据。部分备份在但愿不包括只读文件组时很是有用。只读数据库的部分备份仅包含主文件组。
部分备份功能从SQL Server 2005开始引入。
建立部分备份时,必须在BACKUP 语句中指定 READ_WRITE_FILEGROUPS 选项。也能够指定任何只读文件或文件组,以便将其包括在部分备份中。
事务日志备份:
在完整恢复模式或大容量日志恢复模式下,须要按期进行事务日志备份。每一个日志备份都包括建立备份时处于活动状态的部分事务日志,以及先前日志备份中未备份的全部日志记录。在建立第一个事务日志备份以前,必须先建立完整备份(如完整数据库备份或一组文件备份中的第一个完整备份)。此后,必须按期备份事务日志。这不只能最小化工做丢失风险,还有助于事务日志的截断。一般,事务日志在每次常规日志备份以后截断。
连续的日志备份序列称为日志链。日志链从数据库的完整备份开始。一般,仅当第一次完整备份数据库时或者将恢复模式从简单恢复模式切换到完整恢复模式或大容量日志恢复模式以后,才会开始一个新的日志链。在完整恢复模式下(或者在大容量日志恢复模式下的某些时候),接二连三的日志链能够将数据库还原到任意时间点。
若要将数据库还原到故障点,必须保证日志链是完整的。也就是说,事务日志备份的连续序列必须可以延续到故障点。此日志序列的开始位置取决于所还原的数据备份类型:数据库备份(包括完整或差别备份)、部分备份或文件备份。对于数据库备份或部分备份,日志备份序列必须从数据库备份或部分备份的结尾处开始延续。对于一组文件备份,日志备份序列必须从整组文件备份的开头开始延续。
若是日志备份丢失或损坏,则可经过建立完整数据库备份或差别数据库备份并随后备份事务日志来开始一个新的日志链。若是要将数据库还原到事务日志备分内的某个时点,则建议保留丢失的日志备份以前的事务日志备份。
尾日志备份:
在完整恢复模式或大容量日志恢复模式下数据库发生灾难时,SQL Server 20052008能够备份日志结尾以捕获还没有备份的活动日志记录,把还原数据库操做以前对日志尾部执行的日志备份称为尾日志备份。
因此这里面有一点特别重要,在完整恢复模式或大容量日志恢复模式下一旦数据库发生灾难,还原数据库时,进行的第一步操做是尾日志备份(若是尾日志能备份的话),这样才不会丢失自上一第二天志备份(也多是完整或差别备份,主要是看用什么备份策略)后的数据。若是日志文件受损且没法建立结尾日志备份,则必须在不使用结尾日志备份的状况下还原数据库。最新日志备份(也多是完整或差别备份,主要是看用什么备份策略)后提交的任何事务都将丢失。
文件和文件组备份:
针对大型数据库和性能要求使完整数据库备份显得不切实际时,则能够建立文件备份。文件备份包含一个或多个文件(或文件组)中的全部数据。文件备份包括完整文件备份和差别文件备份。针对大型数据库能够分别备份和还原数据库中的文件,并且能够仅还原已损坏的文件,而没必要还原数据库的其余部分。
差别文件备份为建立当前文件备份提供了一种快速而且节省空间的方式。在简单恢复模式下,仅为只读文件组启用了差别文件备份。在完整恢复模式下,容许对具备差别基准的任何文件组进行差别文件备份。
文件和文件组备份增长了备份和还原的复杂度。
Copy_only备份:
仅复制备份能够在不打断正常备份序列的状况下复制数据库的内容,这个功能从SQL Server 2005开始引入。事务日志从不在仅复制备份后出现截断,这对平时DEVDBA仅想得到一份完整的数据库用于测试工做,而又不影响当前的备份序列很是方便。
 
敲文字敲到手软,哈哈,算是对恢复模式和备份类型的全面总结,由于恢复模式和备份类型对设计一种合理的备份策略过重要了,但愿对你们有用。下一篇继续写SQL Server 2008备份策略设计。
相关文章
相关标签/搜索