Oracle临时表空间删除和重建实现过程

 更新时间:2022年03月28日 17:21:53   作者:雪竹聊运维  
这篇文章主要介绍了Oracle临时表空间删除和重建实现过程,临时表空间是NOLOGGING模式以及它不保存永久类型对象,因此即使数据库损毁,做Recovery也不需要恢复Temporary Tablespace。下文更多详细内容介绍需要的小伙伴可以参考一下

一、临时表空间概念

临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。临时表空间存储大规模排序操作(小规模排序操作会直接在RAM里完成,大规模排序才需要磁盘排序Disk Sort)和散列操作的中间结果.它跟永久表空间不同的地方在于它由临时数据文件(temporary files)组成的,而不是永久数据文件(datafiles)。临时表空间不会存储永久类型的对象,所以它不会也不需要备份。另外,对临时数据文件的操作不产生redo日志,不过会生成undo日志。

创建临时表空间或临时表空间添加临时数据文件时,即使临时数据文件很大,添加过程也相当快。这是因为ORACLE的临时数据文件是一类特殊的数据文件:稀疏文件(Sparse File),当临时表空间文件创建时,它只会写入文件头部和最后块信息(only writes to the header and last block of the file)。它的空间是延后分配的.这就是你创建临时表空间或给临时表空间添加数据文件飞快的原因。

另外,临时表空间是NOLOGGING模式以及它不保存永久类型对象,因此即使数据库损毁,做Recovery也不需要恢复Temporary Tablespace。

二、重建oracle临时表空间过程

STEP1: Find the existing temp tablespace details--查找现有临时表空间信息

SQL> select tablespace_name,file_name from dba_temp_files

TABLESPACE_NAME FILE_NAME
------------------------------ -------------------------------------------------
TEMP /home/oracle/app/oracle/oradata/cdb1/orcl/orcl_temp01201
4-07-30_04-39-23-PM.dbf

STEP2: Create another Temporary Tablespace TEMP1--创建一个临时表空间

CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE ‘/u01/app/oradata/DBACLASS/temp01′ SIZE 2G;

STEP3: Move Default Database temp tablespace--移动默认数据库临时表空间

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;

STEP4: If any sessions are using temp space, then kill them.--禁止使用临时表空间

SELECT b.tablespace,b.segfile#,b.segblk#,b.blocks,a.sid,a.serial#,
a.username,a.osuser, a.status
FROM v$session a,v$sort_usage b
WHERE a.saddr = b.session_addr;

ALTER SYSTEM KILL SESSION 'SID,SERIAL#' IMMEDIATE;

STEP5: Drop the original temp tablespace.

Drop temp tablespace--删除临时表空间

DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;

If you want to change the name from TEMP1 to TEMP, then follow the same process as below.

如果想要将临时空间表名称从temp 1更改为temp,可以按照以下相同的过程进行操作

STEP6: Create TEMP tablespace--创建临时表空间

CREATE TEMPORARY TABLESPACE TEMP TEMPFILE /u01/app/temp/temp01′ SIZE 2000M;

STEP7: Make TEMP as default tablespace--将临时设置为默认表空间

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;

STEP8: Drop temporary for tablespace temp1--删除临时表空间临时1

DROP TABLESPACE temp1 INCLUDING CONTENTS AND DATAFILES;

三、查询TEMP TABLESPACE利用率

3.1 script 1

column used_MBytes     format 999,999
column free_Mbytes     format 999,999
column total_MBytes    format 999,999
column collect_time    format A15

select
   to_char(sysdate,'DD-MON-RR:HH24:MI') collect_time
     ,round(used_blocks*8192/1024/1024,0)  used_Mbytes
        ,round(free_blocks*8192/1024/1024,0)  free_Mbytes
            ,round(total_blocks*8192/1024/1024,0) total_Mbytes
       from
          V$sort_segment
          where
             tablespace_name like '%TEMP%'
/

eg:

COLLECT_TIME    USED_MBYTES FREE_MBYTES TOTAL_MBYTES

--------------- ----------- ----------- ------------

17-JUL-16:17:23           5          24           29

3.2 script 2

set lines 180
col FreeSpaceGB format 999,999
col UsedSpaceGB format 999,999
col TotalSpaceGB format 999,999
col host_name format a30
col tablespace_name format a30
select tablespace_name,
(free_blocks*8)/1024 FreeSpaceMB,
(used_blocks*8)/1024 UsedSpaceMB,
(total_blocks*8)/1024 TotalSpaceMB,
i.instance_name,i.host_name
from gv$sort_segment ss,gv$instance i where ss.tablespace_name in (select tablespace_name from dba_tablespaces where tablespace_name='&TEMPTBS' and contents='TEMPORARY') and
i.inst_id=ss.inst_id;

eg:

TABLESPACE_NAME                FREESPACEMB USEDSPACEMB TOTALSPACEMB INSTANCE_NAME    HOST_NAME

------------------------------ ----------- ----------- ------------ ---------------- ----------------------

TEMP                                    24           5           29 orcl             rac1.rajasekhar.com

3.3 script 3

SELECT TABLESPACE_NAME, TABLESPACE_SIZE/1024/1024 as TABLESPACE_SIZE_MB, ALLOCATED_SPACE/1024/1024 as ALLOCATED_SPACE_MB, FREE_SPACE/1024/1024 as FREE_SPACE_MB FROM   dba_temp_free_space;

TABLESPACE_NAME                TABLESPACE_SIZE_MB ALLOCATED_SPACE_MB FREE_SPACE_MB

------------------------------ ------------------ ------------------ -------------

TEMP                                           30                 30            29

到此这篇关于Oracle临时表空间删除和重建实现过程的文章就介绍到这了,更多相关Oracle临时表空间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于Oracle12C默认用户名system密码不正确的解决方案

    关于Oracle12C默认用户名system密码不正确的解决方案

    这篇文章主要介绍了关于Oracle12C默认用户名system密码不正确的解决方案 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Oracle多表查询中间表的创建实例教程

    Oracle多表查询中间表的创建实例教程

    这篇文章主要给大家介绍了关于Oracle多表查询中间表的创建的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • oracle中not exists对外层查询的影响详解

    oracle中not exists对外层查询的影响详解

    这篇文章主要给大家介绍了关于oracle中not exists对外层查询的影响,文中介绍的非常详细,需要的朋友可以参考下。
    2017-02-02
  • Oracle终极彻底卸载的完整步骤

    Oracle终极彻底卸载的完整步骤

    这篇文章主要给大家介绍了关于Oracle终极彻底卸载的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Oracle数据库表被锁如何查询和解锁详解

    Oracle数据库表被锁如何查询和解锁详解

    作为一个IT技术人员,可能经常遇到在使用Oracle数据时,由于操作不当导致数据库锁表,从而影响项目正常使用,下面这篇文章主要给大家介绍了关于Oracle数据库表被锁如何查询和解锁的相关资料,需要的朋友可以参考下
    2023-03-03
  • Oracle常用函数Trunc及Trunc函数用法讲解

    Oracle常用函数Trunc及Trunc函数用法讲解

    这篇文章主要介绍了Oracle常用函数Trunc及Trunc函数用法讲解,需要的朋友可以参考下
    2017-11-11
  • Oracle 死锁的检测查询及处理

    Oracle 死锁的检测查询及处理

    这篇文章主要介绍了Oracle 死锁的检测查询及处理,文章又描述关于数据库死锁的检查方法的一些相关资料,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • 一个oracle指令的好网站

    一个oracle指令的好网站

    一个oracle指令的好网站...
    2007-03-03
  • oracle备份之备份测试脚本的方法(冷备、热备、rman)

    oracle备份之备份测试脚本的方法(冷备、热备、rman)

    这篇文章主要介绍了oracle备份之备份测试脚本的方法(冷备、热备、rman),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Oracle数据库的系统结构

    Oracle数据库的系统结构

    这篇文章主要介绍了Oracle数据库的系统结构,Oracle数据库的存储结构(Storage Structure)分为物理存储结构和逻辑存储结构两种,分别描述了在操作系统中和数据库系统内部数据的组织管理方式,需要的朋友可以参考下
    2023-07-07

最新评论