zoukankan      html  css  js  c++  java
  • DataGuard的三种保护模式

    (一)三种保护模式介绍
    1.最大性能模式
    这种模式保证数据库主库性能最大化,主备库之间数据是异步传输的。即,主库日志归档以后才会传输到备库,在备库上使用归档日志文件做恢复操作。
    这种模式提供在不影响primary数据库性能前提下最高级别的数据保护策略。事物可以随时提交,当前primary数据库的redo数据也需要至少写入一个standby数据库,不过这种写入是不同步的。

    2.最高可用模式
    这种模式和“最大保护”模式差不多,正常情况下,主备库之间是同步的。当网络或备库出现故障时,不会影响到主库的宕机,主库会自动切换为“ 最大性能”模式,等待备库可用时,将归档传输到备库做恢复。
    可以把最高可用模式理解为“最大保护”模式和“最大性能”模式的中间体。
    这种模式提供在不影响primary数据库可用前提下最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求所有事物在提交前必须保障redo数据至少在一个standby数据库可用,不过与之不同的是,如果出现故障导致无法同时写入stangby数据库redo log,primary数据库并不会shutdown,而是自动转为最高性能模式,等standby数据库恢复正常之后,又自动转换为最高可用模式。

    3.最大保护模式
    这种模式主备之间数据是同步的。即主库提交commit的同时,备库会做相应的恢复。最大限度保证了数据的完整性,不允许数据的丢失。
    如果主备库之间网络,或者备库出现问题会直接影响主库操作,导致主库宕机。这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,他要求所有的事物在提交前期redo不仅被写入本地的online redo log,还要同时提交到standby数据库的standby redo log,并确认redo数据至少在一个standby数据库可用(如果有多个数据库),然后才在primary数据库上提交。如果出现故障导致standby数据库不可用,那么primary数据库也会被shutdown。

    注意:
    最大保护模式和最高可用模式需要至少一个standby数据库redo数据被同步写入。

    (二)三种保护模式参数配置
    最大性能:
    LGWR ASYNC NOAFFIRM

    最大保护,最高可用:
    LGWR SYNC AFFIRM

    (三)三种保护模式转换
    如何查看数据库的主备、保护模式:
    主库:

    SQL> select name,open_mode,database_role,protection_mode,protection_level from v$database;
    
    NAME      OPEN_MODE            DATABASE_ROLE    PROTECTION_MODE       PROTECTION_LEVEL
    --------- -------------------- ---------------- --------------------  -------------------
    ADGDB     READ WRITE           PRIMARY          MAXIMUM PERFORMANCE   MAXIMUM PERFORMANCE

    备库:

    SQL> select name,open_mode,database_role,protection_mode,protection_level from v$database;
    
    NAME      OPEN_MODE             DATABASE_ROLE     PROTECTION_MODE       PROTECTION_LEVEL
    --------- --------------------  ----------------  --------------------  --------------------
    ADGDB     READ ONLY WITH APPLY  PHYSICAL STANDBY  MAXIMUM PERFORMANCE   MAXIMUM PERFORMANCE

     1.转换为最高可用模式,在备库和主库上执行:

    alter database set standby database to maximize availability;

    2.转换为最大性能模式,在备库和主库上执行:

    alter database set standby database to maximize performance;

    3.转换为最大保护模式,在备库和主库上执行:

    alter database set standby database to maximize protection;

     例子:将DataGuard从默认的最大性能模式切换为最高可用模式

    (1)备库
    查询备库的保护模式:

    SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;
    
    NAME      DB_UNIQUE_NAME      OPEN_MODE             DATABASE_ROLE     PROTECTION_MODE       PROTECTION_LEVEL
    --------- ------------------  --------------------  ----------------  --------------------  --------------------
    ADGDB     adgdbstandby        READ ONLY WITH APPLY  PHYSICAL STANDBY  MAXIMUM PERFORMANCE   MAXIMUM PERFORMANCE

    修改备库的保护模式:

    SQL> alter database set standby database to maximize availability;
    
    Database altered.

    再次查看备库的Dataguard保护模式:

    SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;
    
    NAME      DB_UNIQUE_NAME     OPEN_MODE             DATABASE_ROLE     PROTECTION_MODE       PROTECTION_LEVEL
    --------- ------------------ --------------------  ----------------  --------------------  --------------------
    ADGDB     adgdbstandby       READ ONLY WITH APPLY  PHYSICAL STANDBY  MAXIMUM AVAILABILITY  MAXIMUM AVAILABILITY

     (2)主库

    同样的,查看主库的保护模式

    SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;
    
    NAME      DB_UNIQUE_NAME    OPEN_MODE    DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL
    --------- ----------------- ------------ ---------------- -------------------- --------------------
    ADGDB     adgdb             READ WRITE   PRIMARY          MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

    修改主库的保护模式:

    SQL> alter database set standby database to maximize availability;
    
    Database altered.

    再次确认,DataGuard的保护模式已经变为了maximum availability:

    SQL> select name,db_unique_name,open_mode,database_role,protection_mode,protection_level from v$database;
    
    NAME      DB_UNIQUE_NAME    OPEN_MODE    DATABASE_ROLE  PROTECTION_MODE       PROTECTION_LEVEL
    --------- ----------------- -----------  -------------  --------------------  --------------------
    ADGDB     adgdb             READ WRITE   PRIMARY        MAXIMUM AVAILABILITY  MAXIMUM AVAILABILITY

    【完】

  • 相关阅读:
    课后作业03
    课堂测验02
    构建之法阅读笔记02
    进度条 二
    软件工程个人作业02
    Sprint6
    Sprint5
    Alpha版总结会议
    Beta版总结会议
    Alpha阶段项目Postmortem会议总结
  • 原文地址:https://www.cnblogs.com/lijiaman/p/10701131.html
Copyright © 2011-2022 走看看