DataGuard简介

概念

官方文档
https://docs.oracle.com/database/121/SBYDB/toc.htm

1、DataGuard概念
Data Guard可确保企业数据的高可用性、数据保护和灾难恢复。Data Guard提供了一套全面的服务,用于创建、维护、管理和监控一个或多个备用数据库,使生产Oracle数据库能够在灾难和数据损坏中幸存下来。DataGuard基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级别的高可用性方案。

2、DataGuard
Data Guard由一个主数据库(生产数据库)及一个或多个备用数据库组成。

主数据库
Oracle Data Guard 配置包含一个生产数据库(也称为主数据库),该数据库充当主要角色。这是大多数应用程序访问的数据库。主数据库可以是单实例Oracle数据库,也可以是RAC数据库。

备用数据库

备用数据库是主数据库的事务一致性副本。使用主数据库的副本。创建后,Oracle Data Guard会自动维护每个备用数据库,从主数据库传输重做数据,然后将重做应用到备用数据库。与主数据库类似,备用数据库可以是单实例数据库或RAC数据库。备用数据库有3重类型。

物理备用数据库
提供主数据库的物理上相同的副本,其磁盘上的数据库结构在块与主数据库在块对块的基础上相同。数据库架构(包括索引)是相同的。物理备用数据库通过重做应用与主数据库保持同步,这将恢复从主数据库接收的重做数据并将重做应用于物理备用数据库。


逻辑备用数据库
包含与生产数据库相同的逻辑信息,尽管数据的物理组织和结构可能不同。逻辑备用数据库通过SQL Apply与主数据库保持同步,它将从主数据库接收的重做中的数据转换为SQL语句,然后在备用数据库上执行SQL语句。逻辑备用数据库的灵活性使您能够升级数据库软件(补丁集和新的数据库版本),并以滚动方式执行其他数据库维护,几乎无需停机。

快照备用数据库
快照备用数据库是完全可更新的备用数据库。与物理或逻辑备用数据库一样,快照备用数据库从主数据库接收和归档重做数据。与物理或逻辑备用数据库不同,快照备用数据库不应用它所接收的重做数据。在首先放弃对快照备用数据库所做的任何本地更新之后,在将快照备用数据库转换回物理备用数据库之前,不会应用快照备用数据库接收的重做数据。快照备用数据库最适合用于需要物理备用数据库的临时可更新快照的场景。

数据同步

1、数据同步过程

主库日志发送
ARCH进程、LGWR进程、LNSn进程

备库日志接收
RFS进程、ARC进程

备库日志应用
MRP进程、LSP进程

2、日志发送
主库Primary Database 在运行过程中,会不断地产生Redo重做日志,这些日志需要发送到备库Standy Database,这个发送动作可以由Primary Database 的两种日志传输方式来完成:

ARCH进程
主库只有在发生归档时才会发送日志到备库。
如果主库异常宕机,联机日志中的Redo内容就会丢失,因此使用ARCH 进程无法避免数据丢失的问题,要想避免数据丢失,就必须使用LGWR,而使用LGWR,又分SYNC(同步)和ASYNC(异步)两种方式。
主库默认使用的是ARCH进程。

生产建议使用异步传输方式
LGWR进程(ASYNC异步)
LGWR将redo buffer写入到redo log,再使用LNSn进程(Local Net Server)传输redo log

3、日志接收
备库的RFS(Remote File Server)进程接收到日志后,就把日志写到Standby Redo Log或者Archived Log文件中。
如果写到Standby Redo Log文件中,则当主库发生日志切换时,也会触发备库上的Standby Redo Log的日志切换,并把这个Standby Redo Log归档。

4、日志应用
日志应用服务,就是在备库上重放主库redo日志,从而实现两个数据库的数据同步。

实时日志应用(Real-Time Apply)
当日志被写入Standby Redo Log时,这种方式就会触发恢复,使用这种方式的好处在与可以减少数据库切换(Switchover 或者Failover)的时间。

归档时应用
这种方式在主库发生日志切换,触发备库归档操作,归档完成后触发恢复,是默认的恢复方式。

5、日志应用相关进程
RFS进程
RFS(remote file server)进程主要用来接受从主库传送过来的日志信息。对于物理备用数据库而言,RFS进程可以直接将日志写进备用重做日志,也可以直接将日志信息写到归档日志中。

ARCH进程
ARCH进程对备库的重做日志进行归档。

MRP
MRP(managed recovery process)该进程针对物理备库,该进程应用归档日志到备库。

LSP进程
LSP(logical standby process),逻辑备库专用,LSP进程主要是应用归档日志到逻辑备用数据库。

6、FAL进程
FAL(Fetch archive log)进程用来解决检测在主库产生的连续归档日志,而在备库接受的归档日志不连续的问题。
当主库的某些日志没有成功发送到备库, 这时候发生了归档裂缝(Archive Gap),缺失的这些日志就是裂缝(Gap)。
Data Guard能够自动检测,解决归档裂缝,不需要DBA的介入。这需要配置FAL_CLIENT,FAL_SERVER这两个参数,FAL_CLIENT通过网络向FAL_SERVER发送请求,FAL_SERVER通过网络向FAL_CLIENT发送缺失的日志。

三种数据保护模式

最大保护(Maximum Protection)
可以保证主库和备库的同步,要求网络传输最高,任何情况下主库的损毁都不会导致已提交数据的丢失。如果主库和备库之间的网络出现问题,或者备库本身出现问题,都会导致主库停止数据处理。

最大可用(Maximum Availability)
保证主库和备库的同步,与上面的区别是当网络或备库不可用时,主库仍可继续。该保护模式下,零数据丢失。

最大性能(Maximum Performance)
默认模式, 主库和备库是异步的。这种模式可能在主库出现损毁时,丢失一部分数据。但是这种模式对主库负荷最小,因此具有最好的性能。

主从切换

Switchover
Swithchover是主动的有计划的进行角色互换,不会破坏data guard架构。
Failover
Failover是指由于主库发生故障无法在短时间内恢复,备库会自动切换成主库角色,会破坏data guard架构,一般需要重新搭建data guard。

11g新特性ADG

11g备库处于read only状态,可以实时同步redo,10g必须在mount状态,才可以同步redo。

12c新特性Far Sync

Far Sync是12C中新增的一种实例类型,它不运行数据库、没有数据文件,只有日志文件,专门用于DataGuard配置中负责日志转发的轻量级实例。
Far Sync实例需要配置在离主库较近的地方,比如同数据中心或同城灾备的机房,以便实现同步日志传输。
主库通过SYNC的方式把redo传输到Far Sync实例,然后通过ASYNC的方式传输到备库。
在此过程中,如果Far Sync实例出现问题,主库可以直接通过ASYNC方式把redo传输到备库。

19c新特性DML重定向

原理是通过将备库上的DML重定向到主库上执行,将日志传输到备库,然后备库应用日志,看起来是备库DML操作。这样避免在备库上执行过多的DML操作,实际上是在主库上执行。
在备库修改初始化参数ADG_REDIRECT_DML设置为true,备库就启用了DML重定向。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值