温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle临时表空间如何创建

发布时间:2022-07-28 10:44:02 来源:亿速云 阅读:208 作者:iii 栏目:开发技术

这篇文章主要介绍“oracle临时表空间如何创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“oracle临时表空间如何创建”文章能帮助大家解决问题。

    1.1 临时表空间作用

    用来存放用户的临时数据,临时数据就是在需要时被覆盖,关闭数据库后自动删除,其中不能存放永久临时性数据。

    如:

    当用户对大量数据进行排序时,排序在PGA中进行,若数据过多,导致内存不足,oracle会把需要排序的数据分为多份,每次取一份在PGA中排序,其余部分放在临时表空间,直至所有数据排序完成,不过临时表空间在硬盘上,数据交换降低性能

    1.2 临时表空间和临时表空间组

    临时表空间组是由一组临时表空间组成的组,临时表空间组和临时表空间不能同名。临时表空间组不能显式地被创建和删除;当把第一个临时表空间分配某个临时表空间组时,会自动创建临时表空间组;当把临时表空间组内最后一个临时表空间删除时,会自动删除临时表空间组;

    1.3 临时表空间操作

    (1) 查看表空间

    select * from v$tablespace;

    oracle临时表空间如何创建

    (2) 查看表空间详细信息

    select * from dba_tablespaces;

    CONTENTS字段值为TEMPORARY,即临时表空间

    oracle临时表空间如何创建

    (3) 查看除临时表空间外 表空间对应的数据文件

    select * from dba_data_files;

    oracle临时表空间如何创建

    (4) 查看临时表空间对应的数据文件

    select * from dba_temp_files;

    oracle临时表空间如何创建

    select * from v$tempfile;

    oracle临时表空间如何创建

    (5) 查看临时表空间组信息

    select * from dba_tablespace_groups;

    oracle临时表空间如何创建

    (6) 查看默认的临时表空间

    select * from database_properties where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

    oracle临时表空间如何创建

    oracle临时表空间如何创建

    1.4 创建临时表空间

    (1) 创建不属于组的临时表空间

    create temporary tablespace temp2 tempfile 'D:\software\oracle\oradata\orcl\temp2a.dbf' size 10m autoextend on ;

    oracle临时表空间如何创建

    (2) 属于组的临时表空间

    create temporary tablespace temp3 tempfile 'D:\software\oracle\oradata\orcl\temp3a.dbf' size 10m autoextend on
    	tablespace group temp_group ;

    oracle临时表空间如何创建

    (2) 临时表空间加入或移除临时表空间组

    把temp2加入到temp_group 中

    alter tablespace temp2 tablespace group temp_group;

    oracle临时表空间如何创建

    把temp2移除emp_group

    alter tablespace temp2 tablespace group '';

    oracle临时表空间如何创建

    (3)给临时表空间添加一个临时文件

    oracle临时表空间如何创建

    alter tablespace temp2 add tempfile 'D:\software\oracle\oradata\orcl\temp2b.dbf' size 10m autoextend on;

    oracle临时表空间如何创建

    (4)修改系统默认的临时表空间

    修改为一个组

    alter  database default temporary tablespace temp_group ;

    oracle临时表空间如何创建

    修改为一个临时表空间

    alter  database default temporary tablespace temp2;

    oracle临时表空间如何创建

    补充:对临时文件进行删除

    alter  tablespace temp drop tempfile '/m/oracle/oradata4/temp05.dbf';
    alter  tablespace temp drop tempfile '/m/oracle/oradata5/temp06.dbf';
    alter  tablespace temp drop tempfile '/m/oracle/oradata5/temp07.dbf';
    alter tablespace temp add tempfile '/m/oracle/oradata4/temp05.dbf' size 1G reuse;
    alter tablespace temp add tempfile '/m/oracle/oradata5/temp06.dbf' size 1G reuse;
    alter tablespace temp add tempfile '/m/oracle/oradata5/temp07.dbf' size 1G reuse;

    删除过程:

    SQL> alter database tempfile '/u01/app/oracle/oradata/temp2' drop including datafiles;
    alter database tempfile '/u01/app/oracle/oradata/temp2' drop including datafiles
    *
    ERROR at line 1:
    ORA-25152: TEMPFILE cannot be dropped at this time

    通过查看官方针对ORA-25152的描述信息,发现如下:

    ORA-25152: TEMPFILE cannot be dropped at this time
    Cause: An attempt was made to drop a TEMPFILE being used by online users
    Action: The TEMPFILE has been taken offline. Try again, later

    可能是临时表空间被占用,执行以下脚本,查询出占用临时表空间的会话信息,使用alter system kill命令杀掉会话进程,即可解决问题。

    也可以等待一段时间之后,对临时表空间临时文件进行删除即可 。

    关于“oracle临时表空间如何创建”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI