DataGuard提供了两种不同的方法应用日志到standby数据库:Redo Apply (物理备库)、SQL Apply(逻辑备库)。

       DG的主要目标是保护数据库数据不会丢失。另一个目标是提供主从库之间的高度隔离。

物理备库:

     Redo Apply使用介质恢复的方法,从SRL中读出redo record放在内存中,然后直接应用change vectors恢复从库数据。主库和从库之间是块对块的物理复制品。介质恢复可以并发的对数据进行恢复,以提供更高的性能。在11g之间,物理备库的恢复只能在mount状态下进行,所以物理备库无法提供查询功能。11g引入了Active DataGuard 。使用数据库可以在应用日志的情况下,只读打开数据库。为业务提供只读查询。DG不但能保护数据,还能提供只读查询,从而提高了系统使用的效率。

Oracle学习之DATAGUARD(二) DG架构--应用服务_第1张图片

逻辑备库:

       将主库传过来的redo数据,通过LogMiner,将日志中的信息转换成sql语句。然后应用到数据库中。逻辑备库需要更多的进程、内存、CPU、IO等资源。SQL APPLY并发支持所有的数据类型比如XML对象、Oracle Spatial、Oracle Text等。

Oracle学习之DATAGUARD(二) DG架构--应用服务_第2张图片

 

SQL Apply的优势:

       比较灵活,从库可以读写的方式打开。允许对于主数据库无关的,已添加到本地的表进行数据的插入、删除和更新等操作。还允许创建主库上没有的索引和物化视图。