当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle教程:如误添加数据文件如何删

Oracle
Oracle常用dump命令,记录一下备查。
Oracle存储过程之数据库中获取数据实例
Oracle存储过程入门学习基本语法
java.sql.SQLException: 内部错误: Unable to construct a Datum from the specified input
Oracle 函数大全[字符串函数,数学函数,日期函数]
Oracle 自增(auto increment) 或 标识字段的建立方法
oracle 存储过程加密的方法
Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
Oracle 忘记密码的找回方法
Oracle 数据库导出(exp)导入(imp)说明
oracle 常见等待事件及处理方法
Oracle9i 动态SGA,PGA特性探索
PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法
ORACLE 数据库RMAN备份恢复
用Mimer Validator检查SQL查询
oracle执行cmd的实现方法
ORACLE 正则解决初使化数据格式不一致
Oracle 触发器的使用小结
oracle 时间格式的调整
Oracle 10g的DBA无法登录解决方案

Oracle教程:如误添加数据文件如何删


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 111 ::
收藏到网摘: n/a

今天又有朋友问到,当向一个表空间错误的添加了一个数据文件,如何来将这个文件删除?

  如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除。

  但是从Oracle10gR2开始,Oracle允许我们彻底删除一个空文件,不留痕迹。

  但是注意:如果你向SYSTEM表空间错误的添加了一个文件,那么就让它在哪里好了,不要动。

  对于普通表空间,则可以参考以下步骤处理。

  数据库版本Oracle10gR2:


  SQL> select * from v$version;
  BANNER
  ----------------------------------------------------------------
  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
  PL/SQL Release 10.2.0.1.0 - Production
  CORE 10.2.0.1.0 Production
  TNS for Linux: Version 10.2.0.1.0 - Production
  NLSRTL Version 10.2.0.1.0 - Production

  向USERS表空间增加一个数据文件:


  SQL> alter tablespace users add datafile '/opt/oracle/oradata/eygle/users02.dbf' size 10M;
  Tablespace altered.
  SQL> select file#,name from v$datafile;
  FILE# NAME
  ---------- --------------------------------------------------
  1 /opt/oracle/oradata/eygle/system01.dbf
  2 /opt/oracle/oradata/eygle/undotbs01.dbf
  3 /opt/oracle/oradata/eygle/sysaux01.dbf
  4 /opt/oracle/oradata/eygle/users01.dbf
  5 /opt/oracle/oradata/eygle/users02.dbf
  5 rows selected.

  确认表空间文件信息:


  SQL> select file_name,file_id from dba_data_files where tablespace_name='USERS';
  FILE_NAME FILE_ID
  -------------------------------------------------- ----------
  /opt/oracle/oradata/eygle/users02.dbf 5
  /opt/oracle/oradata/eygle/users01.dbf 4

 确认表空间未被存储占用:


  SQL> select segment_name,file_id,blocks from dba_extents where file_id=5;
  no rows selected

  删除表空间中的空数据文件:


  SQL> alter tablespace users drop datafile '/opt/oracle/oradata/eygle/users02.dbf';
  Tablespace altered.

  检查数据字典,这个空文件的信息已经被彻底清除了:


  SQL> select file_name,file_id from dba_data_files where tablespace_name='USERS';
  FILE_NAME FILE_ID
  -------------------------------------------------- ----------
  /opt/oracle/oradata/eygle/users01.dbf 4