文档详情

Oracle删除数据文件.doc

发布:2017-06-05约5.37千字共6页下载文档
文本预览下载声明
Oracle删除数据文件 在我们详细介绍之前,我们必须说清楚一点:Oracle不提供如删除表、视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。 一、使用offline数据文件的方法 非归档模式使用:alter database datafile ... offline drop; 归档模式使用: alter database datafile ... offline; 说明: 1) 以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。该数据文件的信息在控制文件种仍存在。查询v$datafile,仍显示该文件。 2) 归档模式下offline和offline drop效果是一样的 3) offline后,存在此datafile上的对象将不能访问 4) noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover后进行online操作 实际使用案例: 直接删除数据文件后无法进入系统的解决方案 正常情况下,删除表空间的正确方法为: DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES; 如果没有通过以上命令删除而直接删除了数据文件,将导致数据库无法打开。 如果直接删除了数据文件 普通用户登录时,则报错: ORA-01033: ORACLE initialization or shutdown in progress sys用户可以正常登录 但进行操作时(SELECT count(1) FROM user_tables),则会报错: ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询 如果执行命令alter database open以打开数据库时,又报如下错: ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 12: E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF 说明数据库没找到这个数据文件 因为数据文件在没有被offline的情况下物理删除了,导致oracle的数据不一致,因此启动失败. 通过以下方法即可解决 解决方法: sqlplus sys/orcl@orcl as sysdba; SQL alter database datafile E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSTEST001.DBF offline drop; SQL alter database open; SQL drop tablespace CTBASEDATA; 二、Oracle 10G R2开始,可以采用:Alter tablespace tablespace_name drop datafile file_name;来删除一个空数据文件,并且相应的数据字典信息也会清除: sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files 2 where tablespace_name=USERS; FILE_ID FILE_NAME TABLESPACE_NAME ------- -------------------------------------------- ------------------ 4 /u01/app/oracle/oradata/orcl/users01.dbf USERS sys@ORCLalter tablespace users add datafile 2 /u01/app/oracle/oradata/orcl/users02.dbf size 5M autoextend off; Tablespace altered. sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files 2 where tablespace_name=USERS; FILE_ID FILE_NAME TABLESPACE_NAME ------- -------------------------------------------- -------------------
显示全部
相似文档