设为首页 收藏本站
查看: 662|回复: 0

[经验分享] Oracle临时表空间的管理与受损恢复

[复制链接]
YunVN网友  发表于 2016-8-15 06:55:43 |阅读模式
DSC0000.jpg
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.iyunv.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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-257809-1-1.html 上篇帖子: ORacle创建用户、简单授权、导入DMP文件的数据 下篇帖子: Oracle 11g RAC 环境下单实例非缺省监听及端口配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表