数据库备份方式概述
为了防止意外删除,自然灾害等造成的损失,数据库备份是必须要的。数据库备份还可以用于mirror,replication等过程。了解数据库备份的原理对于处理数据库备份尤为重要。
以下关于备份的概述只是前段时间兴起而写,由于太忙便疏于整理。对于sql Server的备份若无第三方软件,只是靠backup、restore本人认为在压缩或者是速度、网速上都存在一定局限,然而在有限的条件下,如何利用到最高则是我们DBA需要考虑的。由于微软提供了多种备份方式,如何根据公司的具体情况,采用合理的备份策略是DBA的首要工作;选择好备份策略如何实现自动化备份,如何实现自动化备份,如何管理备份文件。这一系列的处理,后续再说。
Sql server 提供了11种数据备份方式;三种备份级别都合适所有的恢复模式。若需取得数据文件,微软建议是sp_detach_db ,停止sql server 或其他方式取得的文件微软并不支持,不能保证一定能附加成功。
完整数据库备份过程概述
以下简单描述了全备份的基本过程:
1、完整备份需要执行checkpoint,但是在full模式下,并不会截断事务日志2、完整备份包含部分的日志备份,然而在执行这部分日志备份期间做的修改并不会被备份
3、在复制数据,读取GAM数据页之后,复制的区已经决定了,之后分配的新区不会被备份。(之后新增的数据区不会被复制)
4、全备份记录的Database_backup_lsn是指最近一次全备份的checkpoint_lsn,差异备份的时候才会有用。
数据库日志备份过程概述
1、日支备份不会触发checkpoint的执行2、database_backup_lsn并不会有所变化。
3、大容量日志恢复模式下,在未执行大容量操作的时候,备份与full模式相同;在执行过大容量操作后,日志备份包括大容量操作的相关数据库备份。如下图所示
文件备份概述
用于备份数据库一个或多个文件或文件组中的所有信息。文件备份在默认情况下包含足够的日志记录,可以将文件前滚至备份操作的末尾。
可更快速恢复数据库,例如位于不同磁盘的文件,若其中有一个磁盘损坏,则可通过文件备份仅恢复此文件,而不用还原整个数据库。
在简单恢复模式下,文件备份实质上仅限于只读辅助文件组。因此可通过部分备份备份所需备份。
backup database chhuang file='chhuang' to disk ='D:\chhuang20130304.bak'
部分备份概述
部分备份包括数据库中的所有读/写文件:
1、所有非只读的数据库文件或文件组
2、指定的只读文件组,若没有指定备份某个只读文件,则默认只备份所有非只读的文件或文件组
--脚本示例,文件包括(chhuang,chhuang_log,chhuang_1[只读]) --默认所有非只读文件 BACKUP DATABASE chhuang READ_WRITE_FILEGROUPS--部分备份 ,file='chhuang_1'--若‘chhuang’是只读文件,则需指定该文件 TO disk ='D:\chhuang20130304_options.bak'
仅复制备份概述
为了特殊用途的备份,而不影响正常备份过程的临时备份。仅复制备份是独立于定期计划的常规备份而创建的。仅复制备份不会影响数据库的总体备份和还原过程。
完整备份:COPY_ONLY 选项创建的完整备份不能用作差异基准。差异位图不会被更新,如果将 DIFFERENTIAL 与 COPY_ONLY 一起使用,则忽略 COPY_ONLY,将创建差异备份。
日志备份:该备份不会截断事务日志。仅复制日志备份对日志链没有任何影响,msdb记录日志备份信息。