Oracle 临时表空间是Oracle数据库的重要组成部分,尽管该部分并没有cont体系结构上得以展现,但其重要地位也是不容忽视的。尤其是对于大型的频繁操作,如创建索引,排序等等都需要在临时表空间完成来减少内存的开销。当然对于查询性能要求较高的应尽可能的避免在磁盘上完成这些操作。本文主要描述的是临时表空间的管理与受损恢复。
一、临时表空间的特性与注意事项
1.特性
用户存储临时数据的表空间
临时数据通常只在一个数据库会话期间内存在的数据,分为两种形式,排序数据和全局临时表
临时数据不会被写入存储永久对象的普通表空间内,而是存储在临时表空间的临时段中
临时表空间临时性导致不需要备份该类型的表空间,RMAN也不支持对临时表空间的备份
对于临时数据的处理,不会生成重做,也不会生成撤销数据
临时表空间的数据文件不能置为只读、不能重命名
监时表空间的数据文件的日志方式总是NOLOGGING
使用临时表空间的主要操作
CREATE INDEX,ALTER INDEX ...REBUILD,ORDER BY,GROUP BY,DISTINCT,UNION,INTERSECT,MINUS,SORT-MERGER,JOIN,ANALYZE
2.临时表空间使用的注意事项
a. 每个用户都有一个缺省的临时表空间,对于临时表空间使用较高的系统,建议将临时表空间数据文件分布到不同的磁盘
b. 对于大型操作频繁,(大型查询,大型分类查询,大型统计分析等),应指定单独的临时表空间,以方便管理
c. 分配用户单独临时表空间,一般是针对大型产品数据库,OLTP数据库,数据库仓库
d. 对于小型产品不需要单独制定临时表空间,使用默认临时表空间
e. 对于临时表空间建议关闭自动扩展功能,避免过度扩展所致的空间压力
关于临时表空间的创建与管理请参考:Oracle 表空间与数据文件 http://www.linuxidc.com/Linux/2011-03/33064.htm
二、临时表空间的管理
1. 查看缺省的临时表空间
SQL> select property_name,property_value from database_properties
2 where property_name like 'DEFAULT%';
PROPERTY_NAME PROPERTY_VALUE
------------------------------ --------------------------------
DEFAULT_TEMP_TABLESPACE TEMP
DEFAULT_PERMANENT_TABLESPACE USERS
DEFAULT_TBS_TYPE SMALLFILE
2.查看临时表空间的大小及位置
SQL> select s.name tbsname,t.name,(t.bytes/1024/1024) bytes,status
2 from v$tablespace s,v$tempfile t
3 where s.ts# = t.ts#;
TBSNAME NAME BYTES STATUS
---------- --------------------------------------------- ---------- -------
TEMP /u01/app/oracle/oradata/orcl/temp01.dbf 30 ONLINE
SQL> select tablespace_name,file_name,bytes/1024/1024 Size_MB from dba_temp_files;
TABLESPACE FILE_NAME SIZE_MB
---------- --------------------------------------------- ----------
TEMP /u01/app/oracle/oradata/orcl/temp01.dbf 30
SQL> select tablespace_name,logging,allocation_type
2 from dba_tablespaces where tablespace_name='TEMP';
TABLESPACE LOGGING ALLOCATIO
---------- --------- ---------
TEMP NOLOGGING UNIFORM
3. 临时表文件大小和已使用空间
SELECT t1."Tablespace" "Tablespace",
t1."Total (G)" "Total (G)",
nvl(t2."Used (G)", 0) "Used(G)",
t1."Total (G)" - nvl(t2."Used (G)", 0) "Free (G)"
FROM (SELECT tablespace_name "Tablespace",
to_char((SUM(bytes / 1024 / 1024 / 1024)), '99,999,990.900') "Total (G)"
FROM dba_temp_files
GROUP BY tablespace_name
UNION
SELECT tablespace_name "Tablespace",
to_char((SUM(bytes / 1024 / 1024 / 1024)), '99,999,990.900') "Total (G)"
FROM dba_data_files
WHERE tablespace_name LIKE 'TEMP%'
GROUP BY tablespace_name) t1,
(SELECT tablespace, round(SUM(blocks) * 8 / 1024 /1024) "Used (G)"
FROM v$sort_usage
GROUP BY tablespace) t2
WHERE t1."Tablespace" = t2.tablespace(+);
Tablespace Total (G) Used(G) Free (G)
------------------------------ --------------- ---------- ----------
GOEX_TEMP 31.999 1 30.999
FIX_TEMP 0.098 0 .098
TEMP 0.195 0 .195
- 大小: 43.2 KB
分享到:
相关推荐
在临时表空间受损的情况下,恢复策略可能包括重建表空间、恢复数据文件或者使用数据泵导出导入的方式来恢复数据。然而,由于临时表空间的数据不进行常规的备份,因此受损恢复通常需要依赖于数据库的整体恢复计划,...
非系统表空间包括 UNDO 表空间、临时表空间和用户表空间等。 三、表空间管理方式 表空间管理方式有字典管理方式和本地管理方式两种。字典管理方式使用数据字典来管理存储空间的分配,而本地管理方式将区的分配和...
6. **给临时表空间增加临时文件**:由于临时文件的创建没有包含在创建控制文件的脚本中,因此需要手动为临时表空间增加临时文件,否则执行某些操作时可能会出现异常。 ```sql ALTER TABLESPACE "TEMP" ADD TEMP...
Oracle认证分类模拟题8涉及到的是Oracle数据库管理的相关知识,涵盖了口令文件恢复、控制文件备份与恢复、数据库恢复策略、临时表空间管理以及数据库在新主机上的迁移等多个方面。以下是这些知识点的详细解释: 1. ...
表空间是Oracle数据库中的逻辑存储单元。检查表空间的使用状况可以帮助我们了解存储空间的分配情况以及是否存在空间不足的风险。这对于预防未来的性能问题和数据丢失至关重要。 ##### 4.6 数据库文件读写状况 监控...
●oracle恢复管理器和oracle闪回技术 ●资源管理器 ●oracle自动存储管理 ●oracle调度程序 ●自动工作负荷知识库 ●性能调整 作译者 John Watson就职于BPLC Management Consultants,负责公司欧洲...
- **SYSOPER**:权限较低,可以执行数据库维护任务,但不能管理用户和表空间等。 #### 17. 数据库的状态及其特点 - **NOMOUNT**: 数据库未启动,不能执行任何操作。 - **MOUNT**: 数据库已启动,可以进行结构管理...
- **临时文件(Tempfiles)**:属于临时表空间的一部分,用于存储临时表和索引的操作结果,例如排序和汇总等临时性数据。临时文件不保存数据的永久性记录,当会话结束或操作完成时,其中的数据会被释放。 - **重做...
●oracle恢复管理器和oracle闪回技术 ●资源管理器 ●oracle自动存储管理 ●oracle调度程序 ●自动工作负荷知识库 ●性能调整 作译者 John Watson就职于BPLC Management Consultants,负责公司欧洲...