Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2210173
  • 博文数量: 532
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7036
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(532)

文章存档

2024年(1)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: Oracle

2014-08-05 09:40:59




oracle database用一段时间以后,硬盘空间会不够,更甚者硬盘会used 100%。(oracle表空间设置为自动扩展)。此时oracle会出现各种莫名其妙的错误,为保持oracle数据库的稳定,我们需要实时查看硬盘空间。 那么怎样缩小一些不用的表空间,以释放硬盘空间?

  oracle常用的此类命令Alter database datafiletempfile),当然也可从toadUI工具去操作。

  ALTER DATABASE TEMPFILE '/opt/oracle/oradata/gctwp101/temp02.dbf' RESIZE 1229M;

    如果盲目去操作,oracle会报ora-03297错误。表示在所定义的空间之后有数据存在,不能收缩。我们不得不查出最后的数据所处的位置, 然后表空间设置到稍比这位置大一点的大小。

  1. 查该数据文件中数据处在最大位置

    select max(block_id) from dba_extents where file_id=15;

或是select max(block_id) from dba_extents;

      max(block_id)

        383497 

    查询file_id,也可在toad工具tablespace直接看到。

    select file#,name from v$datafile;

  2. 查出最大块位置

    select 383497*8/1024 from dual;

      2996.0703125

    这说明该文件中最大使用块位于2996M3000M之间,

  3. 修改表空间(也可用toad工具界面修改)

   alter database  datafile '/oradata/dmpdb/users01.dbf' resize 3000M;

阅读(4529) | 评论(0) | 转发(0) |
0

上一篇:ORACLE技术资料

下一篇:Rose HA

给主人留下些什么吧!~~