一、使用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;
alter database datafile 'e:/oracle/product/10.2.0/oradata/orcl/tstest001.dbf' offline drop;
alter database open;
drop tablespace ctbasedata;
二、oracle 10g r2开始,删除一个空数据文件,并且相应的数据字典信息也会清除:
alter tablespace tablespace_name drop datafile file_name;
select file_id,file_name,tablespace_name from dba_data_files where tablespace_name='users';
alter tablespace users add datafile '/u01/app/oracle/oradata/orcl/users02.dbf' size 5m autoextend off;
select file_id,file_name,tablespace_name from dba_data_files where tablespace_name='users';
drop table test;
create table test tablespace users as select * from dba_objects;
select segment_name,file_id,blocks from dba_extents where file_id=9;
alter table test move tablespace PERFSTAT;
select segment_name,file_id,blocks from dba_extents where file_id=9;
alter tablespace users drop datafile '/u01/app/oracle/oradata/orcl/users02.dbf';
select file_id,file_name,tablespace_name from dba_data_files where tablespace_name='users';
三、oracle 10g可以删除临时表空间的文件
alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




