精华内容
下载资源
问答
  • oracle删除临时表空间
    千次阅读
    2019-03-27 16:39:00

    现象:

    新建一个临时表空间mytemp 然后将其改为默认临时表空间后,执行一条带order by的查询语句,查询出结构后,

    修改默认临时表空间为原来的temp,然后执行 drop tablespace mytemp including contents and datafiles

    将mytemp临时表空间删除时,发现这条语句一直处于等待状态,然后将刚刚执行查询语句的会话结束,

    则该语句立即生效,说明虽然默认临时表空间已经修改,但刚刚那条查询语句还在实用mytemp临时表空间,

    故不能删除,只有使用结束后才能删除.

    建议:

    【1】 将刚刚执行查询语句的会话结束;不行的话再执行第二步;

    【2】 先把默认表空间切换到别的临时表空间上,再drop temp;
              建议drop前重启前数据库,在mount模式下drop,我怀疑,是因为有些事务正在使用temp,所以才无法drop;

     

     

    转载于:https://www.cnblogs.com/tzhyy/p/10608593.html

    更多相关内容
  • Oracle释放临时表空间脚本
  • 1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)select tablespace_name,file_name,bytes/1024/1024 file_size,au1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)select tablespace_name,file_...

    5268f80b9b1e01f982625ef6fac83ca1.png

    1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)select tablespace_name,file_name,bytes/1024/1024 file_size,au

    1、查看临时表空间 (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用户查看

    2、缩小临时表空间大小

    alter database tempfile 'D:\Oracle\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M;

    3、扩展临时表空间:

    方法一、增大临时文件大小:

    SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize 100m;

    方法二、将临时数据文件设为自动扩展:

    SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited;

    方法三、向临时表空间中添加数据文件:

    SQL> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ size 100m;

    4、创建临时表空间:

    SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11.dbf’ size 10M;

    5、更改系统的默认临时表空间:

    --查询默认临时表空间

    select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

    --修改默认临时表空间

    alter database default temporary tablespace temp1;

    所有用户的默认临时表空间都将切换为新的临时表空间:

    select username,temporary_tablespace,default_ from dba_users;

    --更改某一用户的临时表空间:

    alter user scott temporary tablespace temp;

    6、删除临时表空间

    删除临时表空间的一个数据文件:

    SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ drop;

    删除临时表空间(彻底删除):

    SQL> drop tablespace temp1 including contents and datafiles cascade constraints;

    7、查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)

    GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小

    dba_temp_files视图的bytes字段记录的是临时表空间的总大小

    SELECT temp_used.tablespace_name,

    total - used as "Free",

    total as "Total",

    round(nvl(total - used, 0) * 100 / total, 3) "Free percent"

    FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used

    FROM GV_$TEMP_SPACE_HEADER

    GROUP BY tablespace_name) temp_used,

    (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total

    FROM dba_temp_files

    GROUP BY tablespace_name) temp_total

    WHERE temp_used.tablespace_name = temp_total.tablespace_name

    8、查找消耗资源比较的sql语句

    Select se.username,

    se.sid,

    su.extents,

    su.blocks * to_number(rtrim(p.value)) as Space,

    tablespace,

    segtype,

    sql_text

    from v$sort_usage su, v$parameter p, v$session se, v$sql s

    where p.name = 'db_block_size'

    and su.session_addr = se.saddr

    and s.hash_value = su.sqlhash

    and s.address = su.sqladdr

    order by se.username, se.sid

    9、查看当前临时表空间使用大小与正在占用临时表空间的sql语句

    select sess.SID, segtype, blocks * 8 / 1000 "MB", sql_text

    from v$sort_usage sort, v$session sess, v$sql sql

    where sort.SESSION_ADDR = sess.SADDR

    and sql.ADDRESS = sess.SQL_ADDRESS

    order by blocks desc;

    10、临时表空间组介绍

    1)创建临时表空间组:

    create temporary tablespace tempts1 tempfile '/home/oracle/temp1_02.dbf' size 2M tablespace group group1;

    create temporary tablespace tempts2 tempfile '/home/oracle/temp2_02.dbf' size 2M tablespace group group2;

    2)查询临时表空间组:dba_tablespace_groups视图

    select * from dba_tablespace_groups;

    GROUP_NAME TABLESPACE_NAME

    ------------------------------ ------------------------------

    GROUP1 TEMPTS1

    GROUP2 TEMPTS2

    3)将表空间从一个临时表空间组移动到另外一个临时表空间组:

    alter tablespace tempts1 tablespace group GROUP2 ;

    select * from dba_tablespace_groups;

    GROUP_NAME TABLESPACE_NAME

    ------------------------------ ------------------------------

    GROUP2 TEMPTS1

    GROUP2 TEMPTS2

    4)把临时表空间组指定给用户

    alter user scott temporary tablespace GROUP2;

    5)在数据库级设置临时表空间

    alter database default temporary tablespace GROUP2;

    6)删除临时表空间组 (删除组成临时表空间组的所有临时表空间)

    drop tablespace tempts1 including contents and datafiles;

    select * from dba_tablespace_groups;

    GROUP_NAME TABLESPACE_NAME

    ------------------------------ ------------------------------

    GROUP2 TEMPTS2

    1428d0e076c3959ab11d28a39bc84fab.png

    5268f80b9b1e01f982625ef6fac83ca1.png

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

    本文系统来源:php中文网

    展开全文
  • 【处理】清空临时表空间Oracle1.启动数据库 startup2.查看当前的数据库默认表空间:SQL>select * from database_properties whereproperty_name='DEFAULT_TEMP_TABLESPACE';确认当前的临时表空间为TEMP3...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    【问题】数据库临时表空间占用空间太大,暂用大量磁盘空间。

    【处理】清空临时表空间

    Oracle1.启动数据库 startup

    2.查看当前的数据库默认表空间:

    SQL>select * from database_properties whereproperty_name='DEFAULT_TEMP_TABLESPACE';

    确认当前的临时表空间为TEMP

    3.查看目前临时表空间的大小:

    SQL>select file_name,tablespace_name,bytes/1024/1024"MB",autoextensible from dba_temp_files;

    4.创建另一个临时表空间

    SQL>create temporary tablespace TEMP2 TEMPFILE'D:\app\Administrator\oradata\orcl\temp02.dbf' SIZE 10M REUSE AUTOEXTEND ON NEXT 1MMAXSIZE UNLIMITED;

    5.改变缺省临时表空间为刚刚创建的新临时表空间temp2

    SQL>alter database default temporary tablespace temp2;

    6.删除原来临时表空间

    SQL>drop tablespace temp including contents and datafiles;

    7.重新创建临时表空间temp

    SQL>create temporary tablespace TEMP TEMPFILE'D:\app\Administrator\oradata\orcl\temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 1MMAXSIZE UNLIMITED;

    8.重置缺省临时表空间为新建的temp表空间

    SQL>alter database default temporary tablespace temp;

    9.删除中转用临时表空间

    SQL>drop tablespace temp2 including contents and datafiles;

    10.重新指定用户表空间为重建的临时表空间

    SQL>alter user scott temporary tablespace temp;

    展开全文
  • Oracle临时表空间的清理

    千次阅读 2021-05-03 06:12:39
    Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。临时表空间的主要作用:索引create或rebuildOrder by 或 group byDistinct 操作Union 或 intersect...

    Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。临时表空间的主要作用:

    索引create或rebuild

    Order by 或 group by

    Distinct 操作

    Union 或 intersect 或 minus

    Sort-merge joins

    analyze

    重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。即使重建了临时表空间,过一段时间后,临时表空间的使用率就达到99%,然后,表空间就开始增长,直到耗尽硬盘空间。如下图所示临时表空间,刚建立时是8G,现在已到32G:

    033ba4e3616f058a2dfab9d1768a0e2b.png

    为了防止临时表空间无限制的增加,我采用隔一段时间就重建临时表空间的方法,为了方便,我保留两组语句,轮流执行即可,假定现在临时表空间名称是temp,新建一个tempa表空间,删除temp表空间,方法如下:

    create  temporary  tablespace  TEMPA  TEMPFILE  '/opt/app/oracle/oradata/orcl/tempa01.dbf '  SIZE  8192M  REUSE  AUTOEXTEND  ON  NEXT  1024K  MAXSIZE  UNLIMITED;  --创建中转临时表空间

    alter  database  default  temporary  tablespace  tempa;      --改变缺省临时表空间

    drop  tablespace  temp  including  contents  and  datafiles;    --删除原来临时表空间

    新建的临时表空间如下图所示:

    过一段时间,当临时表空间增长到一定的程度,再新建一个temp表空间,删除tempa表空间,即:

    b063eb72c1899acf7d3b220d7a3e50d4.png

    create  temporary  tablespace  TEMP  TEMPFILE  '/opt/app/oracle/oradata/orcl/temp01.dbf '  SIZE  8192M  REUSE  AUTOEXTEND  ON  NEXT  1024K  MAXSIZE  UNLIMITED;  --创建中转临时表空间

    alter  database  default  temporary  tablespace  temp;    --改变缺省临时表空间

    drop  tablespace  tempa  including  contents  and  datafiles;  --删除原来临时表空间

    这样就可以保证临时表空间不至于过大,防止过多的占用有限的硬盘空间。

    =====================================================

    用下面语句可查看当前临时表空间使用空间大小与正在占用临时表空间的sql语句:

    select sess.SID, segtype, blocks * 8 / 1000 "MB", sql_text

    from v$sort_usage sort, v$session sess, v$sql sql

    where sort.SESSION_ADDR = sess.SADDR

    and sql.ADDRESS = sess.SQL_ADDRESS

    order by blocks desc;

    下面语句查询临时表空间的空闲程度:

    select 'the ' || name || ' temp tablespaces ' || tablespace_name ||

    ' idle ' ||

    round(100 - (s.tot_used_blocks / s.total_blocks) * 100, 3) ||

    '% at ' || to_char(sysdate, 'yyyymmddhh24miss')

    from (select d.tablespace_name tablespace_name,

    nvl(sum(used_blocks), 0) tot_used_blocks,

    sum(blocks) total_blocks

    from v$sort_segment v, dba_temp_files d

    where d.tablespace_name = v.tablespace_name(+)

    group by d.tablespace_name) s,

    v$database;

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • 临时表空间收缩1.1 说明关于Oracle临时表空间,之前有整理过一篇Blog:以下操作会占用大量的temporary:1、用户执行imp/exp 导入导出操作时,会使用大量的temporary段2、用户在rebuild index时3、执行create ...
  • set line 199 col file_name format a50 select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files; alter tablespace temp add tempfile size 100m;...
  • 第一步骤:将临时文件offline alter database tempfile xx offline; alter database tempfile xx offline; alter database tempfile xx offline;... 也可以等待一段时间之后,对临时表空间临时文件进行删除即可 。
  • oracle操作临时表空间

    千次阅读 2021-05-02 04:43:13
    1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)selectt ablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;selectstatus,enabled, name, bytes/1024/1024 file_...
  • 进行oracle程序性能优化时,还要注意undo空间和临时表空间的使用率,如果过高的话,也会导致程序运行缓慢。一般使用率至少需要小于80%。程序运行中报错:ORA-01652:无法通过128(在表空间TEMP中)扩展temp段。数据库...
  • Oracle查询临时表空间的占用

    千次阅读 2021-05-07 09:51:26
    可以使用以下语句查询是哪个session number的哪个sql占用了较大的临时表空间select inst_id,username,session_num,sql_id,tablespace,segtype,sum(blocks)*8/1024/1024 size_in_gb from gV$TEMPSEG_USAGE group by ...
  • Oracle-临时表空间

    千次阅读 2021-05-03 09:45:44
    一:临时表空间查询--查看数据库表空间数据文件select * from dba_data_files;--查看数据库临时表空间文件select * from dba_temp_files;--查看数据库临时表空间使用情况select * from dba_temp_free_space;--查看...
  • 转载自:http://blog.itpub.net/29578568/viewspace-2141980/-查表空间使用率情况(含临时表空间)SELECT d.tablespace_name "Name", d.status "Status",TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') ...
  • oracle 默认临时表空间

    2021-05-06 06:55:06
    我们可以通过下面的语句来查询数据库的默认临时表空间:SQL> select * from database_properties where property_name = 'DEFAULT_TEMP_TABLESPACE';默认临时表空间的限制:1. 默认临时表空间必须是TEMPORARY的:...
  • ORACLE数据库临时表空间不足通用解决方案原因分析:1.ORACLE临时表空间是由oracle数据库定时对表空间进行释放,但也会出现表空间释放不及时的现象。这属于oracle问题,无参数进行配置来解决,只能通过重定向临时表...
  • 管理员用户登录oracle数据库[oracle@DBORACLE ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 1 14:59:27 2019Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:...
  • Oracle 12c 临时表空间清理

    千次阅读 2020-09-02 09:50:13
    1, Oracle 数据库,临时表空间 FASTTEMP 满,需要清理。 2, 解决方法思考 1, 创建新的临时表空间 FASTTEMP2 及文件 2, 用 FASTTEMP2 替换 FASTTEMP 3, 删除 FASTTEMP 临时表空间及其文件 4, 创建新的临时表空间 ...
  • 在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ...Linux环境下oracle创建和删除表空间及用户#su - oracle $ sqlplus /no...
  • --查表空间使用率情况(含临时表空间) SELECT d.tablespace_name "Name", d.status "Status", TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)", TO_CHAR (NVL (a.BYTES - NVL (f.BYTES, 0)....
  • Oracle 临时表空间 SQL语句

    千次阅读 2021-09-11 12:51:18
    --删除临时表空间数据文件 alter tablespace tempdata drop tempfile '/oradata/orcl/tempdata02.dbf' including datafiles; --调整临时表空间数据文件大小 alter database tempfile '/oradata/orcl/tempdata01.dbf...
  • Oracle临时表空间过大解决方法

    千次阅读 2021-05-02 10:14:24
    详情:解决Oracle临时表空间过大有两种方法,方法一增加临时表空间的大小,方法二重建临时表空间,解决临时表空间过大的问题。方案一:增加临时表空间的大小--1.临时表空间的使用情况SELECT D.tablespace_name,SPACE...
  • ORACLE临时表空间总结

    2021-06-28 11:08:42
    临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些操作: ...
  • Oracle 临时表空间满的清理

    千次阅读 2021-05-01 05:58:05
    正常来说,在完成所送select语句、createindex等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有...
  • CREATE GLOBAL TEMPORARY TABLE TABLENAME (COL1 VARCHAR2(10),COL2 NUMBER) ON ...--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后Oracle将截断表(删除全部行)------------------------------------...
  • Oracle全局临时表和私有临时表

    千次阅读 2021-12-25 18:55:54
    GTT更早。GTT是8i就有的特性,PTT是18c才有的特性。 GTT和PTT的数据都是会话私有的,而且会话结束后数据就没有了,但GTT的定义是全局的...GTT的定义是所有会话共享的;PTT的定义是会话私有的。 关于GTT和PTT的实验
  • 临时表空间操作(1)查看表空间(2)查看表空间详细信息(3)查看除临时表空间外 表空间对应的数据文件(4)查看临时表空间对应的数据文件(6)查看临时表空间组信息(7)查看默认的临时表空间(7)创建临时表空间(8)给临时表空间...
  • oracle表空间的导出,用户的删除表空间删除,用户新建,表空间新建,数据导入的shell使用非oracle用户执行该脚本参数说名$1:base表空间的用户名$2:同步表空间的用户名使用场景测试用,base表空间用于升级建立...
  • 文章目录前言一、临时表空间二、脚本实验1.创建临时表空间2.查看是否成功创建临时表空间3.查看数据文件信息4.临时表空间组5.查询当前的默认临时表空间6.切换临时表空间 前言 一、临时表空间 二、脚本实验 1.创建临时...
  • 表空间是数据库最大的逻辑存储结构,包含了表段、索引段、临时段等,在物理层面是有数据文件组成。 二、创建表空间 1.默认表空间 oracle默认至少创建两个表空间:SYSTEM和SYSAUX。SYSTEM表空间存储oracle系统的数据...
  • 1、order by or group by (disc sort占主要部分);2、索引的创建和重创建;3、distinct操作;...临时表空间暴涨的现象经过分析可能是以下几个方面的原因造成的:1.没有为临时表空间设置上限,而是允许无限增...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,930
精华内容 19,172
关键字:

oracle删除临时表空间