• Oracle ADG的基本概念


    Oracle DataGuard 是 Oracle 自带的数据同步功能,其基本原理是将日志文件从源数据库传输到目标数据库,并在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级别的高可用性方案

    DataGuard 可以提供 Oracle数据库的容灾、数据保护、故障恢复等,实现数据库快速切换与灾难恢复。在生产数据库保证“事务一致性” 时,使用生产库的物理全备份创建备库,备库会通过生产库传输过来的归档日志或重做条目自动维护备用数据库。

    DataGuard 数据同步技术的优势为:

    1. Oracle内置功能,与每个Oracle新版本的新特性完全兼容,且不需要另外付费。
    2. 配置管理简单,不需要熟悉其他第三方的软件产品。
    3. 物理Standby数据库支持任何类型的数据对象和数据类型。
    4. 逻辑Standby数据库处于打开状态,可以在保持数据同步的同时执行查询等操作。
    5. 在最大保护模式下,可确保数据的零丢失。

    1 DataGuard架构

    Oracle DataGuard由一个primary 数据库(生产数据库)及一个或多个standby数据库(最多9个)组成。组成DataGuard的数据库通过Oracle Net连接,并且可以分布于 没的地域,只要各库之间可以相互通信即可。

    • Primary 数据库。 DataGuard包含一个primary 数据库,此库被大部分应用访问,可以是单实例数据库,也可以是RAC。
    • Standby 数据库。 Standby数据库是primary的复制(事务上一致)。在同一个DataGuard中可以最多创建9个standby数据库。一旦创建完成,DataGuard通过应用primary数据库的redo自动维护每个standby数据库。Standby可以是单实例数据库也可以是RAC结构。

    2 备库类型

    Standby数据库有两种:逻辑standby和物理standby。

    • 逻辑standby。通过接收primary数据库的redo log并转换为SQL语句,然后在standby数据库上执行SQL语句实现同步。
    • 物理standby。通过接收并应用primary数据库的redo log以介质恢复的方式实现同步,不仅文件的物理结构相同,连块在磁盘上的存储位置都是一模一样的。

    3 DataGuard服务

    • 重做传输服务(Redo Transport Services)。控制redo日志的传输到一个或多个归档目的地。
    • 日志应用服务(Log Apply Services)。应用redo日志到standby数据库,以保持与primary数据库的事务一致。
    • 角色转换服务(Role Transitions)。DataGuard有两种角色primary 和 standby,角色转换就是让数据库在这两个角色切换,切换分为两种:switchover 和 failover。
      switchover:转换primary数据库与standby数据库。switchover可以确保不会丢失数据。
      failover:当primary出现故障并不能及时恢复时,调用failover将一个standby转换为新的primary数据库。在最大保护模式或最高可用性模式下可以保证不会丢失数据。

    4 保护模式

    4.1 最大保护模式

    最大保护模式为主数据库提供最高水平的数据保护 ,确保一个全面的零数据丢失 的灾难恢复解决方案。在最大保护模式下运行时,重做记录由日志写入进程从主库同步地传输到备库,直到确认事务数据在至少一个备用服务器上的磁盘上可用时,才在主库上提交事务。该模式下,主库和备库完全一致,主库事务提交前,备库必须收到全部日志数据,如果因网络等原因导致日志无法传送时,将引起严重的性能问题,导致主节点宕机。此时备库不能正常关闭,必须保持和主库一致的模式,如果强行采用abort方式关闭备库,可能引发主库挂起。推荐至少配置2个备库,因为如果其中一个不能从主库接收日志,主库还可以继续运行。要保证备库的监听正常,保证主库到备库的连接正常。

    4.2 最大可用模式

    最大可用模式拥有仅次于主数据库数据可用性,并提供零数据丢失和防止单组故障。如同最大保护模式一样,重做数据由日志写入进程从主数据库同步地传输到备用数据库,直到确认事务数据在备用服务器的磁盘上可用时,事务才在主数据库上完成。 不过,这种模式下,如果最后参考的备用数据库变为不可用,例如网络连接异常,处理将在主数据库上继续进行。备库与主库相比,可能暂时落后,但当它再次变为可用时,备用数据库将自动同步,而不会丢失数据。由于同步重做传输,这种模式可潜在地影响响应时间和吞吐量。可以通过配置一个低延迟网络,并为它分配足够应用高峰事务负载的带宽来将这种影响减到最小。
    最大可用模式适用于想要在生产站点上出现严重中断时确保获得零数据丢失保护,但不想让生产数据库受网络/备用服务器故障影响的企业。为防止备库发生网络故障,最好设置reopen参数,即使出现网络故障,也不会引发主库挂起,这时主库将从最大可用模式切换到最大性能模式。正常情况下运行在最大保护模式下,在主库和备库之间网络断开或连接不正常时,自动切换到最大性能模式,主节点操作继续,但这种自动切换是否及时是否高效,当前行内并无实际检验,因此在网络不好的情况下,也可能会有较大的性能影响。

    4.3 最大性能模式

    最大性能模式是默认的保护模式。与最大可用模式相比,提供了稍微少一些的主库数据保护,但提供了更高的性能。这种模式下,当主库处理事务时,重做数据由日志写入进程异步传输到备用数据库上。在任何情况下,均先完全主库上的写操作,主库的提交操作不等待备库确认接收。如果任意备用数据库变为不可用,则处理将在主库上继续进行,对性能只有很小的影响或没有影响。在主库出现故障的情况下,可能有一些主库上提交了的事务没有传输到备库上。如果网络有足够的吞吐量跟上重做流量高峰,则丢失的事务将非常少或者为零。
    当主库的可用性和性能比丢失少量数据的风险更重要时,应该使用最大性能模式。这种模式还适合于WAN上的DataGuard部署,在WAN中,网络的内存延迟可能限制同步重做传输的适用性。在创建DataGuard时,默认创建的是最大性能模式,需要使用其他模式时必须再进行切换。该模式下,利用ARCn进程异步传送日志,无数据同步检查,可能丢失数据,但是能获得主库的最佳性能。

  • 相关阅读:
    企业ERP管理系统功能分析
    Linux系统编程-进程等待
    网易云音乐项目
    数字化未来:实时云渲染在智慧城市中的创新应用
    M语言-命令
    数字化报修管理系统有什么用?如何提升物业报修效率?
    vue3 和 vue2 区别,面试简答
    Java自学路线图之Java进阶自学
    【Vue】模块基本语法「上篇」
    【React-Hooks基础】入门级详解——useState / useEffect /自定义hook
  • 原文地址:https://blog.csdn.net/Post_Yuan/article/details/134290013