删除联机重做日志组成员redolog group

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 20:45 点击:

关于联机重做日志文件组的删除需要注意以下几点:
  ①日志组为active和current状态时不可以删除
  ②日志组在数据库级别删除后操作系统上的文件不会被级链删除
  ③对于一个Oracle数据库实例,至少要包含两个联机重做日志组

1.日志组为active和current状态时不可以删除
1)查询当前系统中日志组状态
sys@ora10g> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         1 CURRENT
         2 INACTIVE
         3 INACTIVE

2)尝试删除状态为“CURRENT”的联机重做日志组
这里显示为“CURRENT”状态的日志组为第一组。
sys@ora10g> alter database drop logfile group 1;
alter database drop logfile group 1
*
ERROR at line 1:
ORA-01623: log 1 is current log for instance ora10g (thread 1) - cannot drop
ORA-00312: online log 1 thread 1: '/oracle/ora10gR2/oradata/ora10g/redo01.log'

提示信息描述得很清楚,由于要删除的第一组日志是ora10g实例的当前日志组,不允许删除。

2.日志组在数据库级别删除后操作系统上的文件不会被级链删除
1)获取日志组成员信息
sys@ora10g> col MEMBER for a50
sys@ora10g> select group#,member from v$logfile;

    GROUP# MEMBER
---------- --------------------------------------------------
         1 /oracle/ora10gR2/oradata/ora10g/redo01.log
         2 /oracle/ora10gR2/oradata/ora10g/redo02.log
         3 /oracle/ora10gR2/oradata/ora10g/redo03.log

2)删除第三组日志
sys@ora10g> alter database drop logfile group 3;

Database altered.

sys@ora10g> select group#,member from v$logfile;

    GROUP# MEMBER
---------- --------------------------------------------------
         1 /oracle/ora10gR2/oradata/ora10g/redo01.log
         2 /oracle/ora10gR2/oradata/ora10g/redo02.log

删除成功。

3)确认操作系统文件是否删除
sys@ora10g> !ls -l /oracle/ora10gR2/oradata/ora10g/redo03.log
-rw-r----- 1 oracle oinstall 52429312 Jul 12 10:58 /oracle/ora10gR2/oradata/ora10g/redo03.log

可见,虽然在数据库层面已经将日志组删除成功,但是在操作系统上依然残留着对应的文件。
也正因为这个原因,如果没有对操作系统做相应清理,在此使用同样的文件创建日志组时会报“ORA-27038”错,提示文件已经存在,如下所示。
sys@ora10g> alter database add logfile group 3 ('/oracle/ora10gR2/oradata/ora10g/redo03.log') size 50m;
alter database add logfile group 3 ('/oracle/ora10gR2/oradata/ora10g/redo03.log') size 50m
*
ERROR at line 1:
ORA-00301: error in adding log file '/oracle/ora10gR2/oradata/ora10g/redo03.log' - file cannot be created
ORA-27038: created file already exists
Additional information: 1

4)手工删除操作系统上的残留文件
sys@ora10g> !rm -f /oracle/ora10gR2/oradata/ora10g/redo03.log

这样,日志文件组删除任务才算彻底完成。

3.对于一个Oracle数据库实例,至少要包含两个联机重做日志组
目的:进行切换,以便归档模式下进行归档。
1)确认当前系统日子组信息
sys@ora10g> select group#,member from v$logfile;

    GROUP# MEMBER
---------- --------------------------------------------------
         1 /oracle/ora10gR2/oradata/ora10g/redo01.log
         2 /oracle/ora10gR2/oradata/ora10g/redo02.log

2)尝试再删除一组日志
目前系统中仅剩两组日志组,此时我们尝试再删除一组日志,看看结果如何。
sys@ora10g> alter database drop logfile group 2;
alter database drop l

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Table函数使用简介
      • Oracle数据库Constraint约束的常用操作及异常处理
      • Bulk Collect性能分析(zz)
      • export/import的使用
      • OCP043第十五讲 Database Security
      • ORACLE10gr2数据导入MySQL方案
      • oracle 让sys用户可以使用isqlplus
      • 在oracle数据库下使用iSQL*Plus DBA访问数据库
      • Oracle行列转换小结
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1