在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到“在这个项目中用ADG进行数据实时备份,ADG比DG更好!”。究竟ADG作Oracle数据灾备的优势在什么地方?
一、ADG主要解决了DG时代读写不能并行的问题
DG时代的数据同步方式如采用Redo Log的物理方式,则数据库同步数据快、耗用资源低,但存在一个大问题。
Oracle 11G以前的Data Guard物理备份数据库,可以以只读的方式打开数据,但这时日志的数据同步过程就停止了。而如果日志的数据同步处于执行过程中,则数据库就不能打开。也就是日志读、写两个状态是互相排斥的。而Active Data Guard则是主要解决这个问题。
二、Oracle具有闪回数据库的功能,避免删表等误操作造成无法挽回
当主数据库打开并处于活动状态时,事务处于处理状态,生成Redo Log数据,并将其传送到备用的数据库中,正常情况下,可以做到秒级的数据同步。但如果在主用数据库上执行一个错误的命令,如drop database,则所有备用数据库中的数据也会被删除。
Oracle DG提供了易于使用的方式来避免这种用户错误。DBA可以在主数据库、备用数据库中同时使用闪回数据库功能,以快速将数据库恢复到一个较早的时间点上,从而取消这个误操作。
另外,Oracle还提供了延时执行备份数据库同步的功能,这样又是另一种方式防止误操作。
三、Oracle的DG、RAC一般是联合使用
RAC主要解决系统应用的故障,它不提供数据故障的快速、自动恢复,它还提供数据库应用的伸缩能力,提供应用级的保护。
DG只提供数据的备份、恢复能力,提供数据级的保护。
四、建议使用DG做数据实时同步,而不是第三方的磁盘copy工具
原因三点:
1、DG具有延时写入数据功能,可以避免误操作,而第三方工具没有。
2、DG传输的数据量更小,而第三方工具的所需的带宽更高。
3、实战中的坑:有些第三方工具的磁盘同步最小单元与Oracle的最小磁盘单元不同,造成异常故障时,备份数据库无法启用,这非常吓人。