一、临时表空间概念临时表空间用于管理数据库排序操作,存储临时表、中间排序结果等临时对象。当ORACLE中需要SORT时,当PGA中sort_area_size的大小不够时,会将数据放入临时表空间进行排序。临时表空间存储大规模排序操作(小规模排序操作会直接在RAM中完成,大规模排序需要磁盘排序DiskSort)和哈希操作的中间结果。它与永久表空间的不同之处在于它由临时数据文件(temporaryfiles)组成,而不是永久数据文件(datafiles)。临时表空间不存储永久类型的对象,因此不需要也不需要备份。另外,对临时数据文件的操作不会产生redolog,但是会产生undolog。在创建临时表空间或向临时表空间中添加临时数据文件时,即使临时数据文件很大,添加过程也相当快。这是因为ORACLE的临时数据文件是一种特殊类型的数据文件:稀疏文件(SparseFile),创建临时表空间文件时,只会写入文件头和最后一块信息(onlywritestoheaderand文件的最后一个块)。它的空间是延迟的。这就是为什么您可以非常快速地创建临时表空间或将数据文件添加到临时表空间的原因。另外临时表空间是NOLOGGING模式,不保存永久类型的对象,所以即使数据库损坏,Recovery也不需要恢复TemporaryTablespace。二、重建oracle临时表空间过程STEP1:查找现有临时表空间详细信息SQL>selecttablespace_name,file_namefromdba_temp_filesTABLESPACE_NAMEFILE_NAME---------------------------------------------------------------------------TEMP/home/oracle/app/oracle/oradata/cdb1/orcl/orcl_temp012014-07-30_04-39-23-PM.dbfSTEP2:创建另一个临时表空间TEMP1CREATETEMPORARYTABLESPACETEMP1TEMPFILE'/u01/app/oradata/DBACLASS/temp01'SIZE2G;STEP3:MoveDefaultDatabasetemptablespaceALTERDATABASEDEFAULTTEMPORARYTABLESPACETEMP1;STEP4:如果任何会话正在使用临时空间,则终止它们。SELECTb.tablespace,b.segfile#,b.segblk#,b.blocks,a.sid,a.serial#,a.username,a.osuser,a.statusFROMv$sessiona,v$sort_usagebWHEREa.saddr=b.session_addr;ALTERSYSTEMKILLSESSION'SID,SERIAL#'IMMEDIATE;STEP5:Droptheoriginaltemptablespace.DroptemptablespaceDROPTABLESPACEtempINCLUDINGCONTENTSANDDATAFILES;如果你想改变名称TEMP1到TEMP,然后按照以下相同的过程。STEP6:创建TEMP表空间CREATETEMPORARYTABLESPACETEMPTEMPFILE/u01/app/temp/temp01′SIZE2000M;STEP7:将TEMP设置为默认表空间ALTERDATABASEDEFAULTTEMPORARYTABLESPACEtemp;STEP8:删除临时表fortablespacetemp1DROPTABLESPACEtemp1INCLUDINGCONTENTSANDDATAFILES;三、查询TEMPTABLESPACE利用率3.1脚本1columnused_MBytesformat999,999columnfree_Mbytesformat999,999columntotal_MBytesformat999,999columncollect_timeformatA15H2Hselectto_char(s)collect_time,round(used_blocks*8192/1024/1024,0)used_Mbytes,round(free_blocks*8192/1024/1024,0)free_Mbytes,round(total_blocks*8192/1024/1024,0)total_MbytesfromV$sort_segmentwheretablespace_name像'%TEMP%'/eg:COLLECT_TIMEUSED_MBYTESFREE_MBYTESTOTAL_MBYTES--------------------------------------------------16年7月17日:17:23524293.2脚本2setlines180colFreeSpaceGB格式999,999colUsedSpaceGB格式999,999colTotalSpaceGB格式999,999colhost_name格式a30coltablespace_name格式a30selecttablespace_name,(free_blocks*8)/1024FreeSpacetalMB,(used_blocks*8)/1024FreeSpacetalMB,(used_blocks*8)/1024*8)/1024TotalSpaceMB,i.instance_name,i.host_namefromgv$sort_segmentss,gv$instanceiwheress.tablespace_namein(selecttablespace_namefromdba_tablespaceswheretablespace_name='&TEMPTBS'andcontents='TEMPORARY')和i.inst_id=ss.inst_id;例如:TABLESPACE_NAMEFREESPACEMBUSEDSPACEMBTOTALSPACEMBINSTANCE_NAMEHOST_NAME---------------------------------------------------------------------------------------------------------TEMP24529orclrac1.rajasekhar.com3.3脚本3SELECTTABLESPACE_NAME,TABLESPACE_SIZE/1024/1024asTABLESPACE_SIZE_MB,ALLOCATED_SPACE/1024/1024asALLOCATED_SPACE_MB,FREE_SPACE/1024/1024asFREE_SPACE_MBFROMdba_temp_free_space;TABLESPACE_NAMETABLESPACE_SIZE_MBALLOCATED_SPACE_MBFREE_SPACE_MB---------------------------------------------------------------------------------温度303029
