当前位置:  数据库>oracle

Oracle临时表空间的管理与受损恢复

    来源: 互联网  发布时间:2017-05-23

    本文导语: Oracle 临时表空间是Oracle数据库的重要组成部分,尽管该部分并没有cont体系结构上得以展现,但其重要地位也是不容忽视的。尤其是对于大型的频繁操作,如创建索引,排序等等都需要在临时表空间完成来减少内存的开销。当然...

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. 查看缺省的临时表空间

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


    
 
 

您可能感兴趣的文章:

  • Oracle数据库恢复后心得
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • oracle drop table(表)数据恢复方法
  • Oracle数据库备份和恢复工具 RMan
  • oracle备份恢复的具体方法
  • oracle中误删除表后恢复语句(FLASHBACK)
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • Oracle11g备份和恢复功能的提高
  • 实战Oracle数据库备份与恢复
  • Oracle数据库冷备份的异地恢复
  • oracle下实现恢复一个丢失的数据文件的代码
  • 详解通过Backup Exec来实施Oracle灾难恢复
  • Oracle的恢复管理器及DBMS_JOB包分析
  • Oracle数据库文件恢复以及备份思路
  • Oracle数据库备份恢复最佳实践
  • oracle如何恢复被覆盖的存储过程
  • rman恢复方案和oracle异机恢复
  • oracle数据库创建备份与恢复脚本整理
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助:oracle9在redhat9上安装好后,oracle管理工具会在菜单工具栏上显示吗?
  • Oracle自动存储管理支持库 ASMLib
  • Oracle ASM自动管理存储管理简介
  • windows上要装什么软件才能管理到linux上的oracle?
  • 在HP Unix 下Oracle的控制和管理
  • 用Oracle管理服务器将数据导入与导出
  • Oracle管理工具 phpOraAdmin
  • Linux上管理本机Oracle的时候出现找不到ServiceName的错误
  • 有谁知道Oracle8的数据库管理工具是用什么开发工具编写的?
  • 甲骨文新推Oracle Linux管理软件包
  • oracle区管理和段空间管理详细介绍
  • Oracle 管理Undo数据
  • 关于Oracle数据库管理员认证方法简述
  • Oracle 权限管理入门
  • Oracle使用配置文件创建口令管理策略
  • Oracle中Datafiles的管理
  • Oracle 9i中自动撤销管理的优点分析
  • Oracle帐户管理
  • Oracle数据库安全性管理基本措施实例解析
  • Oracle 数据库管理脚本命名规范
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,