。
临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。注意这里的释放,仅仅是将这些空间标记为空闲,并可重用,真正占用的磁盘空间并没有释放。所以Temp表空间可能会越来越大。
查看默认临时表空间
SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like '%TEMP%'; PROPERTY_NAME PROPERTY_VALUE --------------------------------------------------------------------------- DEFAULT_TEMP_TABLESPACE TEMP
|
创建临时表空间
SQL> create {smallfile |bigfile} temporary tablespace temp1 tempfile '+data/fengzi/datafile/temp1.dbf' size 100m;
|
相关视图
SQL> desc dba_temp_files; Name Null? Type ----------------------------------------- -------- ---------------------------- FILE_NAME VARCHAR2(513) FILE_ID NUMBER TABLESPACE_NAME NOT NULL VARCHAR2(30) BYTES NUMBER BLOCKS NUMBER STATUS CHAR(9) RELATIVE_FNO NUMBER AUTOEXTENSIBLE VARCHAR2(3) MAXBYTES NUMBER MAXBLOCKS NUMBER INCREMENT_BY NUMBER USER_BYTES NUMBER USER_BLOCKS NUMBER
SQL> select TABLESPACE_NAME from dba_temp_files;
TABLESPACE_NAME ------------------------------ TEMP TEMP1
SQL> desc v$tempfile; Name Null? Type ----------------------------------------- -------- ---------------------------- FILE# NUMBER CREATION_CHANGE# NUMBER CREATION_TIME DATE TS# NUMBER RFILE# NUMBER STATUS VARCHAR2(7) ENABLED VARCHAR2(10) BYTES NUMBER BLOCKS NUMBER CREATE_BYTES NUMBER BLOCK_SIZE NUMBER NAME VARCHAR2(513)
SQL> select name from v$tempfile;
NAME -------------------------------------------------------------------------------- +DATA/fengzi/tempfile/temp.280.842187275 +DATA/fengzi/datafile/temp1.dbf
SQL>
|
创建临时表空间组
SQL> create temporary tablespace temp2 tempfile '+data/fengzi/datafile/temp2.dbf' size 100m tablespace group temp11;
将临时表空间添加到临时表空间组中 SQL> alter tablespace temp1 tablespace group temp11;
Tablespace altered.
SQL>
删除临时表空间及组 SQL>drop all temp tablespace in the tablespace group tempname;
|
临时表空间组的相关视图
SQL> desc dba_tablespace_groups Name Null? Type ----------------------------------------- -------- ---------------------------- GROUP_NAME NOT NULL VARCHAR2(30) TABLESPACE_NAME NOT NULL VARCHAR2(30)
SQL> select * from dba_tablespace_groups ;
GROUP_NAME TABLESPACE_NAME ------------------------------ ------------------------------ TEMP11 TEMP1 TEMP11 TEMP2
SQL>
|
修改所有用户以及单独用户默认临时表空间
数据库级别的默认临时表空间 SQL> alter database default temporary tablespace temp11;
Database altered.
SQL> SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like '%TEMP%';
PROPERTY_NAME ------------------------------ PROPERTY_VALUE -------------------------------------------------------------------------------- DEFAULT_TEMP_TABLESPACE TEMP11
SQL>
单独指定用户
SQL> alter user scott temporary tablespace temp11;
|
临时表空间是不需要备份的,出现故障只需要建立新的临时表空间并设置为默认的临时表空间,然后在删除旧的临时表空间。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29532781/viewspace-1174662/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29532781/viewspace-1174662/