ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle日常维护

oracle日常维护

原创 Linux操作系统 作者:ca1234 时间:2010-12-02 14:58:12 0 删除 编辑
1.碎片
检查表空间碎片:
      select tablespace_name, count(*) chunks ,max(bytes/1024/1024) max_chunk  from dba_free_space
 
 chunks 列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个(参考值),那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表空间相邻碎片的接合;
MAX_CHUNK列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT值)大于可用块的大小的话,就会提示ORA-1652、ORA-1653、ORA-1654的错误信息,应该及时对表空间的空间进行扩充,以避免这些错误发生。
 
检查碎片的另外方法:
脚本:
rem FSFI Value Compute
rem fsfi.sql
column FSFI format 999,99
select tablespace_name,sqrt(max(blocks)/sum(blocks))*
(100/sqrt(sqrt(count(blocks)))) FSFI
from dba_free_space
group by tablespace_name order by 1;
spool fsfi.rep;
 
自由空间碎片是由几部分组成,如范围数量、最大范围尺寸等,我们可用 FSFI--Free Space Fragmentation Index (自由空间碎片索引)值来直观体现:
FSFI=100*SQRT(max(extent)/sum(extents))*1/SQRT(SQRT(count(extents)))
可以看出, FSFI 的最大可能值为 100 (一个理想的单文件表空间)。随着范围的增加, FSFI 值缓慢下降,而随着最大范围尺寸的减少, FSFI 值会迅速下降。fsfi的值越小表示碎片越多。
 
 
 
   alter tablespace  tablespace_name(表空间名) coalesce;
 如果收缩不能改变thunk的大小,就需要重整表空间
 重整表空间:
   1.exp 出,然后imp导入。在oralce10g之后,可以使用expdp和impdp来进行导入导出
 

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

上一篇: TOAD 的使用
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-11-30

  • 博文量
    3
  • 访问量
    7658