ITPub博客

首页 > 数据库 > Oracle > 删除日志文件组或成员

删除日志文件组或成员

原创 Oracle 作者:skyin_1603 时间:2016-10-19 12:36:33 0 删除 编辑
删除日志文件组:(前提条件:数据库处于归档模式,并且将要删除的日志文件成员或者日志文件组已经完成归档。)

--先查看数据库的归档模式:
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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-09-06

  • 博文量
    231
  • 访问量
    215133