SQL Server 备份sql
恢复模式数据库
SQL Server 数据恢复模式分为三种:完整恢复模式、大容量日志恢复模式、简单恢复模式。安全
完整恢复模式工具
默认的恢复模式,它会完整记录下操做数据库的每个步骤,使用完整恢复模式能够将一个数据库恢复到一个特定的时间点,这个时间点能够是最近一次可用的备份、一个特定的日期和时间的事务。性能
大容量日志恢复模式测试
它是对完整恢复模式的补充,就是要对大容量操做进行最小日志记录,节省日志文件的空间。spa
好比说一次在数据库中插入几十万条记录时,若是是完整恢复模式会记录每个插入动做,使日志文件变的很是大。在大容量日志恢复模式下,只记录必要操做,不记录全部日志,这样能够提升数据库性能。可是因为日志记录不完整,一旦出现问题,数据将可能没法恢复。3d
所以,通常只有在操做大量数据的时候才将恢复模式改成大容量日志恢复模式,在数据处理完毕后,立刻将恢复模式改回完整数据库模式。日志
简单恢复模式code
简单恢复模式下,数据库会自动把不活动的日志删除,所以简化了备份的还原,但由于没有日志备份,因此不能恢复到失败的时间点。一般,这个模式只用于对数据库安全要求不过高的数据库。而且数据库只能作完整和差别备份,没法使用事务日志备份。
数据库备份
SQL Server 提供了四种备份模式:完整备份,差别备份,事务日志备份,文件和文件组备份。
完整备份
备份整个数据库的全部内容,包括事务日志。该备份类型须要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据库时,也只要还原一个备份文件便可。
如:2015年1月1日 8点进行了完整备份,那么恢复数据的时候就是恢复到2015年1月1日 8点的数据。
差别备份
差别备份是完整备份的补充,只备份上次完整备份后更改的数据。相对于完整备份来讲,差别备份的数据量比完整数据备份小,备份的速度也比完整备份要快。所以,差别备份一般座位经常使用的备份方式。在还原数据时,要先还原前一次的完整备份,而后还原最后一次所作的差别备份。
如:2015年1月1日 8点进行了完整备份,在1月2日 和1月3日又分别进行了差别备份,那么1月2日记录的是1-2的数据,1月3日则是1-3的数据。所以在还原时,若是想回到3日的状态,须要先恢复完整备份,而后还原1月3日的差别备份便可。
事务日志备份
事务日志备份只备份事务日志里的内容,事务日志记录了上一次完整备份或事务日志备份后数据库的全部变更过程。事务日志记录的是某一段时间内的数据库变更状况,所以在进行事务日志备份以前,必需要进行完整备份。与差别备份相似,事务日志备份生成的文件娇小、占用时间较短,可是在还原数据库时,除了要线还原完整备份外,还要依次还原每一个事务日志备份,而不是还原最后一个。
如:2015年1月1日 8点进行了完整备份,此时对数据库作的全部改动都会按照时间分批存储在事务日志备份中,这样能够还原到某个时间点,使用SSMS能够自动完整相关时间链。
文件和文件组备份
若是在建立数据库时,为数据库建立了多个数据库文件或文件组,可使用该方式。使用文件和文件组备份方式能够只备份数据库中的某些文件,该备份方式在数据库文件很是庞大时很是有效,因为每次备份一个或几个文件,能够分屡次来备份数据库,避免大型数据库备份的时间过长。另外,当某个文件损坏时,能够只还原损坏的文件或文件组部分。
进行完整备份
备份完成后,去选择的目录中查看文件。
--完整备份 select count(*) from news --79647
此时插入测试数据,并执行差别备份
--插入测试数据 declare @index int = 1 while (@index <100) begin insert into news (title,content,datetime) values ('title' + cast(@index as varchar),'content',getdate()) set @index = @index +1 end select count(*) from news --79746
查看目录,文件已经变大了。
继续插入测试数据,并执行事务日志备份
--插入测试数据 declare @index int = 1 while (@index <100) begin insert into news (title,content,datetime) values ('title' + cast(@index as varchar),'content',getdate()) set @index = @index +1 end select count(*) from news --79845
目录下的文件又变大了,我就不截图了。
此时删除全部数据
--删除数据 delete news --0
SQL Server 还原
还原数据库时,若是必须还原一个完整备份、一个差别备份以及一个事务日志备份,则必须按照这个顺序来还原。
在还原数据库时,数据库处于一个不可用的状态,如此就能够添加后续的差别和事务日志备份了。
使用SSMS工具恢复,能够自动识别一个完整的备份链,从而根据指定的内容还原所有备份,还原后数据库就可用了。
select count(*) from news --79845
执行sql语句,数据还原到最后一次有效的事务日志备份了。
关于备份还有一个小东西,备份设置,能够设置好物理路径,存个逻辑名,备份的时候选择这个名字,不用去找路径。
惟一一点做用就是能够看里面详细的备份信息