Oracle教程 误添加数据文件删除方法

 更新时间:2009年06月25日 00:11:42   作者:  
今天又有朋友问到,当向一个表空间错误的添加了一个数据文件,如何来将这个文件删除?
如果是在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

相关文章

  • Oracle Job时间间隔设置

    Oracle Job时间间隔设置

    本文介绍了创建、运行、删除Job的方法,以及列举了常见的设置时间间隔执行的方法,小伙伴们可以参考一下。
    2016-05-05
  • Oracle数据库中的循环语法及举例

    Oracle数据库中的循环语法及举例

    这篇文章主要给大家介绍了关于Oracle数据库中的循环语法及举例的相关资料,Oracle循环操作是指在Oracle数据库中使用循环结构来重复执行一段代码或一组语句,Oracle提供了多种循环结构,包括FOR循环、WHILE循环和LOOP循环,需要的朋友可以参考下
    2023-09-09
  • Oracle如何获取系统当前时间等操作实例

    Oracle如何获取系统当前时间等操作实例

    这篇文章主要给大家介绍了关于Oracle如何获取系统当前时间等操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Oracle数据库的字段约束创建和维护示例

    Oracle数据库的字段约束创建和维护示例

    本篇文章主要介绍了Oracle数据库的字段约束创建和维护示例,可以创建,添加,删除等约束,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • oracle修改scott密码与解锁的方法详解

    oracle修改scott密码与解锁的方法详解

    本篇文章是对oracle修改scott密码与解锁的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 设置oralce自动内存管理执行步骤

    设置oralce自动内存管理执行步骤

    设置内存管理首先要启用oracle自动内存管理需要shutdown ,restart,接下来为大家介绍下详细的执行步骤,感兴趣的朋友可以参考下哈
    2013-04-04
  • 在Linux系统上同时监控多个Oracle数据库表空间的方法

    在Linux系统上同时监控多个Oracle数据库表空间的方法

    这篇文章主要介绍了在Linux系统上同时监控多个Oracle数据库表空间的方法,文中给出了shell脚本以及统计数据的录入写法,需要的朋友可以参考下
    2016-01-01
  • Oracle数据表保留一条重复数据简单方法

    Oracle数据表保留一条重复数据简单方法

    最近开发的时候遇到一个任务,需要对重复的数据进行筛选,所以下面这篇文章主要给大家介绍了关于Oracle数据表保留一条重复数据的简单方法,需要的朋友可以参考下
    2023-11-11
  • Oracle静态注册与动态注册详解

    Oracle静态注册与动态注册详解

    这篇文章主要介绍了Oracle静态注册与动态注册,需要的朋友可以参考下
    2014-07-07
  • oralce 计算时间差的实现

    oralce 计算时间差的实现

    这篇文章主要介绍了oralce 计算时间差的实现的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论