删除联机重做日志组成员redolog group
关于联机重做日志文件组的删除需要注意以下几点:
①日志组为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
相关新闻>>
- 发表评论
-
- 最新评论 更多>>