oracle 11g dataguard

 oracle 11g dataguard (简称DG)物理DG  异步传输配置详解

一、DG的概念

DG分为物理和逻辑,

物理DG:主库将redo log 传输给备库后,备库将redo log进行recovery,来和主库数据一致,实现数据同步,数据容灾。注意的是,主备库坏境必须一致,且备库是readonly只读(物理的备库和主库的数据库名,也就是db_name和DBID都是同样的。);

逻辑DG:主库将redo log 传输给备库后,备库利用日志挖掘工具logminer,将redo log解析为sql语句,在备库执行,实现主备数据一致。(主备库可以是不同的环境,备库可以处于读写状态)逻辑备库可以看作是一个单独的库,数据库名和DBID和主库都不一样。(物理的备库和主库的数据库名和DBID都是同样的。)

区别:(物理DG----RECOVERY,逻辑-----应用sql语句),物理备库和主库的数据库名,也就是db_name和DBID都是同样的。逻辑备库可以看作是一个单独的库,数据库名和DBID和主库都不一样。

查询数据库参数视图:select dbid,name,open_mode from v$database;

二、DG 环境

主库1个,备库最多可以有 9 个

1、主库和备库之间都是单实例

2、主库是RAC,备库是单实例

3、主库是RAC,备库也是RAC(MAA实现最高可用性)

三、DG的保护模式

1.最大保护模式(SYNC同步模式)

这种模式是当主库产生redo log后并将事务提交之前,不仅会写到本地不仅被写入到本地的Online Redologs,还要同时写入到Standby数据库的Standby Redologs,并确认REDO数据至少在一个Standby数据库中可用(如果有多个的话),然后才会在Primary 数据库上提交。如果出现了什么故障导致Standby数据库不可用的话(比如网络中断),Primary 数据库会被Shutdown,以防止数据丢失。使用这种方式要求Standby Database必须配置Standby Redo Log,而 Primary Database必须使用LGWR,SYNC,AFFIRM方式归档到Standby Database.

总的来说,主库的redo log不能传送给备库,或者备库故障接受不了主库的redolog日志,为了数据同步,主库就自动shutdown,会造成业务阻断,可取性不高。

2.最高可用性

这种模式在不影响 Primary 数据库可用前提下,提供最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求本地事务在提交前必须至少写入一台(俗称同步模式)Standby 数据库的 Standby Redologs 中,不过与最大保护模式不同的是,如果出现故障导致Standby数据库无法访问,Primary数据库并不会被Shutdown,而是自动转为最高性能模式等Standby数据库恢复正常之后,Primary数据库又会自动转换成最高可用性模式。这种方式虽然会尽量避免数据丢失,但不能绝对保证数据完全一致。这种方式要求Standby Database必须配置Standby Redo Log,而Primary Database 必须使用LGWR SYNC,AFFIRM方式归档到Standby Database.

3.最高性能模式(ASYNC异步模式)

缺省模式。最大性能模式在主库发生日志归档时才向备用数据库传输日志,从而将DataGuard对主库的性能影响降到最低。
损失这种模式在不影响Primary数据库性能前提下,提供最高性能级别的数据保护策略。主库的事务可以随时提交,当前Primary 数据库的REDO数据至少需要写入一个Standby数据库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护,而仅对 Primary 数据库的性能有轻微影响。这也是创建Standby数据库时,系统的默认保护模式。这种方式可以使用 LGWR ASYNC 或者 ARCH 进程实现,Standby Database也不要求使用Standby Redo Log。这种模式的缺点是,如果主库发生灾难性故障,日志全部损失,则从库可能和主库出现一个左右的日志信息差异。当然,在这种方式下,我们可以通过设置主库增加归档频率来缩小可能的数据

四、DG的有关进程

RFS: (Remote File Server)在备库上启用的进程,接收重做日志(redo log和arch log)

LNSn: (LGWR Network Server Process)本地网络服务,在主库上负责传送redo日志

MRP: (Managed Recovery Process)备库上管理恢复进程,如果是物理 DG,用于对redo log做recovery

LSP: (Logical Standby Process)备库上逻辑备用进程,逻辑DG,是对redo log中抽取的sql进行应用。

五、DG的同步和异步传输方式

因为物理(异步传输)DG采用LGWR ASYNC 或者 ARCH-ASYNC 进程实现数据同步,首先得对数据库的这两个后台进程有一定的概念:

数据库的后台进程:LGWR,是将数据库的redo log日志从log buffer cache中写到redo log file日志组文件中;

数据库的后台进程:ARCH,归档模式下,发生日志切换时,把当前日志组中的内容写入归档日志,作为备份历史日志提供数据库的recovery;

手动切换日志组的方式:1.alter system switch logfile(单实例坏境下,将当前实例的redo进行日志切换,适用归档或非归档模式下的日志切换); 

                    2.alter system  archive log current(RAC坏境下,将所有节点实例的redo进行日志切换,只适用归档模式下的日志切换);

我们要搭载的是物理DG,且采用的是异步传输,保护级别是默认的(最高性能模式(ASYNC异步模式))。

下面详细讲解LGWR-----ASYNC和ARCH--------ASYNC,这两种异步传输方式

LGWR-----ASYNC:LGWR将redo log写到本地日志文件后,由主库的LNSn进程来传输redo 日志给备库;很明显主备库不是同步的;

ARCH--------ASYNC:主库将redo log日志归档后,主库的arch进程将redo log日志传输给备库;在备库上启用的RFS进程,接收重做日志(redo log和arch log),由MRP从备库的归档中恢复数据;

这里注意一下:如果备库配置了standby log,就写到备库的standby log,发生日志切换时再归档;如果备库没有配置standby  log,就直接将主库传输的redo log写入到archive log;

异步可以有两种模式①LGWR+ASYNC,②ARCH+ASYNC

ORACLE Dataguard的概念先介绍这里,文中有错误的地方还请各位指正,搭载物理DG的文章,查看我的另一篇文章。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值