------------在线修改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;
---------- ------- ------- -------------------------------------------------- ---
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