ORACLE 在线移动redo log路径、删除无效的redo log

原创 2017年04月04日 23:36:12

 

 

移动redo文件路径,默认的redo log文件的路径和archivelog的路径一样,在闪回区,因为闪回区有大小限制,所以redo log和archive log特别是archive log越来越多后,会撑爆闪回区。规范起见,需要将redo log以及archive log放到单独的路径区域里面去。

 

1,查看现有的redo文件路径

查看现有的redo文件路径,看到默认的在闪回区路径下面:

         SQL> select member from v$logfile;
 
         MEMBER
         --------------------------------------------------------------------------------
         /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_3_dfkstobl_.log
 
         /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfksto61_.log
 
         /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_1_dfksto1q_.log
 
         /home/oradata/powerdes/redo_dg_021.log
         /home/oradata/powerdes/redo_dg_022.log
 
         MEMBER
         --------------------------------------------------------------------------------
         /home/oradata/powerdes/redo_dg_023.log
 
         6 rows selected.
 
         SQL>

 


2,关闭数据库,copy redo文件到新地址   

关闭数据库后,copy文件:

         SQL> shutdown immediate;
         ORA-01109: database not open
 
 
         Database dismounted.
         ORACLE instance shut down.
         SQL>
 
cp文件地址:
         [oracle@hch_test_dbm1_121_63 ~]$ mv /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_3_dfkstobl_.log /home/oradata/powerdes/redo03.log
         [oracle@hch_test_dbm1_121_63 ~]$ mv /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfksto61_.log /home/oradata/powerdes/redo02.log
         [oracle@hch_test_dbm1_121_63 ~]$ mv /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_1_dfksto1q_.log /home/oradata/powerdes/redo01.log
        
         cp  /home/oradata/powerdes/redo03.log /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_3_dfkstobl_.log
         cp  /home/oradata/powerdes/redo02.log /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfkstobl_.log
         cp  /home/oradata/powerdes/redo01.log /oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_1_dfkstobl_.log
 


 

3,  数据库启动mount,执行rename切换redo日志路径

执行命令:
         alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_3_dfkstobl_.log' to '/home/oradata/powerdes/redo03.log';
         alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfksto61_.log' to '/home/oradata/powerdes/redo02.log';
         alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_1_dfksto1q_.log' to '/home/oradata/powerdes/redo01.log';
        
         执行报错
         SQL> alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_3_dfkstobl_.log' to '/home/oradata/powerdes/redo03.log';
         alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_3_dfkstobl_.log' to '/home/oradata/powerdes/redo03.log'
         *
         ERROR at line 1:
         ORA-01511: error in renaming log/data files
         ORA-01275: Operation RENAME is not allowed if standby file management is
         automatic.



         命令执行报错,提示说standbyfile maangement参数为自动,自动情况下不允许修改,好吧,听它的,修改成手动的,这样我们就可以移动它的目录地址了

         SQL> show parameter standby;
 
         NAME                                        TYPE       VALUE
         ------------------------------------ ----------- ------------------------------
         standby_archive_dest                   string     ?/dbs/arch
         standby_file_management         string     AUTO
         SQL> alter system set standby_file_management = MANUAL;
 
         System altered.
 
         SQL>       
        
         SQL> alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_3_dfkstobl_.log' to '/home/oradata/powerdes/redo03.log';
 
         Database altered.
 
         SQL>


 

执行第一个成功,但是执行第二个报错,记录如下:

        SQL> alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfkstobl_.log' to '/home/oradata/powerdes/redo02.log';
         alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfkstobl_.log' to '/home/oradata/powerdes/redo02.log'
         *
         ERROR at line 1:
         ORA-01511: error in renaming log/data files
         ORA-01516: nonexistent log file, data file, or temporary file
         "/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfkstobl_.
         log"
 
 
         SQL>
        
         看提示,这个文件non existstent log file,看是文件不存在,check下,修改成正确的文件名,再次执行。
        
         再次执行
         SQL> alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_2_dfksto61_.log' to '/home/oradata/powerdes/redo02.log';
 
         Database altered.
 
         SQL> alter database rename file '/oracle/app/oracle/flash_recovery_area/POWERDES_S1/onlinelog/o1_mf_1_dfksto1q_.log' to '/home/oradata/powerdes/redo01.log';
 
         Database altered.
 
         SQL>





 

4,检查查看当前路径:

        SQL> show parameter db_file_name_convert;
 
         NAME                                        TYPE       VALUE
         ------------------------------------ ----------- ------------------------------
         db_file_name_convert                   string
         SQL>
         SQL>  select member from v$logfile;
 
         MEMBER
         --------------------------------------------------------------------------------
         /home/oradata/powerdes/redo03.log
         /home/oradata/powerdes/redo02.log
         /home/oradata/powerdes/redo01.log
         /home/oradata/powerdes/redo_dg_021.log
         /home/oradata/powerdes/redo_dg_022.log
         /home/oradata/powerdes/redo_dg_023.log
 
         6 rows selected.
 
         SQL> select name from v$datafile;
 
         NAME
         --------------------------------------------------------------------------------
         /home/oradata/powerdes/system01.dbf
         /home/oradata/powerdes/sysaux01.dbf
         /home/oradata/powerdes/undotbs01.dbf
         /home/oradata/powerdes/users01.dbf
         /home/oradata/powerdes/powerdesk01.dbf
         /home/oradata/powerdes/plas01.dbf
         /home/oradata/powerdes/pl01.dbf
         /home/oradata/powerdes/help01.dbf
         /home/oradata/powerdes/adobelc01.dbf
         /home/oradata/powerdes/sms01.dbf
         /home/oradata/powerdes/plcrm01.dbf
 
         NAME
         --------------------------------------------------------------------------------
         /home/oradata/powerdes/powerdesk02.dbf
         /home/oradata/powerdes/datagm01.dbf
         /home/oradata/powerdes/plimp01.DBF
         /home/oradata/powerdes/dwetl01.DBF
         /home/oradata/powerdes/dw02.DBF
         /home/oradata/powerdes/timdba01.DBF
 
         17 rows selected.
 
         SQL>




         重启查看新的路径是否生效

         SQL> shutdown immediate;
         ORA-01109: database not open
 
 
         Database dismounted.
         ORACLE instance shut down.
         SQL> startup mount;
         ORACLE instance started.
 
         Total System Global Area 2.6991E+10 bytes
         Fixed Size              2213976 bytes
         Variable Size              1.9059E+10 bytes
         Database Buffers    7784628224 bytes
         Redo Buffers               145174528 bytes
         Database mounted.
         SQL>
         SQL> select member from v$logfile;
 
         MEMBER
         --------------------------------------------------------------------------------
         /home/oradata/powerdes/redo03.log
         /home/oradata/powerdes/redo02.log
         /home/oradata/powerdes/redo01.log
         /home/oradata/powerdes/redo_dg_021.log
         /home/oradata/powerdes/redo_dg_022.log
         /home/oradata/powerdes/redo_dg_023.log
 
         6 rows selected.
 
         SQL>

 



 

5,清除多余的redo日志组

查看现在的日志文件

        SQL> select * from v$log;
 
                   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE          MEMBERS ARC
         ---------- ---------- ---------- ---------- ---------- ---------- ---
         STATUS              FIRST_CHANGE# FIRST_TIME   NEXT_CHANGE# NEXT_TIME
         ---------------- ------------- ------------ ------------ ------------
                    1         1            139   52428800     512              1 YES
         CURRENT            1.4120E+10 31-MAR-17      2.8147E+14
 
                    3         1              0   52428800     512              1 YES
         CLEARING            1.4120E+10 31-MAR-17      2.8147E+14
 
                    2         1              0   52428800     512              1 YES
         UNUSED                1.4120E+10 31-MAR-17      1.4120E+10 31-MAR-17
 
 
         SQL>
 




       

        

         查看现在的redo日志文件

         SQL> select * from v$logfile;
 
                   GROUP# STATUS  TYPE
         ---------- ------- -------
         MEMBER
         --------------------------------------------------------------------------------
         IS_
         ---
                    3        ONLINE
         /home/oradata/powerdes/redo01.log
         NO
 
                    2        ONLINE
         /home/oradata/powerdes/redo02.log
         NO
 
                   GROUP# STATUS  TYPE
         ---------- ------- -------
         MEMBER
         --------------------------------------------------------------------------------
         IS_
         ---
 
                    1        ONLINE
         /home/oradata/powerdes/redo03.log
         NO
 
                    4        STANDBY
         /oracle/app/oracle/fast_recovery_area/POWERDES_S2/onlinelog/o1_mf_4_dfw3zf9v_.lo
 
                   GROUP# STATUS  TYPE
         ---------- ------- -------
         MEMBER
         --------------------------------------------------------------------------------
         IS_
         ---
         g
         YES
 
                    5        STANDBY
         /oracle/app/oracle/fast_recovery_area/POWERDES_S2/onlinelog/o1_mf_5_dfw3zg5r_.lo
         g
         YES
 
                   GROUP# STATUS  TYPE
         ---------- ------- -------
         MEMBER
         --------------------------------------------------------------------------------
         IS_
         ---
 
                    6        STANDBY
         /oracle/app/oracle/fast_recovery_area/POWERDES_S2/onlinelog/o1_mf_6_dfw3zh1q_.lo
         g
         YES
 
 
         6 rows selected.
 
         SQL>





 


保守一些,select * from v$log;里面查不到的log文件,都可以删除掉;甚至彻底些不在CURRENT里面的,也可以删除掉。

        SQL> alter database drop logfile group 5;
 
         Database altered.
 
         SQL> alter database drop logfile group; 6;
 
         Database altered.
 
         SQL> alter database drop logfile group 4;
 
         Database altered.
 
         SQL>
        
         check,已经删除了多余的redo文件
         SQL> select member from v$logfile;
 
         MEMBER
         --------------------------------------------------------------------------------
         /home/oradata/powerdes/redo01.log
         /home/oradata/powerdes/redo02.log
         /home/oradata/powerdes/redo03.log
 
         SQL>
 


 
 

 


修改redo log files路径

如果可以关闭数据库,可以采用下述步骤。如果不能关闭数据库,只能采用新建redo log files的方式来实现修改该redo 的路径了。 一、shutdown the database 二、...
  • lwei_998
  • lwei_998
  • 2011年11月14日 12:29
  • 6376

Oracle redo log 删除后处理方法

在生产中,难免碰到各种场景。下面记录一下redo log被删除掉的处理方法。 数据库版本: SQL> select * from v$version; BANNER --------------...
  • JasonLiu_2012
  • JasonLiu_2012
  • 2013年03月22日 14:48
  • 1153

win7 oracle 冷恢复

Ghost了系统oracle 数据库肯定没了,重装。不过还好什么控制文件、表空间还在,(归档我给停了没用下次试试用归档备份还原)就像到了冷备份。报着试试看的态度,一开始以为冷备份怎么和以前的表空间相联...
  • lchen1983
  • lchen1983
  • 2012年07月26日 11:46
  • 1061

DG环境下 redo和 standby redo的增加和删除--及相关遇到的问题

起因是alert.log 里经常报 Thread 1 cannot allocate new log, sequence 37255 Checkpoint not complete 相关原因,t...
  • hkyw000
  • hkyw000
  • 2015年11月18日 11:34
  • 875

Oracle学习(九)之删除日志组和日志文件

1.删除日志组1)查看日志组(CURRENT状态的日志组需要切换日志,其他状态的可以删除)SQL> select GROUP#,status from v$log; GROUP# STATU...
  • lzg1169350237
  • lzg1169350237
  • 2015年05月30日 11:39
  • 4152

Oracle移动重做日志文件

Oracle移动重做日志的方法很简单,下面就为您详细介绍Oracle移动重做日志文件的方法,如果您对Oracle移动重做日志方面感兴趣的话,不妨一看。$ sqlplus '/as sysdba' #关...
  • e_wsq
  • e_wsq
  • 2018年03月17日 20:51
  • 24

oracle中如何移动控制文件,数据文件,日志文件

ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。 windows环境中用: host copy 或 host move 其它均相同。 以下是unix或linux环境中, 一.移...
  • yudehui
  • yudehui
  • 2011年10月23日 19:48
  • 2970

在线修改redo.文件的路径

------------在线修改redo.log文件的路径 ------1.登陆 Enter user-name: system Enter password:  Connecte...
  • sslflying
  • sslflying
  • 2014年05月15日 11:01
  • 777

redologfile 的简单介绍

一、 redologfile 的简单介绍       它一般有大小相同的一组文件构成。我们可以查看数据库视图 v$logfile 知道它的个数和存储位置。       SVRMGRL>sele...
  • mituan1234567
  • mituan1234567
  • 2012年12月20日 15:39
  • 525

Oracle关于日志文件基本操作

1.查询系统使用的是哪一组日志文件: select * from v$log; 2.查询正在使用的组所对应的日志文件: select * from v$logfile; 3.强制日志切换: ...
  • wanglipo
  • wanglipo
  • 2012年02月24日 11:47
  • 2893
收藏助手
不良信息举报
您举报文章:ORACLE 在线移动redo log路径、删除无效的redo log
举报原因:
原因补充:

(最多只允许输入30个字)