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 表空间与数据文件
二、临时表空间的管理
1. 查看缺省的临时表空间
2.查看临时表空间的大小及位置
3. 临时表文件大小和已使用空间
4. 查看当前临时表使用空间大小与正在占用临时表空间的sql语句
3. 修改默认的临时表空间
alter database default temporary tablespace tablespace_name;
4. 对于过度使用临时表空间,在允许的情况下,可以杀掉其session
alter system kill session 'sid,serial#';
三、临时表空间故障
前面已提到,临时表空间不需要备份,如果对临时表空间备份将收到错误提示
临时表空间出错的错误提示(位于告警日志中alert_orcl.log)
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_dbw0_2230.trc:
ORA-01186:file 3 failed verification tests
ORA-01157:cannot identify/lock data file 3 - see DBWR trace file
ORA-01110:data file 3:'/u01/app/oracle/oradata/orcl/temp01.dbf'
四、还原受损的临时表空间
1. 在session 1中删除临时表空间的数据文件
2. 在session 2中执行排序查询,提示临时数据文件错误
3. 在session 1中为临时表空间增加数据文件
4. 在session 2中继续执行排序操作,此次执行成功
5. 查询临时数据文件状态及文件存在性
6. 清除控制文件内记录的不存在的临时文件信息
7. 基于表空间级别的恢复操作(下面给出主要步骤,不在演示)
a. 创建一个新的临时表空间
b. 使用alter database 将用户切换到新的临时表空间,即设置新的默认的临时表空间
c. 删除受损的临时表空间
分享到:
相关推荐
oracle创建一个表空间创建临时表空间创建用户表空间资源的权限
oracle11gR2创建临时表空间组. 使用临时表空间组而非普通的临时表空间,有如下好处: 由于SQL查询可以并发使用几个临时表空间进行排序操作,因此SQL查询很少会出现排序空间超出,避免当临时表空间不足时所引起的磁盘...
Oracle临时表空间的清理步骤,解决数据库临时表空间满的问题。
oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。
在Oracle数据库中 进行排序、分组汇总、索引等到作时,会产生...为此管理员在维护这个临时表空间的时候,不能够掉以轻心。要避免因为临时表空间设置不当影响数据库的性能。具体来 说,主要需要注意如下几个方面的内容。
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会...
oracle-临时表空间详细介绍oracle-临时表空间详细介绍oracle-临时表空间详细介绍oracle-临时表空间详细介绍
Oracle 临时表空间使用注意 Oracle 临时表空间使用注意 Oracle 临时表空间使用注意
Oracle释放临时表空间脚本
NC6.5 数据库参考脚本及临时表空间配置,SQLServer参考脚本 Oracle参考脚本 DB2参考脚本
不让临时表空间影响ORACLE数据库性能
临时表空间真实使用率查询sql
2、再将这较小的临时表与另一张较小的表进行关联查询 先不论思路是否值得商榷,这把临时表当成中转站的做法还是很值得肯定。 临时表本质上是一种cache的表现形式,Oracle的临时表都是事先建好的,一旦用...
oracle创建临时表空间文档及一键导入、导出工具,非常方便
Oracle 临时表功能介绍: Oracle中的临时表是全局的,需要在数据库设计时创建完成,而不是程序使用时。每个登陆用户都使用这一个相同的临时表,但互相之间看不到彼此的数据,也就是说临时表是会话独立的。
Oracle临时表空间不足和批处理缓慢问题探讨.pdf
1、局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。 2、全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删除。 3、不管局部临时表还是全局临时表,只要连接有...
SpringBoot 整合Mybatis 创建临时表
很好的,经典.创建Oracle 临时表,可以有两种类型的临时表:会话级的临时表,事务级的临时表 。