ITPub博客

首页 > 数据库 > Oracle > Oracle Resize

Oracle Resize

原创 Oracle 作者:chenoracle 时间:2016-05-05 21:52:32 0 删除 编辑
Oracle Resize


datafile,tempfile,undo空间使用过大时可以通过 resize将空间回收到 高水位线附近(不低于高水位);
其中表段,索引段存在高水位线,表空间的高水位线就是所有表段,索引段等高水位线的最大值;

---查看所有数据文件,undo文件
占用空间大小(filesize),
空闲空间大小(freesize),
使用空间大小(usedsize),
高水位线(hwmsize),
可以回收的空间(canshirnksize),
回收resize语句(cmd)

select a.file_id,
       a.file_name,
       a.filesize,
       b.freesize,
       (a.filesize - b.freesize) usedsize,
       c.hwmsize,
       c.hwmsize - (a.filesize - b.freesize) unsedsize_belowhwm,
       a.filesize - c.hwmsize canshrinksize,
       'alter database datafile ' || a.file_name || ' resize ' || c.hwmsize || 'M;' cmd
  from (select file_id, file_name, round(bytes / 1024 / 1024) filesize
          from dba_data_files) a,
       (select file_id, round(sum(dfs.bytes) / 1024 / 1024) freesize
          from dba_free_space dfs
         group by file_id) b,
       (select file_id, round(max(block_id) * 8 / 1024) HWMsize
          from dba_extents
         group by file_id) c
 where a.file_id = b.file_id
   and a.file_id = c.file_id
 order by unsedsize_belowhwm desc;

---执行此SQL前需要确保数据库统计信息是最新的;

查出来高水位线后,就可以通过cmd列 把数据文件或者undo缩小到高水位线附近了,
alter database datafile 'datafilename' resize xxM;
alter database datafile 'undodatafilename' resize xxM;
查询当前数据库没有使用临时表空间时,也可以通过Resize回收临时表空间;
alter database tempfile 'tempfilename' resize xxM;
---查看数据文件,undo,temp文件大小
select *
  from (select bytes / 1024 / 1024 / 1024, file_name, tablespace_name
          from dba_data_files
        union all
        select bytes / 1024 / 1024 / 1024, file_name, tablespace_name
          from dba_temp_files)
 order by 1 desc;


除此以外,临时表空间和UNDO表空间可以通过重建回收空间;
如果报错ORA-03297,说明Resize的尺寸过小,需要适当调大reisze的值;

---查看10号数据文件中高水位线较高的区属于哪些用户以及段名,段类型
select *
  from (select owner, segment_name, segment_type, block_id
          from dba_extents
         where file_id =
               (select file_id from dba_data_files where file_id = 10)
         order by block_id desc)
 where rownum <= 5;

参考:
http://blog.chinaunix.net/uid-10218589-id-349050.html
http://blog.chinaunix.net/uid-42518-id-2404799.html

http://blog.itpub.net/6517/viewspace-536246

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29785807/viewspace-2094469/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: logmner(转载)
下一篇: Oracle UNDO参数
请登录后发表评论 登录
全部评论
Oracle ACE、OCMU 用户组成员、Oracle 11g OCM、微信公众号"IT小Chen"

注册时间:2014-08-05

  • 博文量
    853
  • 访问量
    2727510