我的数据库备份还原策略
拥有时,不知珍惜,
失去时,后悔莫及,
世间最缺少的便是这后悔药。
数据库已经成了现在大多数信息系统中的必备配置,其中存储的数据的重要性就更不必赘述了,
我们深知数据存在的价值,也深知数据失去时的无奈与迷茫,犹如失恋那般。
然而,数据丢失这样的事情却是时时刻刻都在发生,就在我们的中间,也许没有亲身经历过失去的痛苦,
说得再多也是枉然。如此看,我上面的话也是废话,不再多说。
我们的一个项目用的是SQL Server2005的数据库,单独的数据库服务器,上线运行一个月,数据文件
达到了四百多M,这中间,我们只是手工做过两三回的数据库完全备份。然而有一天,因为一个疏忽,
delete * from photos,忘记了删除条件,于是乎,整个的photos表的数据被清空,我们不由得惊出了一身的冷汗。
最后,使用一个软件Log Explorer总算恢复了被删除的数据。
教训是惨痛的,也是必须要总结的,最终的解决方案自然是做一个备份还原的策略。数据库的备份还原策略
也是因不同的系统而不同的,最重要的依据是我们对数据丢失的容忍程度。
我们的系统是一个用户上传、分享照片的系统,可以说每一两分钟就有会员注册以及上传图片, 这就要求
数据备份的频度要足够的高。为此,我们采取了SQL Server的完全备份、差异备份和日志备份相结合的方式 。
完全备份会对整个数据库数据进行备份,因此需要的时间最长,消耗的资源最多,需要的磁盘存储空间也最多,
同时会对正常运行的数据库产生一定的影响。所以,最好是在夜深人静的时候,悄无声息的执行。
差异备份,是针对上次完全备份以来所变更的数据。这里要强调一下,不管有几个差异备份,他们之间不是相互依赖的,
而是都依赖于最近的那次完全备份。它的有点是备份的数据少,需要的时间短。
日志备份,是对数据库的操作日志进行的备份, 也就是通过日志备份,我们能够了解到数据库操作的整个历史记录,
而不仅仅是最终的一个结果,这一点非常重要。 通过日志备份,我们能轻松的将数据库还原到任何一个时间点上。
针对不同备份方式的特点,我制定了自己的备份策略:
1)每天晚上12点,执行完全备份
2)每四个小时(4点、8点、12点、16点、20点),执行5次差异备份
3)每10分钟执行一次日志备份。
一个多月过去了,期间也在其他的服务器上还原过数据库,
一切正常。现在的问题是,备份的数据仍然保存在数据库服务器上,这一点也不是很放心,下一步打算把数据备份到其他的服务器上。