• adg的数据传输应用三大模式转换


    1.最大可用性模式(Maximum Availability)

    1)该模式提供了仅次于“最大保护模式”的数据保护能力;

    2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交;

    3)主库找不到合适的备库写入时,主库不会关闭,而是临时降低到“最大性能模式”模式,直到问题得到处理;

    4)优点:该模式可以在没有问题出现的情况下,保证备库没有数据丢失,是一种折中的方法;

    5)缺点:在正常运行的过程中缺点是主库的性能受到诸多因素的影响。

    2.最大性能模式(Maximum Performance)

    1)该模式是默认模式,可以保证主数据库的最高可用性;

    2)保证主库运行过程中不受备库的影响,主库事务正常提交,不因备库的任何问题影响到主库的运行;

    4)优点:避免了备库对主数据库的性能和可用性影响;

    5)缺点:如果与主库提交的事务相关的恢复数据没有发送到备库,这些事务数据将被丢失,不能保证数据无损失。

    3.最大保护模式(Maximum Protection)

    1)这种模式提供了最高级别的数据保护能力;

    2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交;

    3)主库找不到合适的备库写入时,主库会自动关闭,防止未受保护的数据出现;

    4)优点:该模式可以保证备库没有数据丢失;

    5)缺点:主库的自动关闭会影响到主库的可用性,同时需要备库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会因此受到非常大的冲击。

    三种模式

    比较项

    最大保护

    最高可用

    最大性能

    Redo写或传输进程

    lgwr

    lgwr

    lgwr或者arch

    网络传输模式

    sync

    sync

    sync或者async

    是否落盘确认

    affirm

    affirm

    affirm或者noaffirm

    standby redologs

    需要

    需要

    可有可无

    ARCH传输模式只能用于最大性能模式下

    最大保护和最高可用模式下只能使用LGWR SYNC传输模式

    AFFIRM:在日志写进程进行之前,所以的归档日志和备库日志必须同步写完

    NOFFIRM:在主库的日志写进程不等所有磁盘IO完成

    参数如缺省的 则是NOFFIRM

    使用AFFIRM时,可以确保以下三点:

    1能确保数据没有丢失在主库失败后

    2 可以在本地或远程使用

    3 影响主库的性能

    LGWR和AFFIRM,日志写进程同步写REDO DATA到磁盘,在DISK写完前,控制权不交给用户,还有主库的在线日志可能不可用在归档完成之前

    ARCH和AFFIRM ARCn进程同步写REDO DATA到磁盘,归档操作可能发生时间比较长,主库的在线日志在归档完成日志前可能不可用。

    ASYNC和AFFIRM,性能不受影响。

    设置参数位置

    主库log_archive_dest_n参数设置

    示例:*.log_archive_dest_2='service=orcl  lgwr sync affirm

    valid_for=(online_logfiles,primary_role)  db_unique_name=orcl'

    重要参数分析

    arch:只支持最大性能模式。归档日志通过primary上的arch进程传送给standby的rfs进程,保存到指定路径(如果有standby redo logfile,则保存到该位置,然后再归档),然后redo应用。

    309180323562

    lgwr:primary使用LGWR即时将日志传送到standby的rfs进程,并保存到standby redo logfile中,而不再需要等到归档操作时才传送,保存到standbyredo logfile,然后再归档,然后redo应用。

    用LGWR传输大致如下:

    1)主库:只要有新的重做日志产生,lgwr进程将触发LNSn进程把新生成的日志传输给备库rfs进程。

    2)备库:rfs进程接收到日志后,将其写入standby重做日志,如果备库开启了实时应用,就立即做日志应用,如果没有开启,则等standby重做日志归档后再应用。

    3)其中,async和sync的区别在于:sync是在redo还在内存时,LNSn进程就开始传输,而async是在redo写到online redo log后,LNSn才开始传输。

    同步的实时性来看,lgwr(sync) > lgwr(async)> arch

    sync模式下,主库产生任何redo时,同时马上触发网络传输给备库RFS进程;

    309180557479

    async模式下,主库产生redo时,先写到本地online redo logfile文件中,LNSn进程从online redo logfile文件中取redo数据网络传输给备库RFS进程。

    309180830529

    模式切换

    首次performance>>availability>>protection顺序需要在主库执行且主库必须处于mount状态;

    如果已经由performance>> availability>>protection数据保护级别操作过1次,那么再次操作时可直接操作;

    protection>>availability>>performance顺序直接操作即可

    主备库操作:SQL>select database_role,protection_mode,protection_level from v$database;

    主库更改log_archive_dest_n参数配置,如:

    SQL>alter system set log_archive_dest_2='service=orcldg lgwr sync valid_for=(online_logfiles,primary_role) db_unique_name=orcldg';

    主库操作:SQL> shutdown immediate;

    备库操作:alter database recover managed standby database cancel;

    主库操作:SQL>startup mount;

    主库操作:SQL>alter database set standby database to maximize availability;

    主库操作:SQL>alter database open

    完成。

    -----------------------------------------------------------------------------------------上下一样的--------------------------------------------------------------------------------------------------

    切换方式

    1.主库启动到mount状态

    2.主库中执行如下SQL语句

    SQL> ALTER SYSTEM SET log_archive_dest_2='SERVICE=DG LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DG';

    SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};

    3.查询保护模式语句

    SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

  • 相关阅读:
    DNS原理和智能DNS及CDN
    jvm介绍及其优化
    Java Socket网络编程
    TCP/IP协议详解
    单点登录系统
    Kibana安装及使用
    【Golang】Golang Context上下文包
    常用缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)介绍和实现
    java数据持久层框架MyBatis
    MySQL数据库设计三范式
  • 原文地址:https://www.cnblogs.com/kawashibara/p/10054471.html
Copyright © 2020-2023  润新知