在生活中,数据库管理员最担心的就是数据库瘫痪,从而造成数据丢失,任何数据的丢失都会造成非常严重的后果,所以我们为了更有效的保护和恢复数据,需要进行备份数据。
一般来说,造成数据的丢失主要包括几类:
1、程序错误:程序异常终止或逻辑错误
2、人为错误:管理员误操作
3、计算机失败:系统崩溃,硬件和软件引起的错误
4、磁盘失败:磁盘读写磁头损坏、磁盘物理块损坏
5、灾难和偷窃:自然灾害、人为偷窃都会造成
SQL server的备份有如下三种:
1、完整备份:完整备份包括对整个数据库、部分事务日志、数据库结构和文件结构的备份。它代表的是备份完成时刻的数据库。是所有备份类型的基础。
2、差异备份:是指对上一次完整备份之后所有更改的数据做备份,备份过程能够识别出数据库中哪一部分被修改了,并只对这一部分做备份。
差异备份的优势是速度快,备份数据库所需要的时间很少,但差异备份要求事先已经执行过一次完整备份。
3、事务日志备份:记录了数据库的所有改变,在备份事务日志时,需要考虑以下因素:
在执行了至少一次完整备份后,才能备份事务日志;
在简单恢复模式下不能备份事务日志;
如果没有与其相一致的数据库备份,则不能恢复事务日志。
在执行数据库事务日志备份期间,SQL server将做以下工作:
备份事务日志:从上一次成功的事务日志备份到当前事务日志的尾部;
截断事务日志:到事务日志活动部分的开始,丢弃不活动的部分。
事务日志备份主要是T-SQL语句,而不是整个数据库结构、文件结构或数据。
恢复模式也有三种:
1、简单恢复模式:在简单恢复模式下,不活动的日志将被删除,所以不支持事务日志备份。也正是因为不支持事务日志备份,数据库只能恢复到备份的时间点,而无法将数据库还原到故障点或特定的时间点。因此,简单恢复模式只适用于小型数据库和不经常改动的数据库。
2、完整恢复模式:对于十分重要的生产数据库,如银行、电信系统,在发生故障时可能要求恢复到历史上某个时刻,一旦发生故障,必须保证数据不丢失,保证数据能够恢复到发生故障的状态。这样,就必须采用完整恢复模式。
完整恢复模式可在最大范围内防止出现故障时丢失数据,它包括数据库备份和事务日志备份,并提供全面保护,使数据库免受媒体故障的影响。
由于支持事务日志备份,因此完整恢复模式可以将数据库恢复到任意一个指定的时间点。
3、大容量日志恢复模式:
DBA在某些场合需要对数据库执行一些大批量的数据插入、更新或删除等操作,如一次需要导入上百万条数据,如果在完整恢复模式下,那么这些操作将产生大量的日志记录,导致数据库性能很低。在这种情况下,可以采用大容量日志恢复模式来提高性能。
虽然大容量日志恢复模式会完整的记录其他事务,但它只对大容量操作进行最小记录,只要日志备份包含大容量操作,数据库就只能恢复到日志备份的结尾,而不能恢复到某个时间点或日志备份中某个标记的事务。
备份设备:
在进行备份时,一般是建立一个文件来存储备份的数据,这个备份文件就叫做备份设备,如图中的backup就是创建的一个备份设备:
注意:若想创建自动备份,那么SQL server代理必须启用:
创建备份计划:
右击“维护计划”,点击“维护计划向导”即可根据向导来进行做备份计划:
勾选要执行的工作:
定义详细信息:
设置自动清除历史备份:
由于每天对数据库进行备份,时间久了,其备份文件占用的磁盘空间也越来越大,通过修改维护计划,可以
所有的备份设置,最好在初次备份时,进行全面的检查,以确保备份的万无一失。
备份完毕之后,查看备份文件:
这里我们删除数据库中的表来模拟数据库数据丢失