ITPub博客

首页 > Linux操作系统 > Linux操作系统 > data guard

data guard

原创 Linux操作系统 作者:tolywang 时间:2011-09-20 18:32:08 0 删除 编辑


Oracle10g Data Guard (Standby) 理论与实践 


http://www.linuxidc.com/Linux/2011-03/33521.htm 
http://tech.it168.com/db/2008-02-26/200802261700804.shtml

 

1. ARCH网络传输模式

Primary DB中一旦ARC0完成redo log的归档,ARC1进程即开始传输该归档到Standby库
指定的路径,在Standby上的RFS(Remote File Server) 进程轮流将redo数据写入standby
redo log,  再由standby上的ARCn进程将其写入Standby归档日志,然后通过redo应用
(物理备库) 或 SQL应用(逻辑备库)将数据应用到Standby库 (物理备库采用MRP进程-
Media Recovery process , 逻辑备库采用LSP-Logical Standby Process) . 

备注: 如果是Real Time Apply,  直接从Standby redo log通过MRP或LSP应用到standby库。
如果不存在Standby redo log文件,那么ARC1进程传输归档到Standby库指定位置。由MRP
进程直接对归档进行应用。 

 


2. LGWR 网络传输模式

Standby数据库的LGWR进程会先选择一个standby redo log文件映射primary数据库当前
redo log的sequence(以及文件大小),一旦primary数据库有redo数据产生,会以同步(SYNC)
或非同步(ASYNC)方式传输到standby数据库。

使用LGWR 进程来传送redo数据到远程归档目的地。我们还需要指定SYNC(同步)还是ASYNC
(异步)的传输方式。

SYNC属性(默认是SYNC):  primary数据库任何时候产生redo操作都会同步触发网络I/O,
并且等到网络I/O全部完成才会继续下面的提交,

ASYNC属性 :  primary数据库的操作会先记录online redo logs,然后再传输到standby。

 

 

3. LGWR 网络传输模式工作流程

在primary数据库,LGWR提交redo数据到LNSn  (LGWR Network Server process, 存在的
目的就是减轻LGWR进程的负担)进程(n>0),LNSn启动网络传输(传输给standby上的RFS)。

standby的RFS(Remote File Server)将接收到的redo数据写入standby redo log。


一旦primary数据库执行日志切换,就会级联触发standby的ARCn将standby redo写入
归档,然后通过redo应用(MRP进程)或sql应用(LSP进程)读取归档文件将数据应用至
standby数据库。

如果启用了实时应用的话,MRP/LSP会直接读取standby redo log并应用到standby
数据库,无须再等待归档 。

启动实时应用和没有启动实时应用的区别:

SQL> alter database recover managed standby database using current logfile disconnect;

SQL> alter database recover managed standby database disconnect;

 

 

3. Primary DB及Standby上的相关进程

在Primary DB中,相关的主要进程有:

LGWR:写log进程, 用于将SGA中log buffer的内容写入redo log文件。

LNS(Logwriter Network Service):用于读取LGWR进程flush的redo,并将其传输到SDB。其存在的目的就是减轻LGWR进程

的负担。

ARCH:依然是将已经写满的ORL文件进行归档。但是会有一个比较特殊的ARCH会用于redo log gap的定位与恢复。
        在SDB中,相关的进程有:
        RFS(Remote File Server):接收PDB发送的redo data,并将这些放入network buffer中的内容写入standby

redo log(SRL)。
        ARCH:同PDB上的ARCH进程作用类似,为SRL文件产生相应的归档文件。
        MRP(Managed Recovery Process):用于协调介质恢复管理,唤起物理standby为永久的恢复模式。它还负责将

redo data从相应的SRLs或归档文件中读入到用于恢复的共享空间结构。
        LSP(Logical Standby Process):该进程主要是在逻辑standby中协调SQL Apply的。
        PR0x(recovery server Process):读取SRL或归档日志文件中的redo,并将其应用于SDB上。

 

 

 

 

 

 

 

 

 

 

----------------------------------------------------------- 

最大性能模式下:primay上的事务commit前不需要从standby上收到反馈信息,该模式在primary故障
时可能丢失数据,但standby对primary的性能影响最小。oracle这样做的目的是为了尽量减少数据的
不一致的时间差,  如果用arch, 那数据不同步的时间差就相对来说要大一些了。


最大性能:
进程LGWR/ARCH    
网络传输模式LGWR SYNC/LGWR ASYNC/ARCH
Standby Redo Log:  LGWR时需要, ARCH传输时建议有.
磁盘写操作:  NOAFFIRM

最大性能是默认的保护模式.

----------------------------------------------------------- 

最大保护模式下: primay上的事务在commit前必须确认redo已经传递到至少一个standby上,如果
所有standby不可用,则primary会挂起。该模式能保证零数据丢失, 一般为保证主库在某个从库故
障后仍能正常运行,  最好配置两个及以上的从库.

最大保护:   
进程LGWR  
网络传输模式LGWR SYNC 
Standby Redo Log:   需要
磁盘写操作:  AFFIRM


----------------------------------------------------------- 

最大可用模式下:oracle以最大保护模式运行,如果出现备库不能及时提交现象,primary不会挂起,
自动转换为以最大性能模式运行。所以standby故障不会导致primay不可用。 只有当所有的redo data
传输到standby logfile后, 数据库才会自动升格为最大可用模式 .

最大可用 :   
进程LGWR 
网络传输模式LGWR SYNC 
Standby Redo Log:   需要
磁盘写操作:   AFFIRM

----------------------------------------------------------- 

对于最大保护和最高可用性模式,Standby数据库必须配置standby redo log,并且oracle推荐
所有数据库都使用LGWR ASYNC模式传输。

----------------------------------------------------------- 

 

LGWR network server process (LNS),


ARCH传输模式:传统的日志传送模式,归档日志通过primary上的arch进程传送给standby的RFS进程。


LGWR传输模式:oracle9i开始可以使用LGWR即时将日志传送到standby,而不再需要等到归档操作
时才传送,已减少可能的数据丢失。如果不明确指定的话,默认是SYNC .


在三种保护模式下都可以使用该方式传送日志。使用LGWR方式传送,在standby必须先建立standby
redo logfile。

 

 

lns--->redo lgwr传输 sync
lns--->redo lgwr传输 async
rfs--->arch 传输


 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-707975/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 面試
请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14695628