删除日志文件组:(前提条件:数据库处于归档模式,并且将要删除的日志文件成员或者日志文件组已经完成归档。)
--先查看数据库的归档模式:
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 89
Next log sequence to archive 92
Current log sequence 92
--添加一个测试日志文件成员:
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/PROD/redo04.log' to group 3;
Database altered.
--查看日志文件组跟成员:
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
1 /u01/app/oracle/oradata/PROD/redo01.log
2 /u01/app/oracle/oradata/PROD/redo02.log
3 /u01/app/oracle/oradata/PROD/redo03.log
4 /u01/app/FRA/redo05.log
4 /u01/app/FRA/redo06.log
3 /u01/app/oracle/oradata/PROD/redo04.log
看到已经成功给第3组日志组添加了一个日志成员4.
--查看各日志文件组的状态:
SQL> select GROUP#,bytes/1024/1024,MEMBERS,STATUS from v$log;
GROUP# BYTES/1024/1024 MEMBERS STATUS
---------- --------------- ---------- ----------------
1 10 1 INACTIVE
2 10 1 CURRENT
3 10 2 INACTIVE
4 20 2 INACTIVE
可以看到目前正在使用第2组日志文件,其他的日志组都处于INACTIVE状态,已经完成归档的状态。
--删除一个日志文件组第4组并查看日志文件组与成员:
SQL> alter database drop logfile group 4;
Database altered.
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
1 /u01/app/oracle/oradata/PROD/redo01.log
2 /u01/app/oracle/oradata/PROD/redo02.log
3 /u01/app/oracle/oradata/PROD/redo03.log
3 /u01/app/oracle/oradata/PROD/redo04.log
看到已经把第4组日志文件组成功删除。
--删除日志文件组3的日志文件成员4并查看日志文件组与成员:
SQL> alter database drop logfile member
2 '/u01/app/oracle/oradata/PROD/redo04.log' ;
Database altered.
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
1 /u01/app/oracle/oradata/PROD/redo01.log
2 /u01/app/oracle/oradata/PROD/redo02.log
3 /u01/app/oracle/oradata/PROD/redo03.log
已经成功删除一个日志文件成员redo04.log.
--最后查看一下,有没有触碰到current日志文件:
SQL> select GROUP#,bytes/1024/1024,MEMBERS,STATUS from v$log;
GROUP# BYTES/1024/1024 MEMBERS STATUS
---------- --------------- ---------- ----------------
1 10 1 INACTIVE
2 10 1 CURRENT
3 10 1 INACTIVE
发现没有误删除日志文件组或成员。
--尝试关闭数据库并再次打开:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 541068368 bytes
Database Buffers 289406976 bytes
Redo Buffers 2371584 bytes
Database mounted.
Database opened.
开始的时候,说到删除日志文件组或者成员的前提条件:除了数据库处于归档模式,并且将要删除的日志文件成员
或者日志文件组已经完成归档,则一般不是current或者active两种状态下的都可以删除,还需要确保数据库除要删除
的日志组外还有两个日志文件组可以使用。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31392094/viewspace-2126724/
,如需转载,请注明出处,否则将追究法律责任。