一、临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sortareasize大小不够时,将会把数据放入临时表空间里进行排序。临时表空间存储大规模排序操作(小规模排序操作会直接在RAM里完成,大规模排序才需要磁盘排序DiskSort)和散列操作的中间结果。它跟永久表空间不同的地方在于它由临时数据文件(temporaryfiles)组成的,而不是永久数据文件(datafiles)。临时表空间不会存储永久类型的对象,所以它不会也不需要备份。另外,对临时数据文件的操作不产生redo日志,不过会生成undo日志。 创建临时表空间或临时表空间添加临时数据文件时,即使临时数据文件很大,添加过程也相当快。这是因为ORACLE的临时数据文件是一类特殊的数据文件:稀疏文件(SparseFile),当临时表空间文件创建时,它只会写入文件头部和最后块信息(onlywritestotheheaderandlastblockofthefile)。它的空间是延后分配的。这就是你创建临时表空间或给临时表空间添加数据文件飞快的原因。 另外,临时表空间是NOLOGGING模式以及它不保存永久类型对象,因此即使数据库损毁,做Recovery也不需要恢复TemporaryTablespace。二、重建oracle临时表空间过程 STEP1:FindtheexistingtemptablespacedetailsSQLselecttablespacename,filenamefromdbatempfilesTABLESPACENAMEFILENAMETEMPhomeoracleapporacleoradatacdb1orclorcltemp0120140730043923PM。dbf STEP2:CreateanotherTemporaryTablespaceTEMP1CREATETEMPORARYTABLESPACETEMP1TEMPFILE‘u01apporadataDBACLASStemp01SIZE2G; STEP3:MoveDefaultDatabasetemptablespaceALTERDATABASEDEFAULTTEMPORARYTABLESPACETEMP1; STEP4:Ifanysessionsareusingtempspace,thenkillthem。SELECTb。tablespace,b。segfile,b。segblk,b。blocks,a。sid,a。serial,a。username,a。osuser,a。statusFROMvsessiona,vsortusagebWHEREa。saddrb。sessionaddr;ALTERSYSTEMKILLSESSIONSID,SERIALIMMEDIATE; STEP5:Droptheoriginaltemptablespace。 DroptemptablespaceDROPTABLESPACEtempINCLUDINGCONTENTSANDDATAFILES; IfyouwanttochangethenamefromTEMP1toTEMP,thenfollowthesameprocessasbelow。 STEP6:CreateTEMPtablespaceCREATETEMPORARYTABLESPACETEMPTEMPFILEu01apptemptemp01SIZE2000M; STEP7:MakeTEMPasdefaulttablespaceALTERDATABASEDEFAULTTEMPORARYTABLESPACEtemp; STEP8:Droptemporaryfortablespacetemp1DROPTABLESPACEtemp1INCLUDINGCONTENTSANDDATAFILES;三、查询TEMPTABLESPACE利用率3。1script1columnusedMBytesformat999,999columnfreeMbytesformat999,999columntotalMBytesformat999,999columncollecttimeformatA15selecttochar(sysdate,DDMONRR:HH24:MI)collecttime,round(usedblocks819210241024,0)usedMbytes,round(freeblocks819210241024,0)freeMbytes,round(totalblocks819210241024,0)totalMbytesfromVsortsegmentwheretablespacenamelikeTEMPeg:COLLECTTIMEUSEDMBYTESFREEMBYTESTOTALMBYTES17JUL16:17:23524293。2script2setlines180colFreeSpaceGBformat999,999colUsedSpaceGBformat999,999colTotalSpaceGBformat999,999colhostnameformata30coltablespacenameformata30selecttablespacename,(freeblocks8)1024FreeSpaceMB,(usedblocks8)1024UsedSpaceMB,(totalblocks8)1024TotalSpaceMB,i。instancename,i。hostnamefromgvsortsegmentss,gvinstanceiwheress。tablespacenamein(selecttablespacenamefromdbatablespaceswheretablespacenameTEMPTBSandcontentsTEMPORARY)andi。instidss。instid;eg:TABLESPACENAMEFREESPACEMBUSEDSPACEMBTOTALSPACEMBINSTANCENAMEHOSTNAMETEMP24529orclrac1。rajasekhar。com3。3script3SELECTTABLESPACENAME,TABLESPACESIZE10241024asTABLESPACESIZEMB,ALLOCATEDSPACE10241024asALLOCATEDSPACEMB,FREESPACE10241024asFREESPACEMBFROMdbatempfreespace;TABLESPACENAMETABLESPACESIZEMBALLOCATEDSPACEMBFREESPACEMBTEMP303029四、附录 本文在我的博客https:www。cnblogs。comlkj371p15840884。html发表,如需转载请注明出处。喜欢的朋友欢迎转发和点赞!