1、概述
data gurad 的运行遵循一个简单的原则:传输重做数据(redo),应用重做数据。其重做数据包括Oracle数据库的恢复数据库事务的所有数据库信息 ,生产数据库将重做数据传输给一个过或多个独立副本(即备用数据库),data gurad 连续处于恢复状态,验证并应用重做数据,从而域主库的数据保持一致。如果出现网络的中断或是备用数据库断电等导致主库与备库的连接中断的时候。data gurad 还会自动的重新同步备用数据库。
1)、生成重做数据时,重做传输服务将重做数据上传到备用数据库
2)、应用服务验证并将重做数据上传到用用数据库文件
3)、独立于data gurad,数据库写进程自动的更新主数据库文件
4)、在网络中断或备用数据库停运后,Data Guard使用已在主数据库上归档的重做数据,自动重新同步备用数据库。
2、传输分类
概述:
Data Guard重做传输服务(Redo Transport Service)协调从主数据库到备用数据库的重做数据传输过程。同时,主数据库的LGWR进程将重做数据写入到自己的ORL中,一个独立的Data Guard进程从 SGA的重做缓冲区中读取信息,交由Oracle Net服务传输到备份数据库,这个进程称为Log Network Server(LNS)。
Data Guard的灵活架构允许将重做数据从一个主数据库直接传给一个或多个备用数据库。Data Guard与 Oracle RAC完美集成在一起。一个Oracle RAC数据库有两个或更多服务器(节点),每个节点运行自己的Oracle实例,共享访问同一个Oracle数据库。主数据库和/或备用数据库都可以用作Oracle RAC 数据库。每个活动的主实例都生成自己的重做线程并且拥有相应的LNS进程,后者将重做数据传给备用数据库。
由LNS传输的重做记录在备用数据库由另一个Data Guard进程Remote File Server(RFS)接收。RFS 在备用数据库上接收重做数据,然后将其写入一个名为备用重做日志(StandbyRedo Log,SRL)文件的顺序文件中。在多备用配置中,主数据库的独立LNS进程管理针对每个备用数据库的重做传输。例如,如果配置为3个备用数据库,每个主数据库实例中就有3个LNS进程处于活动状态。
同步传输:
同步传输(synchronoustransport,SYNC)又称“零数据损失”方法,因为要等到LNS确认事务恢复所需的重做数据已被写入备用站点的磁盘上,才允许LGWR认可提交操作成功
异步传输:
异步传输(asynchronous transport,ASYNC)与SYNC的不同之处在于,LGWR不必等待来自LNS的确认消息,无论主数据库与备用数据库相距多远,都几乎不会影响到主数据库的性能。