SQL> alter database add logfile group 1 '/oradata/ora10g/redo01.log' size 50m;
Database altered.
先在OS上物理删除日志组1对应的文件redo01.log,再重新添加,添加时指定新的组号group 1
SQL> alter database drop logfile '/oradata/ora10g/redo02.log';
Database altered.
添加完日志组1,就可以删除日志组2,因为只要满足仍然有2组日志这个条件即可
SQL> ! [oracle@bak ~]$ rm -f /oradata/ora10g/redo02.log [oracle@bak ~]$ exit exit
SQL> alter database add logfile group 2 '/oradata/ora10g/redo02.log' size 50m;
Database altered.
同样地,继续完成日志组2的更新,先物理删除文件,再指定组名添加
由于日志组6是当前日志,因此不能直接删除,需要先切换日志
SQL> alter system switch logfile; alter system switch logfile * ERROR at line 1: ORA-01109: database not open
SQL> alter database open;
Database altered.
GROUP# SEQUENCE# SIZE(MB) ARC STATUS ---------- ---------- ---------- --- ---------------- 1 0 50 YES UNUSED 2 0 50 YES UNUSED 6 1 50 NO CURRENT
SQL> alter system switch logfile;
System altered.
SQL> select group#,sequence#,(bytes/1024/1024) "SIZE(MB)",archived,status from v$log;
GROUP# SEQUENCE# SIZE(MB) ARC STATUS ---------- ---------- ---------- --- ---------------- 1 2 50 NO CURRENT 2 0 50 YES UNUSED 6 1 50 NO ACTIVE
切换一次日志后,group 1成为当前日志组,现在可以删除日志组3了
SQL> alter database drop logfile '/oradata/ora10g/redo03.log';
Database altered.
SQL> ! [oracle@bak ~]$ rm -f /oradata/ora10g/redo03.log [oracle@bak ~]$ exit exit
SQL> alter database add logfile group 3 '/oradata/ora10g/redo03.log' size 50m;
Database altered.
SQL> select group#,sequence#,(bytes/1024/1024) "SIZE(MB)",archived,status from v$log;
GROUP# SEQUENCE# SIZE(MB) ARC STATUS ---------- ---------- ---------- --- ---------------- 1 2 50 NO CURRENT 2 0 50 YES UNUSED 3 0 50 YES UNUSED
现在,已经把日志组编号调整到正常状态了,当然了,如果不改也不会影响数据库的正常使用