• 验证DG最大性能模式下使用ARCH/LGWR及STANDBY LOG的不同情况


    总结:  --两台单实例数据库做DG,数据库版本号10.2.0.1.0
    1.主库配置为:arch async,备库无STANDBY LOG。
    日志中会有:RFS[4]: No standby redo logfiles created
    2.主库配置为:arch async。备库有STANDBY LOG,日志中未显示使用。
    特殊情况:主库配置为:arch async,备库有STANDBY LOG。备库未打开日志应用 ,日志中有:RFS[8]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'
    3.主库改动參数为:lgwr async,备库有STANDBY LOG。日志例如以下:

    RFS[10]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'

    4.主库改动參数为:log_archive_dest_2   == SERVICE=PROD,仅仅写SERVICE=PROD主库归档不能传送到备库。


    实验1:主库配置为:arch async,备库无STANDBY LOG。

    1.主库配置及日志:
    主库:
    SQL> select protection_mode,database_role,protection_level from v$database;
    PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL
    -------------------- ---------------- --------------------
    MAXIMUM PERFORMANCE  PRIMARY          MAXIMUM PERFORMANCE
    15:47:43 SQL> show parameter log_archive_dest_2
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_2                   string      SERVICE=prod1 arch async  VALI
                                                     D_FOR=(ONLINE_LOGFILES,PRIMARY
                                                     _ROLE) DB_UNIQUE_NAME=prod1
    15:47:49 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                27
    备库:
    SQL> select protection_mode,database_role,protection_level from v$database;
    PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL
    -------------------- ---------------- --------------------
    MAXIMUM PERFORMANCE  PHYSICAL STANDBY MAXIMUM PERFORMANCE

    03:48:02 SQL> select group#,thread#,bytes/1024/1024 mb,status from v$standby_log;
    no rows selected

    03:48:05 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                27
    ####################
    2.主库做REDO日志切换并查看日志:
    15:48:18 SQL> alter system switch logfile;
    System altered.
    15:49:33 SQL> alter system switch logfile;
    System altered.
    15:50:11 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                29
    备库已经接收:
    03:49:48 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                29
    主库日志:
    [oracle@ocm1 ~]$ tail -f alert_PROD.log

    Sun Apr 20 15:49:33 2014
    Thread 1 advanced to log sequence 29
      Current log# 2 seq# 29 mem# 0: /u01/app/oracle/prod/disk1/redo02.log
      Current log# 2 seq# 29 mem# 1: /u01/app/oracle/prod/disk2/log2b.log
    Sun Apr 20 15:50:11 2014
    Thread 1 advanced to log sequence 30
      Current log# 3 seq# 30 mem# 0: /u01/app/oracle/prod/disk1/redo03.log
      Current log# 3 seq# 30 mem# 1: /u01/app/oracle/prod/disk2/log3b.log
    备库日志:
    [oracle@ocm2 ~]$ tail -f alert_PROD1.log
    RFS[4]: Archived Log: '/u01/app/oracle/prod/arch/1_28_844894247.arc'
    Sun Apr 20 03:49:30 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_28_844894247.arc
    Media Recovery Waiting for thread 1 sequence 29
    Sun Apr 20 03:50:07 2014
    RFS[4]: No standby redo logfiles created
    RFS[4]: Archived Log: '/u01/app/oracle/prod/arch/1_29_844894247.arc'
    Sun Apr 20 03:50:10 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_29_844894247.arc
    Media Recovery Waiting for thread 1 sequence 30
    ##########################################################

    实验2:主库配置为:arch async,备库有STANDBY LOG,此时会自己主动使用备库的STANDBY LOG。

    主库配置不变。


    备库添加STANDBY LOG:
    03:55:04 SQL> alter database recover managed standby database cancel;
    Database altered.
    03:56:39 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog1.log' size 100m;
    Database altered.
    03:56:50 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog2.log' size 100m;
    Database altered.
    03:56:55 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog3.log' size 100m;
    Database altered.
    03:57:00 SQL> alter database add standby logfile '/u01/app/oracle/prod/disk1/standbylog4.log' size 100m;
    Database altered.
    03:57:05 SQL> select group#,thread#,bytes/1024/1024 mb,status from v$standby_log;
        GROUP#    THREAD#         MB STATUS
    ---------- ---------- ---------- ----------
             4          0        100 UNASSIGNED
             5          0        100 UNASSIGNED
             6          0        100 UNASSIGNED
             7          0        100 UNASSIGNED
    04:13:33 SQL> alter database recover managed standby database disconnect from session;
    Database altered.
    04:14:12 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                38
    ###在主库切换日志:
    16:15:40 SQL> alter system switch logfile;
    System altered.
    16:15:53 SQL> alter system switch logfile;
    System altered.
    16:16:10 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                40
    备库查询:
    04:02:47 SQL>  select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                32
    04:02:49 SQL>

    ############################
    第二次正常时的日志:
    [oracle@ocm1 ~]$ tail -f alert_PROD.log

    Sun Apr 20 16:18:21 2014
    Thread 1 cannot allocate new log, sequence 42
    Checkpoint not complete
      Current log# 2 seq# 41 mem# 0: /u01/app/oracle/prod/disk1/redo02.log
      Current log# 2 seq# 41 mem# 1: /u01/app/oracle/prod/disk2/log2b.log
    Thread 1 advanced to log sequence 42
      Current log# 3 seq# 42 mem# 0: /u01/app/oracle/prod/disk1/redo03.log
      Current log# 3 seq# 42 mem# 1: /u01/app/oracle/prod/disk2/log3b.log
    Sun Apr 20 16:19:08 2014
    Thread 1 cannot allocate new log, sequence 43
    Checkpoint not complete
      Current log# 3 seq# 42 mem# 0: /u01/app/oracle/prod/disk1/redo03.log
      Current log# 3 seq# 42 mem# 1: /u01/app/oracle/prod/disk2/log3b.log
    Thread 1 advanced to log sequence 43
      Current log# 1 seq# 43 mem# 0: /u01/app/oracle/prod/disk1/redo01.log
      Current log# 1 seq# 43 mem# 1: /u01/app/oracle/prod/disk2/log1b.log
    Sun Apr 20 16:20:41 2014
    Expanded controlfile section 11 from 56 to 112 records
    Requested to grow by 56 records; added 2 blocks of records
    备库:
    [oracle@ocm2 ~]$ tail -f alert_PROD1.log
    Sun Apr 20 04:20:36 2014
    Redo Shipping Client Connected as PUBLIC
    -- Connected User is Valid
    RFS[8]: Assigned to RFS process 16069
    RFS[8]: Identified database type as 'physical standby'
    RFS[8]: Archived Log: '/u01/app/oracle/prod/arch/1_40_844894247.arc'
    RFS[8]: Archived Log: '/u01/app/oracle/prod/arch/1_41_844894247.arc'
    RFS[8]: Archived Log: '/u01/app/oracle/prod/arch/1_42_844894247.arc'
    Sun Apr 20 04:20:37 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_40_844894247.arc
    Media Recovery Log /u01/app/oracle/prod/arch/1_41_844894247.arc
    Media Recovery Log /u01/app/oracle/prod/arch/1_42_844894247.arc
    Media Recovery Waiting for thread 1 sequence 43

    实验4:接上一步,备库关闭日志应用 :

    04:23:03 SQL> alter database recover managed standby database cancel;
    Database altered.
    04:23:17 SQL>
    主库切换日志:
    16:20:17 SQL> alter system switch logfile;
    System altered.
    16:23:25 SQL> alter system switch logfile;
    System altered.
    16:25:06 SQL>  select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                44
    备库查询:
    04:26:21 SQL>  select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                44
    此期间主库日志:
    Sun Apr 20 16:23:25 2014
    Thread 1 advanced to log sequence 44
      Current log# 2 seq# 44 mem# 0: /u01/app/oracle/prod/disk1/redo02.log
      Current log# 2 seq# 44 mem# 1: /u01/app/oracle/prod/disk2/log2b.log
    Sun Apr 20 16:23:25 2014
    ARC0: Standby redo logfile selected for thread 1 sequence 43 for destination LOG_ARCHIVE_DEST_2
    Sun Apr 20 16:25:06 2014
    Thread 1 advanced to log sequence 45
      Current log# 3 seq# 45 mem# 0: /u01/app/oracle/prod/disk1/redo03.log
      Current log# 3 seq# 45 mem# 1: /u01/app/oracle/prod/disk2/log3b.log
    Sun Apr 20 16:25:06 2014
    ARC0: Standby redo logfile selected for thread 1 sequence 44 for destination LOG_ARCHIVE_DEST_2
    ##此期间备库日志:
    Managed Standby Recovery Canceled (PROD1)
    Sun Apr 20 04:23:17 2014
    Completed: alter database recover managed standby database cancel
    Sun Apr 20 04:23:20 2014
    RFS[8]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'
    Sun Apr 20 04:25:01 2014
    RFS[8]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'

    实验5:主库改动參数为:lgwr async,备库有STANDBY LOG

    总结:此时
    主库上操作:
    16:28:46 SQL> show parameter log_archive_dest_2
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_2                   string      SERVICE=prod1 lgwr async  VALI
                                                     D_FOR=(ONLINE_LOGFILES,PRIMARY
                                                     _ROLE) DB_UNIQUE_NAME=prod1
    16:28:47 SQL> alter system switch logfile;
    System altered.
    16:30:06 SQL>  select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                45
    16:30:36 SQL> alter system switch logfile;
    System altered.
    16:30:45 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                46
    16:33:08 SQL> alter system switch logfile;
    System altered.
    16:33:09 SQL>  select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                47
    备库上查询:
    04:29:17 SQL> alter database recover managed standby database disconnect from session;
    Database altered.
    04:29:32 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                46
    04:30:44 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                46
    04:33:09 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                47
    ############
    此期间主库日志:
    Sun Apr 20 16:28:25 2014
    ALTER SYSTEM SET log_archive_dest_2='SERVICE=prod1 lgwr async  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=prod1' SCOPE=BOTH;

    LNS1 started with pid=16, OS id=12273
    Sun Apr 20 16:30:06 2014
    Thread 1 advanced to log sequence 46
      Current log# 1 seq# 46 mem# 0: /u01/app/oracle/prod/disk1/redo01.log
      Current log# 1 seq# 46 mem# 1: /u01/app/oracle/prod/disk2/log1b.log
    Sun Apr 20 16:30:06 2014
    ARC0: Standby redo logfile selected for thread 1 sequence 45 for destination LOG_ARCHIVE_DEST_2
    Sun Apr 20 16:30:07 2014
    ******************************************************************
    LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
    ******************************************************************
    LNS: Standby redo logfile selected for thread 1 sequence 46 for destination LOG_ARCHIVE_DEST_2
    Sun Apr 20 16:30:42 2014
    Thread 1 cannot allocate new log, sequence 47
    Checkpoint not complete
      Current log# 1 seq# 46 mem# 0: /u01/app/oracle/prod/disk1/redo01.log
      Current log# 1 seq# 46 mem# 1: /u01/app/oracle/prod/disk2/log1b.log
    Thread 1 advanced to log sequence 47
      Current log# 2 seq# 47 mem# 0: /u01/app/oracle/prod/disk1/redo02.log
      Current log# 2 seq# 47 mem# 1: /u01/app/oracle/prod/disk2/log2b.log
    Sun Apr 20 16:30:45 2014
    LNS: Standby redo logfile selected for thread 1 sequence 47 for destination LOG_ARCHIVE_DEST_2
    ###
    Sun Apr 20 16:33:09 2014
    Thread 1 advanced to log sequence 48
      Current log# 3 seq# 48 mem# 0: /u01/app/oracle/prod/disk1/redo03.log
      Current log# 3 seq# 48 mem# 1: /u01/app/oracle/prod/disk2/log3b.log
    Sun Apr 20 16:33:10 2014
    LNS: Standby redo logfile selected for thread 1 sequence 48 for destination LOG_ARCHIVE_DEST_2

    此期间备库日志:
    Sun Apr 20 04:29:32 2014
    Completed: alter database recover managed standby database disconnect from session
    Sun Apr 20 04:30:01 2014
    RFS[9]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'
    Sun Apr 20 04:30:01 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_45_844894247.arc
    Media Recovery Waiting for thread 1 sequence 46
    Sun Apr 20 04:30:01 2014
    Redo Shipping Client Connected as PUBLIC
    -- Connected User is Valid
    RFS[10]: Assigned to RFS process 12480
    RFS[10]: Identified database type as 'physical standby'
    Primary database is in MAXIMUM PERFORMANCE mode
    Primary database is in MAXIMUM PERFORMANCE mode
    RFS[10]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'
    Sun Apr 20 04:30:36 2014
    Redo Shipping Client Connected as PUBLIC
    -- Connected User is Valid
    RFS[11]: Assigned to RFS process 12574
    RFS[11]: Identified database type as 'physical standby'
    Sun Apr 20 04:30:40 2014
    Primary database is in MAXIMUM PERFORMANCE mode
    RFS[10]: Successfully opened standby log 5: '/u01/app/oracle/prod/disk1/standbylog2.log'
    Sun Apr 20 04:30:40 2014
    Expanded controlfile section 11 from 28 to 280 records
    Requested to grow by 252 records; added 9 blocks of records
    Sun Apr 20 04:30:41 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_46_844894247.arc
    Media Recovery Waiting for thread 1 sequence 47 (in transit)
    ###
    Sun Apr 20 04:33:04 2014
    Primary database is in MAXIMUM PERFORMANCE mode
    RFS[10]: Successfully opened standby log 4: '/u01/app/oracle/prod/disk1/standbylog1.log'
    Sun Apr 20 04:33:06 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_47_844894247.arc
    Media Recovery Waiting for thread 1 sequence 48 (in transit)
    #########################

    实验6:接上一步,模拟网络中断:--备库上SERVICE NETWORK STOP

    主库做归档
    16:35:19 SQL>
    16:37:37 SQL> alter system switch logfile;
    System altered.
    16:37:38 SQL> alter system switch logfile;
    System altered.
    16:39:46 SQL>
    16:43:34 SQL> alter system switch logfile;
    System altered.
    16:43:38 SQL>
    16:44:18 SQL> alter system switch logfile;
    System altered.
    16:44:19 SQL> select max(sequence#) from v$archived_log;
    MAX(SEQUENCE#)
    --------------
                51
    备库网络中断期间主库归档时日志:
    [oracle@ocm1 ~]$ tail -f alert_PROD.log

    Sun Apr 20 16:37:38 2014
    Thread 1 advanced to log sequence 49
      Current log# 1 seq# 49 mem# 0: /u01/app/oracle/prod/disk1/redo01.log
      Current log# 1 seq# 49 mem# 1: /u01/app/oracle/prod/disk2/log1b.log
    Sun Apr 20 16:39:43 2014
    ARC0: Controlfile enqueue unavailable
    Sun Apr 20 16:39:43 2014
    Errors in file /u01/app/oracle/product/10.2.0.1/dbhome_1/rdbms/log/prod_arc0_9993.trc:
    ORA-16146: standby destination control file enqueue unavailable
    LNS1 started with pid=16, OS id=12597
    Sun Apr 20 16:39:46 2014
    Thread 1 advanced to log sequence 50
      Current log# 2 seq# 50 mem# 0: /u01/app/oracle/prod/disk1/redo02.log
      Current log# 2 seq# 50 mem# 1: /u01/app/oracle/prod/disk2/log2b.log
    Sun Apr 20 16:39:49 2014
    Error 12560 received logging on to the standby
    Sun Apr 20 16:39:49 2014
    Errors in file /u01/app/oracle/product/10.2.0.1/dbhome_1/rdbms/log/prod_lns1_12597.trc:
    ORA-12560: TNS:protocol adapter error
    LGWR: Error 12560 creating archivelog file 'prod1'
    LNS: Failed to archive log 2 thread 1 sequence 50 (12560)
    Sun Apr 20 16:43:38 2014
    Thread 1 advanced to log sequence 51
      Current log# 3 seq# 51 mem# 0: /u01/app/oracle/prod/disk1/redo03.log
      Current log# 3 seq# 51 mem# 1: /u01/app/oracle/prod/disk2/log3b.log
    Sun Apr 20 16:44:19 2014
    Thread 1 advanced to log sequence 52
      Current log# 1 seq# 52 mem# 0: /u01/app/oracle/prod/disk1/redo01.log
      Current log# 1 seq# 52 mem# 1: /u01/app/oracle/prod/disk2/log1b.log
    Sun Apr 20 16:48:11 2014
    ARC0: Standby redo logfile selected for thread 1 sequence 49 for destination LOG_ARCHIVE_DEST_2
    Sun Apr 20 16:48:14 2014
    ARCH: Possible network disconnect with primary database
    备库网络恢复后日志:
    [oracle@ocm2 ~]$ tail -f alert_PROD1.log
    RFS[12]: Assigned to RFS process 14171
    RFS[12]: Identified database type as 'physical standby'
    RFS[12]: Archived Log: '/u01/app/oracle/prod/arch/1_48_844894247.arc'
    Sun Apr 20 04:48:07 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_48_844894247.arc
    Media Recovery Log /u01/app/oracle/prod/arch/1_49_844894247.arc
    Media Recovery Waiting for thread 1 sequence 50
    Fetching gap sequence in thread 1, gap sequence 50-50
    Sun Apr 20 04:48:08 2014
    RFS[12]: Archived Log: '/u01/app/oracle/prod/arch/1_50_844894247.arc'
    Sun Apr 20 04:48:38 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_50_844894247.arc
    Media Recovery Waiting for thread 1 sequence 51
    Fetching gap sequence in thread 1, gap sequence 51-51
    Sun Apr 20 04:48:38 2014
    RFS[12]: Archived Log: '/u01/app/oracle/prod/arch/1_51_844894247.arc'
    Sun Apr 20 04:49:08 2014
    Media Recovery Log /u01/app/oracle/prod/arch/1_51_844894247.arc
    Media Recovery Waiting for thread 1 sequence 52

  • 相关阅读:
    Android 自定义标题栏 并进行事件处理
    java synchronized详解
    Java中LinkedList与ArrayList有什么区别
    android动态全屏切换
    java线程机制介绍
    设置导航栏背景和文字属性
    Dictionary的用法
    bundle
    解析Json
    Copy与MutableCopy
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7086842.html
Copyright © 2020-2023  润新知