今天有个同事来问我关于一些数据库的相关知识,我本来想着直接找一篇博客给他了事了的,后来想想还不如趁此机会好好总结一下。
这里以SQL Server数据库的备份方式为例子(下文所讲的都是在完整恢复模式下备份)。
(一)完整备份
完整备份就是复制数据库的所有信息,通过单个完整备份,就能将数据库恢复到某个时间点。它是差异备份和事务日志备份的基础。
(二) 差异备份
差异备份不是独立的,它必须基于最新的数据完整备份。它是以上一次完整备份为基础的,差异备份只是备份了和上一次完整备份相比改变了的数据,相对来说比完整备份基础小,速度快。所以差异备份可以节省用户空间,加快备份进程,降低数据丢失风险。还原的时候:在恢复完整备份,然后是最新的差异备份。
(三) 事务日志备份
事务日志备份只备份事务日志里面的内,他是以上一次完整备份+事务日志备份为基础。事务日志备份的是某一段时间内数据库的变动情况,因此在进行事务日志备份之前,必须要进行完整备份。与差异备份类似,事务日志备份生成文件小,占用时间段,但是还原数据的时候,是先还原完整备份,然后还要依次的还原每个事务日志备份,而不是只还原最后一个事务日志备份(这个就是与差异备份的区别)
(四)用图说话
如果图片模糊,可以点击另存为在本地查看
(五)备份方式选择
一般情况下来讲,需要聘请运维人员进行专门运维的话,下面这个是最简单的备份计划。
1) 每周星期日的2:00:00执行数据库的完整备份;
2) 每周星期一至星期六每天的2:00:00执行数据库的差异备份;
3) 每天在8:00:00和23:59:59之间、每1小时执行数据库的日志备份;
4) 每个月的最后一个星期日的1:00:00执行数据库的完整备份;
特别提醒:还原之前,还需要做尾部日志备份。因为按照上面的计划,都是还原到小时的,那小时中间的数据可莪能就会丢失,所以要先做尾部日志备份。
所有的备份都是以保障数据安全为出发点的,然后根据具体情况具体分析。