我们核心数据库目前使用oracle 12c,日常的备份策略是周全备,加上按天的归档备份,数据量比较大,全备一次将近一天,如果真出了问题,感觉恢复的时间根本接受不了,请问这种情况有什么好的解决办法吗?
收起这种情况其实挺常见的,对数据库的保护需要综合考量的,备份只是其中的一个手段,具体以下几点:
1. 我们需要确认自己数据库系统的rpo和rto,不同的要求需要不同的技术去匹配,可以参考下面的图:
2.数据库的故障类型也分很多种,举几个例子吧:
1)高可用的问题,可以通过集群来解决,如oracle rac,基于failover cluster的sql集群
2)物理介质问题可以通过存储raid或镜像技术来解决,如独立的磁盘阵列,asm镜像等
3)存储单点可以通过复制技术来解决,像是基于存储复制,或者Oracle DG,db2 hadr,MySQL主从复制等都是这种典型;
4)误操作的问题,就连这种问题也不一定非要用到恢复,比如Oracle 提供的闪回技术,db2Time Travel Query,MySQL的system versioned table等都可以合理利用起来,甚至有复制集群也提供类似的技术,比如db2 hadr Delayed Replay重演延迟
所以,从某种意义上来说,大部分情况下实际上是用不到停机停库做介质恢复的,那么备份还有存在的必要吗? 当然有了,备份是企业的最后一道防线,可以在极端的情况下发挥巨大的作用。有的情况下比如特殊企业的法规要求,企业自己测试开发环境的创建,都可以利用已有的备份环境来实现,可以将备份系统更好的利用起来,发挥更大的作用。