今日讨论话题1: DB2、Oracle、SQLServe、Mysql各数据库您有没有亲自动手利用备份,还原到故障前一秒的状态?这几种数据库还原时都是利用整点备份+日志进行恢复吗?
谁整理过具体案例的步骤?
用oracle做过这种案例。其它数据库没用过,但是原理应该是一样的,都是利用归档日志进行恢复。当对数据库有任何增删改操作时,还要对归档日志操作,只有归档完成,才认为一个事物的提交完成,也就是commit,否则认为事物失败要进行回滚,也就是rollback。通过这个机制,可以通过归档日志恢复数据库到任何时间点
收起DB2和oracle感觉几乎一样,都有归档日志,恢复到上次全库备份后,根据日志恢复到具体时间就行了
mysql貌似可以根据日志信息反向的把数据改回去,具体没试过~~~
sqlserver没玩过
在sqlserver上,有一种叫DBTwin的数据库双活集群软件,它确保每时每刻有两份实时一致的数据集,任何一个节点的失效(不管是数据库故障还是系统故障)都不影响另外一个节点的正常运行,数据零丢失,服务不停止。另外还有全自动读写分离负载均衡,防病毒木马,防误操作,防敏感查询,数据库审计,数据库监控等功能。
所有传统的备份或容灾方案,都是基于数据库日志或磁盘文件块复制技术,存在数据丢失,恢复时间长等问题。对于DBTwin而言,这些问题都不存在。
通常仅依靠备份是无法完成你需要的效果的,要依靠备份恢复到故障前最后一个可用的话,在Oracle和MySQL里面是需要备份文件和日志文件。(Oracle可能还需要控制文件)
假设故障包含数据库故障和系统故障,还原广度达到异机,通常使用的方案是容灾备份、各产品原厂有不同的方案,Oracle:ADG、stream;mssql :sql mirror、alwayson ;MySQL:MGR;DB2不会。
另外现在有较多基于CDC或者CDP方法的第三方软件可以覆盖你说的这几个数据库 达到故障前最后一个可用点:ogg、dsg、cdc、synball、info2 active等等等数不胜数。。。
另外还有开源软件(通常支持列表比不上商业软件,而且目的通常非做容灾复制,),例如otto、datax、tr、ts、databus等