现在每天夜晚0点备份数据库,备份之前的所有数据,用的完整备份,那么到了第二天白天8点的时候(打个比方),如果数据库挂了,那0点到8点的这一段时间的数据就没有备份到,因为数据量大,备份频率不能太频繁,
现在的目的就是当数据库挂了之后能在最短的时间切换到备份的数据库上面去,但是又不能丢失数据,有没有什么办法可以同步正式数据库和备份数据库的?
我的想法是完整备份按照现有的模式做,中间再加一个差异备份,半个小时做一个差异备份,但是还原差异备份的文件的时候一定要有一个完整备份作为参考比较,也就是还原差异备份文件的时候要先还原完整备份,完整备份文件有30G左右,那还原要很长时间才行啊。
请教各位大神,有什么好办法能解决这个问题呢?
------解决思路----------------------
可以考虑日志备份。
------解决思路----------------------
对时间要求比较严格的话,可以考虑使用镜像。至于备份,该怎么备,还怎么备,备份日志不能少。
------解决思路----------------------
时间要求不严格的话,日志+备份吧------解决思路----------------------
可以用数据库镜像或日志传送功能,当故障时转移几乎是瞬间的事情.
------解决思路----------------------
如果要完全“不能丢失数据”,只能镜像。
如果可以接受一定的“丢失数据”,照你完整备份+差异备份的方式做好了。只要你把备份立即恢复到后备服务器,没必要等故障了再恢复,就可以马上切换了。
------解决思路----------------------
你可以看看镜像的特性
他就是通过事务传输的方式保持主体和镜像数据一致,也就是说可以做到本体down后切换到使用镜像库不会对业务造成任何影响。
缺点是你的镜像得一直开着,并且在主体down掉前无法充分利用他得性能,优点则是高可用
至于备份,你首先要理解,每个备份类型的特点,你使用得时候就可以灵活选择了
数据库full模式下先进行一次完整备份,再按一定周期做增量备份,若出现异常使用尾部日志备份,基本能实现回滚到任何时间点这个需求。
但是这样的备份方式有个问题,就是若你的数据更改频繁,备份文件会记录你的所有删除修改的历史,直接后果就是备份文件巨大,若增量备份频率低则log文件巨大,不过看你整个库30G,应该还是没有问题的。
按照你的数据量,估计一周一次完整备份,每日或者12小时一次增量备份比较合适
不过在极低几率下,尾日志备份时可能无法实现的。这时增量备份之间的时间段可能的数据丢失的时间范围,因为可能存在数据库的log文件都无法读写级别的异常,这时你的数据丢失时间最大可能性就是增量备份的周期。
所以完全不能丢失数据,并且要求高可用=选择镜像(这并不是说有镜像就可以完全不备份了,万一镜像服务器和你的数据库服务器一起挂了怎么办?例如大地区级的停电。所以定是的完整备份+差异还是不可少的)
可以允许一定程度的丢失数据=完整备份+差异备份+(异常时的日志备份)
------解决思路----------------------
这种思路就可以,常用的就是完整加差异,我目前也在研究这个问题。