暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

修改备库日志(redo、standby redo)

原创 西瓜你个吧啦 2024-05-21
911

备库也是一样的情况,redo调整主库不会同步到备库的所以记得要自己操作

1、redo挪位置

2、调整redo大小

3、调整redo每组个数

注意点:按照文档操作你需要更换路径,和大小根据实际情况调整。路径就不解释了,大小是根据业务量来的,如果业务量大redo小了会造成频繁切换归档造成不必要的资源消耗,如果太大了也会对性能、管理复杂度、恢复时间有影响。


备库删除redo步骤

1、关闭DG应用
2、开启手动管理文件
3、确认不是CURRENT状态(如果是就在主库切换归档)
4、清理redo
5、删除redo
6、开启自动管理文件
7、开启DG应用


备库重建redo

set linesize 200
set pagesize 200
col MEMBER format a100
alter database recover managed standby database cancel;
alter system set standby_file_management='MANUAL' scope=both;
select * from v$log;
select * from v$logfile order by GROUP#,MEMBER;
alter database add logfile group 1 ('/u01/app/oracle/oradata/branch/redo01a.log', '/u01/app/oracle/oradata/branch/redo01b.log') size 500m reuse;
alter database add logfile group 2 ('/u01/app/oracle/oradata/branch/redo02a.log', '/u01/app/oracle/oradata/branch/redo02b.log') size 500m reuse;
alter database add logfile group 3 ('/u01/app/oracle/oradata/branch/redo03a.log', '/u01/app/oracle/oradata/branch/redo03b.log') size 500m reuse;
alter database clear logfile group 5;
alter database drop logfile group 5;
alter database clear logfile group 6;
alter database drop logfile group 6;
alter database clear logfile group 7;
alter database drop logfile group 7;
主库 alter system switch logfile;
select * from v$log;
alter database clear logfile group 4;
alter database drop logfile group 4;
alter database add logfile group 4 ('/u01/app/oracle/oradata/branch/redo04a.log', '/u01/app/oracle/oradata/branch/redo04b.log') size 500m reuse;
alter system set standby_file_management='AUTO' scope=both;
alter database recover managed standby database using current logfile disconnect from session;


备库重建redo操作日志记录

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter system set standby_file_management='MANUAL' scope=both;

System altered.

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         4          1     850528  524288000        512          1 YES CLEARING            1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
         7          1     850242  524288000        512          1 YES CLEARING            1.7316E+13 05-JAN-22   1.7316E+13 05-JAN-22
         6          1     850241  524288000        512          1 YES CLEARING            1.7316E+13 05-JAN-22   1.7316E+13 05-JAN-22
         5          1     850244  524288000        512          1 YES CLEARING            1.7316E+13 05-JAN-22   1.7316E+13 05-JAN-22

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE
---------- ------- ------- -------------------------------------------------------------------- ---------------------
         4         ONLINE  /data/oradata/branch/redo4.log                                                   NO
         5         ONLINE  /data/oradata/branch/redo5.LOG                                                 NO
         6         ONLINE  /data/oradata/branch/redo6.LOG                                                 NO
         7         ONLINE  /data/oradata/branch/redo7.LOG                                                 NO
        10         STANDBY /data/oradata/branch/STAN10.LOG                                            NO
        11         STANDBY /data/oradata/branch/STAN11.LOG                                            NO
        12         STANDBY /data/oradata/branch/STAN12.LOG                                            NO
        13         STANDBY /data/oradata/branch/STAN13.LOG                                            NO

8 rows selected

SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/branch/redo01a.log', '/u01/app/oracle/oradata/branch/redo01b.log') size 500m reuse;

Database altered


SQL> alter database add logfile group 2  ('/u01/app/oracle/oradata/branch/redo02a.log', '/u01/app/oracle/oradata/branch/redo02b.log') size 500m reuse;

Database altered


SQL> alter database add logfile group 3 ('/u01/app/oracle/oradata/branch/redo03a.log', '/u01/app/oracle/oradata/branch/redo03b.log') size 500m reuse;

Database altered

SQL> alter database clear logfile group 7;

Database altered.

SQL> alter database drop logfile group 7;

Database altered.

SQL> alter database clear logfile group 6;

Database altered.

SQL> alter database drop logfile group 6;

Database altered.

SQL> alter database clear logfile group 5;

Database altered.

SQL> alter database drop logfile group 5;

Database altered.

主库去切换日志让4的状态为CLEARING
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1     850561  524288000        512          2 YES CURRENT             1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
         2          1     850562  524288000        512          2 YES CLEARING            1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
         3          1     850563  524288000        512          2 YES CLEARING            1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
         4          1     850528  524288000        512          1 YES CLEARING            1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22

SQL> alter database clear logfile group 4;

Database altered.

SQL> alter database drop logfile group 4;

Database altered.

SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/branch/redo04a.log', '/u01/app/oracle/oradata/branch/redo04b.log') size 500m reuse;

Database altered

SQL> alter system set standby_file_management='AUTO' scope=both;

System altered.

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1     850565  524288000        512          2 YES CLEARING            1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
         2          1     850566  524288000        512          2 YES CURRENT             1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
         3          1     850563  524288000        512          2 YES CLEARING            1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
         4          1     850564  524288000        512          2 YES CLEARING            1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22

SQL> select * from v$logfile order by GROUP#,MEMBER;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  /u01/app/oracle/oradata/branch/redo01a.log         NO
         1         ONLINE  /u01/app/oracle/oradata/branch/redo01b.log         NO
         2         ONLINE  /u01/app/oracle/oradata/branch/redo02a.log         NO
         2         ONLINE  /u01/app/oracle/oradata/branch/redo02b.log         NO
         3         ONLINE  /u01/app/oracle/oradata/branch/redo03a.log         NO
         3         ONLINE  /u01/app/oracle/oradata/branch/redo03b.log         NO
         4         ONLINE  /u01/app/oracle/oradata/branch/redo04a.log         NO
         4         ONLINE  /u01/app/oracle/oradata/branch/redo04b.log         NO
        10         STANDBY /data/oradata/branch/STAN10.LOG                      NO
        11         STANDBY /data/oradata/branch/STAN11.LOG                      NO
        12         STANDBY /data/oradata/branch/STAN12.LOG                      NO
        13         STANDBY /data/oradata/branch/STAN13.LOG                      NO

16 rows selected.

SQL> alter database open read only;

Database altered.

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

Database altered.


备库重建 standby redo

select * from v$standby_log;	
alter database drop logfile group 10;
alter database add standby logfile group 10 ('/u01/app/oracle/oradata/branch/STAN010A.LOG','/u01/app/oracle/oradata/branch/STAN010B.LOG') size 500m;
select * from v$standby_log;	
alter database drop logfile group 11;
alter database drop logfile group 12;
alter database drop logfile group 13;
select * from v$standby_log;
alter database add standby logfile group 11 ('/u01/app/oracle/oradata/branch/STAN011A.LOG','/u01/app/oracle/oradata/branch/STAN011B.LOG') size 500m;
alter database add standby logfile group 12 ('/u01/app/oracle/oradata/branch/STAN012A.LOG','/u01/app/oracle/oradata/branch/STAN012B.LOG') size 500m;
alter database add standby logfile group 13 ('/u01/app/oracle/oradata/branch/STAN013A.LOG','/u01/app/oracle/oradata/branch/STAN013B.LOG') size 500m;
select * from v$standby_log;
select * from v$logfile order by GROUP#,MEMBER;
alter system set standby_file_management='AUTO' scope=both;
alter database recover managed standby database using current logfile disconnect from session;


备库重建 standby redo操作日志记录

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter system set standby_file_management='MANUAL' scope=both;

System altered.

主库去切换日志让10的状态为UNASSIGNED
SQL> select * from v$standby_log;

    GROUP# DBID                                        THREAD#  SEQUENCE#      BYTES  BLOCKSIZE       USED ARC STATUS     FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
        10 UNASSIGNED                                        1          0  524288000        512          0 NO  UNASSIGNED
        11 3160428602                                        1     850554  524288000        512    6283264 YES ACTIVE        1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
        12 UNASSIGNED                                        1          0  524288000        512          0 NO  UNASSIGNED
        13 UNASSIGNED                                        0          0  524288000        512          0 YES UNASSIGNED

SQL> alter database drop logfile group 10;

Database altered.

SQL> alter database add standby logfile group 10 ('/u01/app/oracle/oradata/branch/STAN010A.LOG','/u01/app/oracle/oradata/branch/STAN010B.LOG') size 500m;

Database altered.

主库去切换日志让10的状态为active
SQL> select * from v$standby_log;

    GROUP# DBID                                        THREAD#  SEQUENCE#      BYTES  BLOCKSIZE       USED ARC STATUS     FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
        10 3160428602                                        1     850555  524288000        512    4889600 YES ACTIVE        1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
        11 UNASSIGNED                                        1          0  524288000        512          0 NO  UNASSIGNED
        12 UNASSIGNED                                        1          0  524288000        512          0 NO  UNASSIGNED
        13 UNASSIGNED                                        0          0  524288000        512          0 YES UNASSIGNED

SQL> alter database drop logfile group 11;

Database altered.

SQL> alter database drop logfile group 12;

Database altered.

SQL> alter database drop logfile group 13;

Database altered.
 
SQL> alter database add standby logfile group 11 ('/u01/app/oracle/oradata/branch/STAN011A.LOG','/u01/app/oracle/oradata/branch/STAN011B.LOG') size 500m;

Database altered.

SQL> alter database add standby logfile group 12 ('/u01/app/oracle/oradata/branch/STAN012A.LOG','/u01/app/oracle/oradata/branch/STAN012B.LOG') size 500m;

Database altered.

SQL> alter database add standby logfile group 13 ('/u01/app/oracle/oradata/branch/STAN013A.LOG','/u01/app/oracle/oradata/branch/STAN013B.LOG') size 500m;

Database altered.

SQL> select * from v$standby_log;

    GROUP# DBID                                        THREAD#  SEQUENCE#      BYTES  BLOCKSIZE       USED ARC STATUS     FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
        10 3160428602                                        1     850555  524288000        512   19894272 YES ACTIVE        1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22   1.7316E+13 06-JAN-22
        11 UNASSIGNED                                        0          0  524288000        512          0 YES UNASSIGNED
        12 UNASSIGNED                                        0          0  524288000        512          0 YES UNASSIGNED
        13 UNASSIGNED                                        0          0  524288000        512          0 YES UNASSIGNED

SQL> select * from v$logfile order by GROUP#,MEMBER;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  /u01/app/oracle/oradata/branch/redo01a.log         NO
         1         ONLINE  /u01/app/oracle/oradata/branch/redo01b.log         NO
         2         ONLINE  /u01/app/oracle/oradata/branch/redo02a.log         NO
         2         ONLINE  /u01/app/oracle/oradata/branch/redo02b.log         NO
         3         ONLINE  /u01/app/oracle/oradata/branch/redo03a.log         NO
         3         ONLINE  /u01/app/oracle/oradata/branch/redo03b.log         NO
         4         ONLINE  /u01/app/oracle/oradata/branch/redo04a.log         NO
         4         ONLINE  /u01/app/oracle/oradata/branch/redo04b.log         NO
        10         STANDBY /u01/app/oracle/oradata/branch/STAN010A.LOG        NO
        10         STANDBY /u01/app/oracle/oradata/branch/STAN010B.LOG        NO
        11         STANDBY /u01/app/oracle/oradata/branch/STAN011A.LOG        NO
        11         STANDBY /u01/app/oracle/oradata/branch/STAN011B.LOG        NO
        12         STANDBY /u01/app/oracle/oradata/branch/STAN012A.LOG        NO
        12         STANDBY /u01/app/oracle/oradata/branch/STAN012B.LOG        NO
        13         STANDBY /u01/app/oracle/oradata/branch/STAN013A.LOG        NO
        13         STANDBY /u01/app/oracle/oradata/branch/STAN013B.LOG        NO

16 rows selected.

SQL> alter system set standby_file_management='AUTO' scope=both;

System altered.

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

Database altered.


报错记录

redo报错

应用途中删除


SQL> alter database drop logfile group 7;                   
alter database drop logfile group 7
*
ERROR at line 1:
ORA-01156: recovery or flashback in progress may need access to files


取消应用在删

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database drop logfile group 7;
alter database drop logfile group 7
*
ERROR at line 1:
ORA-01275: Operation DROP LOGFILE is not allowed if standby file management is automatic.


取消应用开启手动管理删除

SQL> alter system set standby_file_management='MANUAL' scope=both;

System altered.

SQL> alter database drop logfile group 7;
alter database drop logfile group 7
*
ERROR at line 1:
ORA-01624: log 7 needed for crash recovery of instance branch (thread 1)
ORA-00312: online log 7 thread 1: '/data/oradata/branch/redo7.LOG'



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论