但是这显然是不行的,移动位置,相当于物理层面删掉了日志组的成员,这样每个组就只有一个成员了,非常危险.此时在数据库里查看时,被移动的文件的状态变成了invalid,
SQL> select GROUP#,STATUS , from v$logfile;
GROUP# STATUS MEMBER
---------- -------
2 invalied /software/oradata/JLPROJCT/redo02A.log
1 invalied /software/oradata/JLPROJCT/redo01A.log
3 invalied /software/oradata/JLPROJCT/redo03A.log
1 /software/oradata01/JLPROJCT/redo01B.log
5 /software/oradata01/JLPROJCT/redo05B.log
6 invalied /software/oradata/JLPROJCT/redo06A.log
8 invalied /software/oradata/JLPROJCT/redo08A.log
7 invalied /software/oradata/JLPROJCT/redo07A.log
4 invalied /software/oradata/JLPROJCT/redo04A.log
2 /software/oradata01/JLPROJCT/redo02B.log
5 invalied /software/oradata/JLPROJCT/redo05A.log
GROUP# STATUS
---------- -------
7 /software/oradata01/JLPROJCT/redo07B.log
4 /software/oradata01/JLPROJCT/redo04B.log
3 /software/oradata01/JLPROJCT/redo03B.log
6 /software/oradata01/JLPROJCT/redo06B.log
8 /software/oradata01/JLPROJCT/redo08B.log
16 rows selected.
这时候如果你后悔了,你不想移动这个8个成员了,你只需要再把它们移动回去既可以,而且数据库是打开状态的,然后切换几次日志,再查看
他们的状态就会由 invalied 变回正常。
接下来应该做的事应该是:找个数据库空闲的时候,在数据层面删掉被移动的那8个成员,然后重新添加新的成员(换路径)。
alter database add logfile member '/backup/oradata/JLPROJCT/redo01A.log' TO GROUP 1,
删除日志组的原则:每个实例必须至少有两个日志组;当一个组处于ACTIVE或者CURRENT的状态时不可删除;删除日志组的操作只对数据库进行更改,操作系统的文件尚未删除;当删除时适用DROP LOGFILE GROUP N语句时,此时GROUP N内的所有成员都将被删除
删除日志成员的原则:当你删除一个是该组中最后一个成员的时候,你不能删除此成员;当组的状态处于current的状态时,不能删除组成员;在归档模式下,必须得归档之后才能删除;删除日志组成员的操作只对数据库进行更改,操作系统的文件尚未删除。