Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7306578
  • 博文数量: 444
  • 博客积分: 10593
  • 博客等级: 上将
  • 技术积分: 3852
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-09 15:26
文章分类

全部博文(444)

文章存档

2014年(1)

2013年(10)

2012年(18)

2011年(35)

2010年(125)

2009年(108)

2008年(52)

2007年(72)

2006年(23)

分类: Oracle

2010-12-06 14:24:21

webjxcom提示:今天又有朋友问到,当向一个表空间错误的添加了一个数据文件,如何来将这个文件删除? 如果是在oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除。 但是从oracle10gr2开始,oracle允许我们彻

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

  如果是在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

webjxcom提示:今天又有朋友问到,当向一个表空间错误的添加了一个数据文件,如何来将这个文件删除? 如果是在oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除。 但是从oracle10gr2开始,oracle允许我们彻

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


  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

阅读(4461) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~