11g dataguard 类型、保护模式、服务-阿里云开发者社区

开发者社区> 数据库> 正文

11g dataguard 类型、保护模式、服务

简介:

一. Dataguard中的备库分为物理备库和逻辑备库及快照备库

备库是主库的一致性拷贝,使用一个主库的备份可以创建多到30个备库,将其加入到dataguard环境中,创建成功后,dataguard通过自动应用从主库传送到备库的redo数据维护每个备库。

1.1 物理备库(Physical standby database)
物理备库提供物理上和主数据库相同的拷贝,磁盘数据库结构和主库是相同的,物理备库是块到块的拷贝,一个物理备库通过应用从主库收到的redo数据保持和主库的同步,称为日志应用(redo apply),11g的dataguard在应用日志的时候是可以打开的,10g是不允许的。11g的这种特性称为active data guard。

1.2 逻辑备库 (Logical standby database)
逻辑备库包含和主库相同的逻辑信息,物理结构和数据结构可以是不同的,逻辑备库把从主库收到的redo转换为sql语句,然后在备库上执行sql语句,称为sql应用(sql apply)。逻辑备库除了能应用于灾难恢复,还允许用户查询逻辑备库和通过逻辑备库生成报表,用于其他目的,使用逻辑备库能升级database软件,在无停机的情况下打补丁等操作。

1.3 快照备库 (Snapshot Standby Database)
快照备库是11g中出现的,类似物理备库和逻辑备库一样,快照备库从主库接收redo数据,和物理或逻辑备库不同的是,快照备库只接收而不应用接收到的redo数据。直至快照备库转换为物理备库,之后先扔掉任何对快照备库的更新,然后应用接收到的redo数据。快照数据库最好用在要求临时的,可更新的物理备库快照场景。

二. Data Guard 允许定义3钟数据保护模式,分别是最大保护(Maximum Protection),最大可用(Maximum Availability)和 最大性能(Maximum Performance)。

1. 最大保护(Maximum Protection)
这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,它要求所有的事务在提交前其REDO不仅被写入到本地的Online Redologs,还要同时写入到Standby数据库的Standby Redologs,并确认REDO数据至少在一个Standby数据库中可用(如果有多个的话),然后才会在Primary数据库上提交。如果出现了什么故障导致Standby数据库不可用的话(比如网络中断),Primary数据库会被Shutdown,以防止数据丢失。
使用这种方式要求Standby Database 必须配置Standby Redo Log,而Primary Database必须使用LGWR,SYNC,AFFIRM 方式归档到Standby Database.

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

3. 最高性能(Maximum performance)
缺省模式。 这种模式在不影响Primary数据库性能前提下,提供最高级别的数据保护策略。事务可以随时提交,当前Primary数据库的REDO数据至少需要写入一个Standby数据库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护,而仅对Primary数据库的性能有轻微影响。这也是创建Standby数据库时,系统的默认保护模式。
这种方式可以使用LGWR ASYNC 或者 ARCH 进程实现,Standby Database也不要求使用Standby Redo Log。

三. dataguard的服务类型 (Data GuardServices) 有三种,分别是 日志传输服务(Redo Transport Services)、

日志应用服务(Apply Services)、角色转换 (Role Transitions) 。

3.1 日志传输服务(Redo Transport Services)

Redo transport services 执行如下工作:
(1)根据参数中的配置,把主库的redo data 传送到备库。
(2)管理gap的进程。
(3)自动检测备库上缺失或者损坏的归档文件,如果检测到就把这些归档日志重新发送一次。

3.2 日志应用服务(Apply Services)

1 物理standby 使用Redo apply
物理standby 使用的Redo apply技术。 Redo apply使用的是数据库标准的恢复技术。基于block的恢复。

2 逻辑standby 使用SQL apply
逻辑standby 使用的是SQL Apply技术,它会先把redo data转换成SQL 语句,然后在备库执行SQL 语句来实现同步。

3.3 角色转换 (Role Transitions)

数据库的角色操作有2种:主库和备库。 可以使用swithover 或者failover 进行切换。

3.3.1 SWITCHOVER
switchover将一个physical standby database 转换成为primary database,这个过程可以保证无数据丢失,在完成后其它的standby数据库和原来的primary库还可以成为这个dataguard的standby role的一部分.

3.3.2 FAILOVER
Failover当主库crash无法正常启动时,将一个standby库failover成primary role库,如果在primary库在出故障之前不是处于protection的话,将会有一些数据丢失。

文章可以转载,必须以链接形式标明出处。

本文转自 张冲andy 博客园博客,原文链接:http://www.cnblogs.com/andy6/p/6530925.html   ,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章