Oracle DataGuard 数据同步技术及配置详解
一、DataGuard 数据同步技术
DataGuard 是 Oracle 数据库自带的数据同步功能,基本原理是将日志文件从原
数据库传输到目标数据库,然后在目标数据库上应用(Apply)这些日志文件,
从而使目标数据库与源数据库保持同步。 DataGuard 提供了三种日志传输
(Redo Transport)方式,分别是 ARCH 传输、LGWR 同步传输和 LGWR 异步
传输。在上述三种日志传输方式的基础上,提供了三种数据保护模式,即最大
性能(Maximum Performance Mode)、最大保护(Maximum Protection Mode)
和最大可用(Maximum Availability Mode),其中最大保护模式和最大可用模
式要求日志传输必须用 LGWR 同步传输方式,最大性能模式下可用任何一种日
志传输方式。
最大性能模式:这种模式是默认的数据保护模式,在不影响源数据库性能的条
件下提供尽可能高的数据保护等级。在该种模式下,一旦日志数据写到源数据
库的联机日志文件,事务即可提交,不必等待日志写到目标数据库,如果网络
带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。
最大保护模式:在这种模式下,日志数据必须同时写到源数据库的联机日志文
件和至少一个目标库的备用日志文件(standby redo log),事务才能提交。这
种模式可确保数据零丢失,但代价是源数据库的可用性,一旦日志数据不能写
到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭。
这也是目前市场上唯一的一种可确保数据零丢失的数据同步解决方案。
最大可用模式:这种模式在不牺牲源数据库可用性的条件下提供了尽可能高的
数据保护等级。与最大保护模式一样,日志数据需同时写到源数据库的联机日
志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交,
与最大保护模式不同的是,如果日志数据不能写到至少一个目标库的备用日志
文件(standby redo log),源数据库不会被关闭,而是运行在最大性能模式下,
待故障解决并将延迟的日志成功应用在目标库上以后,源数据库将会自动回到
最大可用模式下。
根据在目标库上日志应用(Log Apply)方式的不同,DataGuard 可分为 Physical
Standby(Redo Apply)和 Logical Standby(SQL Apply)两种。
Physical Standby 数据库,在这种方式下,目标库通过介质恢复的方式保持与源
数据库同步,这种方式支持任何类型的数据对象和数据类型,一些对数据库物
理结构的操 作如数据文件 的添加,删除 等也可支持。 如果需要, Physical
Standby 数据库可以只读方式打开,用于报表查询、数据校验等操作,待这些操
作完成后再将数据库置于日志应用模式下。
Logical Standby 数据库,在这种方式下,目标库处于打开状态,通过 LogMiner
挖掘从源数据库传输过来的日志,构造成 SQL 语句,然后在目标库上执行这些