比如SQLServer中的备份策略,Mysql中的sqldump、Oracle中的exp或者rman,db2的tsm备份等等。所有这些数据库的备份,按照正常一般企业的现有条件,大都是一天一备为主,备份时间一般都是选在晚上,在没有双机的条件下,这几种主要的数据库如果真发生服务器故障或者数据库不可逆的故障时,在恢复数据时,如何保证数据恢复的完整性? 因为平时我们备份也是把c盘的数据库数据备份到d盘或者其他盘。如果服务器坏了即使备份也没有用。各位仁兄有什么好的备份方法吗? 平时你们单位都是怎么实现数据库备份的?
首先,双机热备本身只是应用的高可用,对数据丢失没啥帮助。
其次,数据丢的少,靠定时备份的效果是比较差的。
建议是“实时备份”+定时备份,例如MySQL的mgr、Oracle的adg、mssql的镜像/AlwaysOn作为“实时备份”,文中提到的部分按照策略作为定时备份。或者使用第三方软件(以商用软件居多),使用CDP或者OGG类的方式作为实时备份, 并结合定时备份。
收起从减少数据丢失的角度看,方法还是很多的,不同的实现方法,成本相差也很大。
最省钱的方案,定时的截断数据库日志,然后传送到另外一台机器或者另外一个机房,那么最大的数据损失就是两次日志截断的时间产生的日志。
第二种方法是利用数据库的高可用功能,比如DB2 HADR,Oracle Dataguard,SQL SERVER Always On等,这些功能都可以达到秒级的日志损失。
第三种方案是利用存储的复制功能,这个相对更加复杂,投入和维护也比较麻烦,需要专业服务。
你说的双机热备如果指数据的话,可以通过基于数据库日志实现读写分离,数据库可以同时读,但写只能写一边,只要其中任何一边出现问题,就可以切换至另一边,以保障数据正常访问。像DB2 HADR,Oracle Dataguard都可以实现数据热备。
回答你第二个问题,数据备份是要实现数据隔离的,起到数据保护作用。而贵方设计的数据备份在同台机器上,是不符合数据备份要求,你需要把你的数据备份至其他机器上,这也就是建设独立的数据备份平台很有必要。我行是建设了独立的集中数据备份平台,对数据进行了隔离,并且备份了数据与日志,而不像贵方只备份了数据,没有备份日志,这样一旦数据出现逻辑错误,只能恢复至备份时间点,如果备份日志,就能避免你说的这些问题,可以恢复任何一个时间点,只是RTO长一点。
针对逻辑错误或者操作失误,除了备份还真的没有什么特别好的办法。CDP也不见得100%保证数据一致性,而且对系统性能和存储空间也由不小影响。
针对软硬件故障导致数据库不可用,有较多办法,最常见的例如双机热备,或者Dataguard、Logshipping、GoldenGate这种整库实时同步。
双机热备只是可以提高业务高可用!数据备份没啥帮助!
针对数据可以采用灾备设备,对业务是持续备份,定时备份,增量备份,多种方式相结合。
主要就是降低由于意外损坏导致数据丢失,那么就要保证你的备份节点越短越好!
收起双机热备只是解决硬件故障带来的业务停止及应用高可用问题的。
传统备份的问题:定时备份会丢一个周期的数据,数据恢复时间也很长。
想要数据基本基本零丢失,直接上想要数据基本基本零丢失,直接上CDP。开启实时备份+录像+快照,硬件故障,逻辑故障都可以解决,还能保障数据零丢失,业务不中断。