oracle临时表空间相关知识介绍 ORA-01652 错误的原因以及解决

临时表空间作用

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

重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。

网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。

也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。

临时表空间的主要作用:

索引create或rebuild;

Order by 或 group by;

Distinct 操作;

Union 或 intersect 或 minus;

Sort-merge joins;

analyze。

1、创建临时表空间:

create temporary tablespace temp01 tempfile 'C:\ORADATA\ORCL\TEMP01.DBF' size 10M;

2、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)

select tablespace_name,file_name,bytes/1024/1024 "file_size(M)",autoextensible from dba_temp_files;

select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看

3、改变临时表空间大小

alter database tempfile 'C:\ORADATA\ORCL\TEMP01.DBF' resize 21M;

4、扩展临时表空间:

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

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 AUTOEXTEND ON NEXT 1G MAXSIZE 10g;

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

--查询默认临时表空间

select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

--修改默认临时表空间

alter database default temporary tablespace temp02;

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

select username,temporary_tablespace,default_tablespace from dba_users;

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

alter user scott temporary tablespace temp02;

6、删除临时表空间

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

alter database tempfile 'C:\ORADATA\ORCL\TEMP03.DBF' drop;

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

drop tablespace temp 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 'C:\ORADATA\ORCL\TEMP1_01.DBF' size 2M tablespace group group1;

create temporary tablespace tempts2 tempfile 'C:\ORADATA\ORCL\TEMP1_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 <db_name> default temporary tablespace GROUP2;

alter database orcl default temporary tablespace GROUP2;

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

drop tablespace tempts1 including contents and datafiles;

select * from dba_tablespace_groups;

GROUP_NAME                    TABLESPACE_NAME

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

GROUP2                        TEMPTS2

drop tablespace tempts2 including contents and datafiles;

select * from dba_tablespace_groups;

GROUP_NAME                    TABLESPACE_NAME

11、对临时表空间进行shrink(11g新增的功能)

--将temp表空间收缩为20M

alter tablespace temp02 shrink space keep 20M;

--自动将表空间的临时文件缩小到最小可能的大小

ALTER TABLESPACE temp SHRINK TEMPFILE ’/u02/oracle/data/lmtemp02.dbf’;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,458评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,030评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,879评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,278评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,296评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,019评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,633评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,541评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,068评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,181评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,318评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,991评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,670评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,183评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,302评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,655评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,327评论 2 358