在线修改redo.文件的路径


------------在线修改redo.log文件的路径
------1.登陆
Enter user-name: system
Enter password: 
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

USER       ID_SESSION             SCN HOST            LOCAL           NOW
---------- --------------- ---------- --------------- --------------- -----------------
SYSTEM     139,5           2.9142E+10 168.169.88.100                  20140515 08:07:48

------2.查看当前日志组成员

08:18:11 system@ORCL> col member format a50

08:18:19 system@ORCL> select * from v$logfile;


    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log            NO
         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log            NO
         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log            NO
         
------3.查看当前日志组状态

08:18:22 system@ORCL> select group#,members,bytes/1024/1024,status from v$log; 

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 INACTIVE
         2          1              50 CURRENT
         3          1              50 INACTIVE   

可以看到:现有三个日志组,每个组内有一个成员,每个成员的大小为50MB,
现在想更改日志所在在路径,使其与数据文件目录分开,
步骤如下:


------1.创建三个新的日志组,每组包含一个日志文件

08:21:45 system@ORCL> alter database add logfile group 4 ('/home/oracle/redo_path/REDO04.LOG') size 50M; 
Database altered.
08:21:59 system@ORCL> alter database add logfile group 5 ('/home/oracle/redo_path/REDO05.LOG') size 50M; 
Database altered.
08:22:10 system@ORCL> alter database add logfile group 6 ('/home/oracle/redo_path/REDO06.LOG') size 50M; 
Database altered.

------2.切换日志到新的日志组

08:53:30 system@ORCL> alter system switch logfile;  -----可能需要执行多次切换,才能是新创建的日志文件为CURRENT
System altered.
08:53:34 system@ORCL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 ACTIVE
         2          1              50 ACTIVE
         3          1              50 ACTIVE
         4          1              50 ACTIVE
         5          1              50 CURRENT
         6          1              50 ACTIVE
   
  日志文件状态解释:
      current:当前活动重做日志,进行实例恢复是必须的!      
      active:活动的非当前重做日志,实例恢复时会被用到。此状态意味checkpoint尚未完成.     
      inactive:非活动日志,在实例恢复时不需要,但介质恢复时需要。      
      unused:日志从未被写入,可能刚被添加或者resetlogs后被重置
------3.执行checkpoint,使redo的数据写入到datafile,使ACTIVE状态的日志变为INACTIVE状态
--只有INACTIVE状态的日志组,才可以被删除

08:53:39 system@ORCL> alter system checkpoint;
System altered.

------4.查看当前日志组状态

08:54:34 system@ORCL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 INACTIVE
         2          1              50 INACTIVE
         3          1              50 INACTIVE
         4          1              50 INACTIVE
         5          1              50 CURRENT
         6          1              50 UNUSED
         
------5.删除原日志组

08:55:34 system@ORCL> alter database drop logfile group 1;
Database altered.
08:56:03 system@ORCL> alter database drop logfile group 2;
Database altered.
08:56:20 system@ORCL> alter database drop logfile group 3;
Database altered.

------6.查看当前日志组状态

08:58:35 system@ORCL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         4          1              50 INACTIVE 
         5          1              50 CURRENT  
         6          1              50 UNUSED   

------7.物理删除原日志组文件(在操作系统下删除),redo01,redo02,redo03,

 [oracle@localhost ~]$ cd /u01/app/oracle/oradata/orcl/
 [oracle@localhost orcl]$ rm -rf redo01.log
 [oracle@localhost orcl]$ rm -rf redo02.log
 [oracle@localhost orcl]$ rm -rf redo03.log
 
------8.重新创建日志组1,2,3

08:59:45 system@ORCL> alter database add logfile group 1 ('/home/oracle/redo_path/REDO01.LOG') size 50M; 
Database altered.
08:59:59 system@ORCL> alter database add logfile group 2 ('/home/oracle/redo_path/REDO02.LOG') size 50M; 
Database altered.
09:00:10 system@ORCL> alter database add logfile group 3 ('/home/oracle/redo_path/REDO03.LOG') size 50M; 
Database altered.

------9.查看当前日志组状态

09:00:20  system@ORCL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP#    MEMBERS BYTES/1024/1024 STATUS

---------- ---------- --------------- ----------------
         1          1              50 UNUSED
         2          1              50 UNUSED
         3          1              50 UNUSED
         4          1              50 INACTIVE
         5          1              50 INACTIVE
         6          1              50 CURRENT
------10.切换日志到新的日志组

09:02:04 system@ORCL> alter system switch logfile; -----可能需要执行多次切换,才能是新创建的日志文件为CURRENT
System altered.
09:03:10 system@ORCL> select group#,members,bytes/1024/1024,status from v$log;    

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 CURRENT
         2          1              50 INACTIVE
         3          1              50 ACTIVE
         4          1              50 ACTIVE
         5          1              50 ACTIVE
         6          1              50 ACTIVE

------11.执行checkpoint,使redo的数据写入到datafile,使ACTIVE状态的日志变为INACTIVE状态
---只有INACTIVE状态的日志组,才可以被删除


09:04:15 system@ORCL> alter system checkpoint;
System altered.
09:04:30 system@ORCL> select group#,members,bytes/1024/1024,status from v$log;    
    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 CURRENT
         2          1              50 INACTIVE
         3          1              50 INACTIVE
         4          1              50 INACTIVE
         5          1              50 INACTIVE
         6          1              50 INACTIVE

------12.删除日志组4,5,6
09:05:30 system@ORCL> alter database drop logfile group 4;
Database altered.
09:05:35 system@ORCL> alter database drop logfile group 5;
Database altered.
09:05:40 system@ORCL> alter database drop logfile group 6;
Database altered.

------13.物理删除原日志组文件(在操作系统下删除),redo04,redo05,redo06

 [oracle@localhost orcl]$ cd /home/oracle/redo_path/
 [oracle@localhost redo_path]$  rm -rf redo04.log
 [oracle@localhost redo_path]$  rm -rf redo05.log
 [oracle@localhost redo_path]$  rm -rf redo06.log
 
------14.查看当前日志组状态

10:54:24 sys@ORCL> col member format a50
10:55:13 sys@ORCL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  /home/oracle/redo_path/REDO01.LOG                  NO
         2         ONLINE  /home/oracle/redo_path/REDO02.LOG                  NO
         3         ONLINE  /home/oracle/redo_path/REDO03.LOG                  NO
         
09:05:57 sys@ORCL>  select group#,members,bytes/1024/1024,status from v$log;    

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 CURRENT
         2          1              50 INACTIVE
         3          1              50 INACTIVE
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章