Dataguard介绍
Dataguard作为专门保护Oracle数据,可提供最高级别的数据保护和可用性的同时,使Oracle保持最卓越的性能。
Oracle Dataguard的配置为一个primary数据库和一个或者多个standby数据库的组合。Dataguard的运行遵循一个简单原则,主库传输重做数据到备库,然后备库进行应用重做数据,备库处于连续恢复状态,验证并应用重做数据,从而与主库保持同步。
重做的含义
重做是Dataguard操作的核心,Oracle对于重做的定义为:一个重做记录由一组变更向量构成,每个向量描述数据库中一个数据块的变化。例如,如果更改了雇员表中的薪水值,就生成了一个重做记录,其中包含多个更改向量,来描述撤销段数据库、撤销段的事务表以及表的数据块的变化。
重做记录包含重新生成数据库更改所需的所有信息。在戒指恢复期间,数据库将读取重做记录中的更改向量,并为相关数据块应用更改信息。
DataGuard 的服务
重做传输服务Redo transport service
重做传输服务协调从主数据库到备用数据库的重做数据传输过程。主数据库的LGWR日志写入进程将重做数据写入到自己的联机日志中,一个独立的DG进程从SGA的redo buffer cache中读取信息,交由OracleNet服务传输到备库,这个进程是Log Network Server (LNS),LNS进程个数是根据DG架构中备库的数量决定的,如果有2个备库的话,主库就会有2个LNS进程处于活动状态。DG架构允许将重做数据从一个主数据库直接传给一个或最多9个备库。由LNS传输的重做记录在备库由另一个DG进程Remote File Server(RFS)接收。RFS在备库上接收重做数据后将其写入Standby redo log中。
重做传输服务支持使用LNS进程的重做传输方法:同步SYNC重做传输和异步ASYNC重做传输。主要的差别是同步重做传输中LGWR需要等待LNS的通知确认传输完成才能向用户发送提交确认信息,这种机制虽然可以确保德宝数据库提交确认的每个事务都已经收到保护,但是这样会影响主数据库的性能,因为LGWR需要等待LNS的通知才能继续下一个事务。而异步重做传输就不必等待LNS的确认消息,这样就几乎不会影响到主库的性能。如果考虑网络延迟的情况,使得先前事务的重做数据不能立即传给备用数据库,LGWR将继续确认提交操作成功完成,如果LNS赶不上正常情况下的读取重做缓冲区的流程,在将重做数据传给备用库前就回收了日志缓冲区,LNS将自行转为荣联机日志读取和发送重做数据(11g开始提供此功能)。当LNS赶上正常进度后,将自行转回到直接从重做日志缓冲区中读取和发送。ASYNC唯一的不足之处是增加了数据损失的风险,在使用ASYNC时,应该提供足够大的网络带宽来处理峰值期间高速生成的重做数据,可以最大限度地降低数据损失的风险。
应用服务
DG提供两种不同的方法在备用库上应用重做数据,Redo Apply和SQL Apply。DG的宗旨是防止丢失数据,所以DG的设计目标就是让备用库成为主库的同步副本,实现对整个数据库的单向复制。DG第二个目标在高度分离主库和备库,以免主库上发生的问题影响到备库,进而危及数据的保护和可用性,反之备库发生问题也是。DG第三个目标是在主库出现故障时提供数据可用性和高可用性。RedoApply和SQLApply都能讲一个同步备库快速转换为主库,这样主库出现计划内外中断后保护数据和恢复可用性。
Redo Apply(Physical standby)
当备库RFS进程接收来自主库的Redo数据后将其写入Standby Redo log,然后一个名为MRP的介质恢复进程和多个并行应用进程应用和恢复重做数据。11g企业版中提供了ACTIVE DATAGUARD实时应用查询功能,可用打开备库只读模式提供查询服务,这样可以在介质恢复的同时缓解主库的查询压力。
SQL Apply(Logical standby)
SQL Apply使用逻辑备用进程(LSP)将更改协调应用于备库。SQLApply的多个进程读取standby redolog,并通过将重做数据转换为逻辑更改记录来提取Redo数据,然后构建SQL事务并将SQL应用在备库。SQL Apply应用sql期间,逻辑备库以读写模式打开,SQLapply禁止对所复制的数据加以修改,但是允许对与主库无关的数据进行添加和更新等操作,如果在备库上查询报表的话,备库还可以添加主库上没有的相关索引和视图,这样做的话可以提高逻辑备库的使用性。
Dataguard保护模式
Maximum availability
最高性能模式比较重视主库的性能,请示数据保护,它需要使用异步重做传输,因为主库后台进程LGWR不需要等待LNS的确认消息就提交操作,主库的性能和可用性不受重做传输的影响,也不受主备库之间的网络情况或者备库可用性的影响。在此模式下的默认重做传输方法是async。
Maximum performance
最大可用性强调可用性,其次强调零数据损失保护, 重做传输方法是sync。Maximum protection
最大保护模式将数据保护放在首要位置, 重做传输方法是sync。如果主库未能从sync备用数据库收到确认消息,主库将停下来并最终中止,防止出现未保护提交的情况。
角色管理
Switchover
A switchover Allows the primary database to switch roles with one of its standby databases. There is no data loss during a switchover. After a switchover, each database continues to participate in the Data Guard configuration with its new role.
Switchover是计划内的时间,DG转换主备角色,在计划维护期间,切换对于尽量缩短停机时间非常有作用。切换可以用于滚动数据库升级迁移卷管理器(如asm)、迁移单实例到rac等操作。
Failover
A failover is when the primary database is unavailable. Failover is performed only in the event of a failure of the primary database, and the failover results in a transition of a standby database to the primary role. The database administrator can configure Data Guard to ensure no data loss.