• 转贴【Oracle.DBA】Oracle temp表空间爆满的处理方法


    下文来自:http://blog.itpub.net/23502881/viewspace-742135/

    当数据库进行索引重建,或者大量数据导入导出时,会使得temp表空间暴增,很可能撑满数据文件,因为数据库安装的时候,temp表空间默认很自由一个数据文件
    并且数据库中单个数据文件最大只能自增到32G,当超过32G时就不可用了,为了防止此故障发生,在做索引重建或者大量数据导入导出时,需要关注temp表空间
    的增长情况,temp表空间过大时,可通过如下方法重建
    SQL> create temporary tablespace temp2 tempfile '/opt/oracle/oradata/conner/temp1.dbf' size 200M autoextend off;
    SQL> alter database default temporary tablespace temp2;
    SQL> drop tablespace temp;

    或者SQL> drop tablespace temp including contents and datafiles cascade constraints(彻底删除包括操作系统中的临时表空间的数据文件)
    最后在操作系统上把temp的文件删除,就可以释放空间。

    还可以改为原来的temp
    SQL> create temporary tablespace temp tempfile '/opt/oracle/oradata/conner/temp.dbf' size 200M autoextend off;
    SQL> alter database default temporary tablespace temp;
    SQL> drop tablespace temp2;
    最后在操作系统上把temp的文件删除,就可以释放空间。

    注意:如果是DG环境,则在主库上完成以上操作后,还得在备库中给新创建的临时表空间增加数据文件,备库不用创建新的临时表空间,DG会自动从主库同步临时表空间到备库(但是临时表空间的数据文件是不能同步过去的,需要手动添加)

    SQL>alter tablespace temp1 add tempfile '/u01/app/oracle/orcl/temp1.dbf' size 500m autoextend on next 100m;

    查看临时表空间 (dba_temp_files视图)(v$tempfile视图)
    select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
    select status,enabled, name, bytes/1024/1024 file_size from v$tempfile;--sys用户查看

    查询默认临时表空间
    select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

    select username,temporary_tablespace,default_ from dba_users;
    更多temp表空间维护可参考:http://www.blogjava.net/japper/archive/2012/06/28/381721.html

    END

  • 相关阅读:
    jQuery中的promise实例
    你可能不需要单页面应用
    单页面和多页面应用场景总结
    ES6的模块暴露与模块引入
    export default 和 export的区别
    Android中获取网页表单中的数据实现思路及代码
    Pojo和JavaBean的区别(转载)
    MyEclipse默认编码为GBK,修改为UTF8的方法
    JSP中getParameter和getAttribute区别
    内部跳转(请求转发)和外部跳转(重定向)的区别?
  • 原文地址:https://www.cnblogs.com/heyang78/p/16450010.html
Copyright © 2020-2023  润新知