重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3207|回复: 0
打印 上一主题 下一主题

[Oracle] DG备库添加或修改redo文件

[复制链接]
跳转到指定楼层
楼主
发表于 2020-8-9 17:30:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注意:log_file_name_convert参数如果没有配置,将导致备库redo文件不能被删除
检查主备库状态
主库:
  
SQL> select  SEQUENCE#,first_time,next_time,APPLIED, THREAD# from v$archived_log order  by  SEQUENCE#,THREAD#;
  
  
SEQUENCE#  FIRST_TIME   NEXT_TIME    APPLIED    THREAD#
  
---------- ------------ ------------ --------- -------
  
        59 07-AUG-20    07-AUG-20    YES             1
  
        59 07-AUG-20    07-AUG-20    NO              1
  
        60 07-AUG-20    07-AUG-20    YES             1
  
        60 07-AUG-20    07-AUG-20    NO              1
  
        61 07-AUG-20    07-AUG-20    NO              1
  
        61 07-AUG-20    07-AUG-20    YES             1
  
        62 07-AUG-20    07-AUG-20    NO              1
  
        62 07-AUG-20    07-AUG-20    YES             1
  
  
SQL> set linesize 300
  
SQL> select  LOG_MODE,CONTROLFILE_TYPE,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS  from v$database;
  
  
LOG_MODE      CONTROL OPEN_MODE             PROTECTION_MODE       DATABASE_ROLE     SWITCHOVER_STATUS
  
------------ ------- --------------------  -------------------- ---------------- --------------------
  
ARCHIVELOG    CURRENT READ WRITE            MAXIMUM PERFORMANCE   PRIMARY          TO STANDBY
  
  
SQL> select  GROUP#,BYTES/1024/1024 from v$log;
  
  
GROUP# BYTES/1024/1024
  
------ ---------------
  
     1              50
  
     2              50
  
     3              50
  
  
SQL> select  GROUP#,BYTES/1024/1024,STATUS from v$standby_log;
  
  
GROUP# BYTES/1024/1024 STATUS
  
------ --------------- ----------
  
     4              50 UNASSIGNED
  
     5              50 UNASSIGNED
  
     6              50 UNASSIGNED
  
  
SQL>
  
  
备库:
  
SQL> select  SEQUENCE#,first_time,next_time,APPLIED, THREAD# from v$archived_log order  by  SEQUENCE#,THREAD#;
  
  
SEQUENCE# FIRST_TIME    NEXT_TIME    APPLIED      THREAD#
  
---------- ------------ ------------ ---------  ----------
  
        59 07-AUG-20    07-AUG-20    YES                1
  
        60 07-AUG-20    07-AUG-20    YES                1
  
        61 07-AUG-20    07-AUG-20    YES                1
  
        62 07-AUG-20    07-AUG-20    YES                1
  
  
SQL> select  LOG_MODE,CONTROLFILE_TYPE,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS  from v$database;
  
  
LOG_MODE      CONTROL OPEN_MODE             PROTECTION_MODE       DATABASE_ROLE     SWITCHOVER_STATUS
  
------------ ------- --------------------  -------------------- ---------------- --------------------
  
ARCHIVELOG    STANDBY MOUNTED               MAXIMUM PERFORMANCE  PHYSICAL  STANDBY SWITCHOVER PENDING
  
  
SQL> select  GROUP#,BYTES/1024/1024 from v$log;
  
  
    GROUP#  BYTES/1024/1024
  
---------- ---------------
  
         1              50
  
         3              50
  
         2              50
  
  
SQL> select  GROUP#,BYTES/1024/1024,STATUS from v$standby_log;
  
  
    GROUP#  BYTES/1024/1024 STATUS
  
---------- --------------- ----------
  
         4              50 UNASSIGNED
  
         5              50 UNASSIGNED
  
         6              50 UNASSIGNED
  
  
SQL>
  
  
断开备库日志应用并切换为手工管理standby file参数
  
SQL> alter system set  standby_file_management=manual;
  
  
System altered.
  
  
SQL> alter database recover  managed standby database cancel;
  
  
Database altered.
  
主库添加新的redo日志组,删除旧redo日志组
  
SQL> alter database add  logfile group 4 '/u01/oracle/oradata/orcl/redo04.log' size 500M;
  
  
Database altered.
  
  
SQL> alter database add  logfile group 5 '/u01/oracle/oradata/orcl/redo05.log' size 500M;
  
  
Database altered.
  
  
SQL> alter database add  logfile group 6 '/u01/oracle/oradata/orcl/redo06.log' size 500M;
  
  
Database altered.
  
  
SQL> alter database drop  logfile group 1;
  
  
Database altered.
  
  
SQL> alter database drop  logfile group 2;
  
alter database drop logfile group 2
  
*
  
ERROR at line 1:
  
ORA-01623: log 2 is current log for instance orcl  (thread 1) - cannot drop
  
ORA-00312: online log 2 thread 1:  '/u01/oracle/oradata/orcl/redo02.log'
  
  
这里切换一下日志,然后再操作
  
SQL> alter system switch logfile;
  
  
System altered.
  
  
SQL> /
  
  
System altered.
  
  
SQL> alter database drop logfile group 2;
  
alter database drop logfile group 2
  
*
  
ERROR at line 1:
  
ORA-01624: log 2 needed for crash recovery of instance  orcl (thread 1)
  
ORA-00312: online log 2 thread 1:  '/u01/oracle/oradata/orcl/redo02.log'
  
  
执行一下检查
  
SQL> alter system  checkpoint;
  
  
System altered.
  
  
SQL>  alter database drop logfile group 2;
  
  
Database altered.
  
  
SQL> alter database drop  logfile group 3;
  
  
Database altered.
  
  
  
set linesize 500
  
col group# for 999
  
col mb for 999
  
col member for a100
  
col thread# for 999
  
col archived for a10
  
SQL> select  a.group#,a.BYTES/1024/1024  mb,b.MEMBER,a.thread#,a.sequence#,a.members,a.archived,a.status,a.first_time,a.next_time  from gv$log a,gv$logfile b where a.GROUP#=b.GROUP# group by  a.group#,a.thread#,a.BYTES/1024/1024,b.MEMBER,a.sequence#,a.members,a.archived,a.status,a.first_time,a.next_time  order by group#;
  
  
GROUP#   MB  MEMBER                                                                                                THREAD#  SEQUENCE#    MEMBERS ARCHIVED   STATUS           FIRST_TIME   NEXT_TIME
  
------ ----  ----------------------------------------------------------------------------------------------------  ------- ---------- ---------- ---------- ---------------- ------------  ------------
  
    4  500 /u01/oracle/oradata/orcl/redo04.log                                                                         1         64          1 YES        INACTIVE         07-AUG-20    07-AUG-20
  
    5  500 /u01/oracle/oradata/orcl/redo05log                                                                        1         65          1 NO         CURRENT          07-AUG-20
  
    6  500 /u01/oracle/oradata/orcl/redo06.log                                                                         1          0          1 YES        UNUSED
  
  
备库库添加新的redo日志组,删除旧redo日志组
  
SQL> alter database add  logfile group 4 '/u01/oracle/oradata/orcl/redo04.log' size 500M;
  
  
Database altered.
  
  
SQL> alter database add  logfile group 5 '/u01/oracle/oradata/orcl/redo05.log' size 500M;
  
  
Database altered.
  
  
SQL> alter database add  logfile group 6 '/u01/oracle/oradata/orcl/redo06.log' size 500M;
  
  
Database altered.
  
  
SQL> alter database drop  logfile group 1;
  
alter database drop logfile group 1
  
*
  
ERROR at line 1:
  
ORA-01624: log 1 needed for crash recovery of instance  orcl (thread 1)
  
ORA-00312: online log 1 thread 1:  '/u01/oracle/oradata/orcl/redo01.log'
  
  
清理一下redo
  
SQL> ALTER DATABASE CLEAR  LOGFILE GROUP 1;
  
  
Database altered.
  
  
SQL> ALTER DATABASE CLEAR  LOGFILE GROUP 2;
  
  
Database altered.
  
  
SQL> ALTER DATABASE CLEAR  LOGFILE GROUP 3;
  
  
Database altered.
  
  
再执行删除原来的redo
  
SQL> alter database drop  logfile group 1;
  
  
Database altered.
  
  
SQL> alter database drop  logfile group 2;
  
  
Database altered.
  
  
SQL> alter database drop  logfile group 3;
  
  
Database altered.
  
  
SQL>                     
  
set linesize 500
  
col group# for 999
  
col mb for 999
  
col member for a100
  
col thread# for 999
  
col archived for a10
  
SQL> select  a.group#,a.BYTES/1024/1024  mb,b.MEMBER,a.thread#,a.sequence#,a.members,a.archived,a.status,a.first_time,a.next_time  from gv$log a,gv$logfile b where a.GROUP#=b.GROUP# group by  a.group#,a.thread#,a.BYTES/1024/1024,b.MEMBER,a.sequence#,a.members,a.archived,a.status,a.first_time,a.next_time  order by group#;
  
  
GROUP#   MB  MEMBER                                                                                                THREAD#  SEQUENCE#    MEMBERS ARCHIVED   STATUS           FIRST_TIME   NEXT_TIME
  
------ ---- ----------------------------------------------------------------------------------------------------  ------- ---------- ---------- ---------- ---------------- ------------  ------------
  
    4  500 /u01/oracle/oradata/orcl/redo04.log                                                                         1         64          1 YES        INACTIVE         07-AUG-20    07-AUG-20
  
    5  500 /u01/oracle/oradata/orcl/redo05log                                                                        1         65          1 NO         CURRENT          07-AUG-20
  
    6  500 /u01/oracle/oradata/orcl/redo06.log                                                                         1          0          1 YES        UNUSED
  
  
到此DG备库的redo的文件添加完成,如果要修改回原来的组,则可以参考http://bbs.cqsztech.com/forum.php?mod=viewthread&tid=27349&extra=里的内容重新创建重做日志
开启日志应用和standby file自动管理
  
SQL> alter database recover managed standby  database disconnect from session;
  
  
Database altered.
  
  
SQL> alter system set standby_file_management=auto;  
  
  
System altered.
  
  

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-26 18:31 , Processed in 0.121608 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表