zoukankan      html  css  js  c++  java
  • dataguard 下主备 online redo 与 standby redo log resize 重建

    环境说明: 本实验环境是一个节点的rac + 单节点 asm dg     database 与 grid 版本是 11.2.0.4 。
    提别提醒 如果是多节点集群,操作时需要特别注意 thread 。


    一. 主库操作
     
    1.1 查看redo 信息
    SQL> col member for a60
    SQL> select group#,type, member from v$logfile;


        GROUP# TYPE    MEMBER
    ---------- ------- --------------------------------------------------------
             3 ONLINE  +DATA/devdb/onlinelog/group_3.263.936769395
             3 ONLINE  +FLASH/devdb/onlinelog/group_3.259.936769401
             2 ONLINE  +DATA/devdb/onlinelog/group_2.262.936769383
             2 ONLINE  +FLASH/devdb/onlinelog/group_2.258.936769389
             1 ONLINE  +DATA/devdb/onlinelog/group_1.261.936769373
             1 ONLINE  +FLASH/devdb/onlinelog/group_1.257.936769379
             4 STANDBY +DATA/devdb/onlinelog/group_4.267.938494955
             4 STANDBY +FLASH/devdb/onlinelog/group_4.278.938494963
             5 STANDBY +DATA/devdb/onlinelog/group_5.268.938494969
             5 STANDBY +FLASH/devdb/onlinelog/group_5.279.938494975
             6 STANDBY +DATA/devdb/onlinelog/group_6.269.938494981
             6 STANDBY +FLASH/devdb/onlinelog/group_6.280.938494985
             7 STANDBY +DATA/devdb/onlinelog/group_7.270.938495005
             7 STANDBY +FLASH/devdb/onlinelog/group_7.281.938495013


    14 rows selected.


    SQL> select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES INACTIVE                      50
             2          1 YES INACTIVE                      50
             3          1 NO  CURRENT                       50


    1.2 修改standby redo


    SQL> alter database drop logfile group 4;


    Database altered.


    SQL> alter database drop logfile group 5;


    Database altered.


    SQL> alter database drop logfile group 6;


    Database altered.


    SQL> alter database drop logfile group 7;


    Database altered.


    SQL> select group#,type, member from v$logfile;


        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------
             3 ONLINE  +DATA/devdb/onlinelog/group_3.263.936769395
             3 ONLINE  +FLASH/devdb/onlinelog/group_3.259.936769401
             2 ONLINE  +DATA/devdb/onlinelog/group_2.262.936769383
             2 ONLINE  +FLASH/devdb/onlinelog/group_2.258.936769389
             1 ONLINE  +DATA/devdb/onlinelog/group_1.261.936769373
             1 ONLINE  +FLASH/devdb/onlinelog/group_1.257.936769379


    6 rows selected.


    添加standby redo




    SQL> alter database add standby logfile thread 1 group 4 size 60m,group 5 size 60m,group 6 size 60m,group 7 size 60m;


    Database altered.


    SQL>  select group#,type, member from v$logfile;


        GROUP# TYPE    MEMBER
    ---------- ------- --------------------------------------------------
             3 ONLINE  +DATA/devdb/onlinelog/group_3.263.936769395
             3 ONLINE  +FLASH/devdb/onlinelog/group_3.259.936769401
             2 ONLINE  +DATA/devdb/onlinelog/group_2.262.936769383
             2 ONLINE  +FLASH/devdb/onlinelog/group_2.258.936769389
             1 ONLINE  +DATA/devdb/onlinelog/group_1.261.936769373
             1 ONLINE  +FLASH/devdb/onlinelog/group_1.257.936769379
             4 STANDBY +DATA/devdb/onlinelog/group_4.267.938747301
             4 STANDBY +FLASH/devdb/onlinelog/group_4.278.938747305
             5 STANDBY +DATA/devdb/onlinelog/group_5.268.938747309
             5 STANDBY +FLASH/devdb/onlinelog/group_5.279.938747313
             6 STANDBY +DATA/devdb/onlinelog/group_6.269.938747317
             6 STANDBY +FLASH/devdb/onlinelog/group_6.280.938747321
             7 STANDBY +DATA/devdb/onlinelog/group_7.270.938747325
             7 STANDBY +FLASH/devdb/onlinelog/group_7.281.938747327


    14 rows selected.


    1.3 修改Online redo


    SQL> select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES INACTIVE                      50
             2          1 YES INACTIVE                      50
             3          1 NO  CURRENT                       50


    先处理inactive, 它表示已经完成规定的,可以删除。


    SQL> alter database drop logfile group 1;


    Database altered.


    注意: 至少要2个redo组




    SQL> alter database add logfile thread 1 group 1 size 60m;


    Database altered.


    SQL>  select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES UNUSED                        60
             2          1 YES INACTIVE                      50
             3          1 NO  CURRENT                       50


    SQL> alter database drop logfile group 2;


    Database altered.


    SQL> alter database add logfile thread 1 group 2 size 60m;


    Database altered.


    SQL> alter system switch logfile;


    System altered.


    SQL>  select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 NO  CURRENT                       60
             2          1 YES UNUSED                        60
             3          1 YES ACTIVE                        50


    说明:ACTIVE 表示正在归档


    等一会后


    SQL>  select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 NO  CURRENT                       60
             2          1 YES UNUSED                        60
             3          1 YES INACTIVE                      50


    SQL> alter database drop logfile group 3;


    Database altered.


    SQL>  alter database add logfile thread 1 group 3 size 60m;


    Database altered.


    SQL>  select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 NO  CURRENT                       60
             2          1 YES UNUSED                        60
             3          1 YES UNUSED                        60
     OK,至此,主库完成。






    二. 备库操作






    2.1 查看信息
    SQL> col member for a60
    SQL>  select group#,type, member from v$logfile;


        GROUP# TYPE    MEMBER
    ---------- ------- --------------------------------------------------
             3 ONLINE  +DATA/phydb/onlinelog/group_3.268.938177101
             3 ONLINE  +FLASH/phydb/onlinelog/group_3.262.938177103
             2 ONLINE  +DATA/phydb/onlinelog/group_2.267.938177097
             2 ONLINE  +FLASH/phydb/onlinelog/group_2.261.938177099
             1 ONLINE  +DATA/phydb/onlinelog/group_1.266.938177093
             1 ONLINE  +FLASH/phydb/onlinelog/group_1.260.938177095
             4 STANDBY +DATA/phydb/onlinelog/group_4.262.938176937
             4 STANDBY +FLASH/phydb/onlinelog/group_4.256.938176939
             5 STANDBY +DATA/phydb/onlinelog/group_5.263.938176941
             5 STANDBY +FLASH/phydb/onlinelog/group_5.257.938176943
             6 STANDBY +DATA/phydb/onlinelog/group_6.264.938176945
             6 STANDBY +FLASH/phydb/onlinelog/group_6.258.938176945
             7 STANDBY +DATA/phydb/onlinelog/group_7.265.938176947
             7 STANDBY +FLASH/phydb/onlinelog/group_7.259.938176949


    14 rows selected.


    SQL> select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES CURRENT                       50
             2          1 YES CLEARING                      50
             3          1 YES CLEARING                      50


    2.2 处理standby redo


    对于standby 上redo的处理之前,我们要先停掉redo 的apply:否则报错 ORA-01156


    SQL> alter database recover managed standby database cancel;


    SQL> alter database drop logfile group 4;


    Database altered.


    SQL> alter database drop logfile group 5;


    Database altered.


    SQL> alter database drop logfile group 6;


    Database altered.


    SQL> alter database drop logfile group 7;


    Database altered.


    SQL>  alter database add standby logfile thread 1 group 4 size 60m,group 5 size 60m,group 6 size 60m,group 7 size 60m;


    Database altered.


    SQL> select group#,type, member from v$logfile;


        GROUP# TYPE    MEMBER
    ---------- ------- -------------------------------------------------
             3 ONLINE  +DATA/phydb/onlinelog/group_3.268.938177101
             3 ONLINE  +FLASH/phydb/onlinelog/group_3.262.938177103
             2 ONLINE  +DATA/phydb/onlinelog/group_2.267.938177097
             2 ONLINE  +FLASH/phydb/onlinelog/group_2.261.938177099
             1 ONLINE  +DATA/phydb/onlinelog/group_1.266.938177093
             1 ONLINE  +FLASH/phydb/onlinelog/group_1.260.938177095
             4 STANDBY +DATA/phydb/onlinelog/group_4.265.938720451
             4 STANDBY +FLASH/phydb/onlinelog/group_4.259.938720453
             5 STANDBY +DATA/phydb/onlinelog/group_5.264.938720457
             5 STANDBY +FLASH/phydb/onlinelog/group_5.258.938720463
             6 STANDBY +DATA/phydb/onlinelog/group_6.263.938720465
             6 STANDBY +FLASH/phydb/onlinelog/group_6.257.938720469
             7 STANDBY +DATA/phydb/onlinelog/group_7.262.938720471
             7 STANDBY +FLASH/phydb/onlinelog/group_7.256.938720475


    14 rows selected.


    2.3 处理online redo


    先将standby_file_management设为手动:


    SQL> alter system set standby_file_management=manual;
    System altered.


    SQL>  alter database clear logfile group 2;


    Database altered.


    SQL> alter database drop logfile group 2;


    Database altered.


    SQL> alter database add logfile thread 1 group 2 size 60m;


    Database altered.


    SQL>  select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES CURRENT                       50
             2          1 YES UNUSED                        60
             3          1 YES CLEARING                      50


    SQL> alter database clear logfile group 3;


    Database altered.


    SQL> alter database drop logfile group 3;


    Database altered.


    SQL> alter database add logfile thread 1 group 3 size 60m;


    Database altered.


    SQL> select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES CURRENT                       50
             2          1 YES UNUSED                        60
             3          1 YES UNUSED                        60


    SQL>  alter database recover managed standby database disconnect from session;


    Database altered.


    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO';


    System altered.


    -- 到主库手动切换几次redo


    SQL> alter system switch logfile;


    System altered.


    SQL> alter system switch logfile;


    System altered.


    --查看备库的redo:


    SQL> select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES CLEARING                      50
             2          1 YES CLEARING                      60
             3          1 YES CURRENT                       60
    SQL> alter database recover managed standby database cancel;


    Database altered.


    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='MANUAL';


    System altered.


    SQL> select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES CLEARING                      50
             2          1 YES CLEARING                      60
             3          1 YES CURRENT                       60
    SQL> alter database clear logfile group 1;


    Database altered.


    SQL> alter database drop logfile group  1;


    Database altered.


    SQL> alter database add logfile thread 1 group 1 size 60m;


    Database altered.


    SQL>  select group#,thread#,archived,status, bytes/1024/1024 from v$log;


        GROUP#    THREAD# ARC STATUS           BYTES/1024/1024
    ---------- ---------- --- ---------------- ---------------
             1          1 YES UNUSED                        60
             2          1 YES CLEARING                      60
             3          1 YES CURRENT                       60


    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO';


    System altered.


    SQL> alter database recover managed standby database using current logfile disconnect from session;


    Database altered.




    主库测试:


    SQL> alter system switch logfile;


    System altered.


    SQL> alter system switch logfile;


    System altered.


    SQL> select max(sequence#) from v$archived_log;


    MAX(SEQUENCE#)
    --------------
                77


    备库查看是否同步:


    SQL> select sequence#,applied from v$archived_log;
           。。。。。
            76 YES
            77 IN-MEMORY


    69 rows selected.




    一切正常。

  • 相关阅读:
    简述SQL with(unlock)与with(readpast)
    SQLServer 查询最近一天,三天,一周,一月,一季度数据的方法
    C# DevExpress GridControl使用方法
    SQL一列的合并连起来
    DevExpress Report打印边距越界问题
    C# 快速高效率复制对象另一种方式 表达式树
    SQL传数组到存储过程中
    LogNet4学习笔记
    使用Squid部署代理缓存服务(标准正向、透明正反向代理)
    使用Postfix与Dovecot收发电子邮件(物理机虚拟机之间)
  • 原文地址:https://www.cnblogs.com/andy6/p/6556340.html
Copyright © 2011-2022 走看看