oracle临时表空间的作用与创建及相关操作详解

目录
  • 1.1 临时表空间作用
  • 1.2 临时表空间和临时表空间组
  • 1.3 临时表空间操作
    • (1) 查看表空间
    • (2) 查看表空间详细信息
    • (3) 查看除临时表空间外 表空间对应的数据文件
    • (4) 查看临时表空间对应的数据文件
    • (5) 查看临时表空间组信息
    • (6) 查看默认的临时表空间
  • 1.4 创建临时表空间
  • 补充:对临时文件进行删除
  • 总结

1.1 临时表空间作用

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

如:

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

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

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

1.3 临时表空间操作

(1) 查看表空间

select * from v$tablespace;

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

select * from dba_tablespaces;

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

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

select * from dba_data_files;

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

select * from dba_temp_files;

select * from v$tempfile;

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

select * from dba_tablespace_groups;

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

select * from database_properties where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

1.4 创建临时表空间

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

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

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

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

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

把temp2加入到temp_group 中

alter tablespace temp2 tablespace group temp_group;

把temp2移除emp_group

alter tablespace temp2 tablespace group '';

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

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

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

修改为一个组

alter  database default temporary tablespace temp_group ;

修改为一个临时表空间

alter  database default temporary tablespace temp2;

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

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临时表空间的作用与创建及相关操作的文章就介绍到这了,更多相关oracle临时表空间创建内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

    目录 一.临时表空间概念 二.重建oracle临时表空间过程 三.查询TEMP TABLESPACE利用率 3.2 script 2 3.3 script 3 一.临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序.临时表空间存储大规模排序操作(小规模排序操作会直接在RAM里完成,大规模排序才需要磁盘排序Disk Sort)和散

  • Oracle 临时表空间SQL语句的实现

    目录 临时表空间概念 以下总结了关于 Oracle 数据库临时表空间的相关 SQL 语句: Oracle 临时表空间创建和添加数据文件: 查看当前默认临时表空间: 查询temp表空间使用率: 查看临时表空间对应的临时文件的使用情况: 查询实时使用temp表空间的sql_id和sid: 查询历史的temp表空间的使用的SQL_ID: 临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_

  • oracle临时表空间的作用与创建及相关操作详解

    目录 1.1 临时表空间作用 1.2 临时表空间和临时表空间组 1.3 临时表空间操作 (1) 查看表空间 (2) 查看表空间详细信息 (3) 查看除临时表空间外 表空间对应的数据文件 (4) 查看临时表空间对应的数据文件 (5) 查看临时表空间组信息 (6) 查看默认的临时表空间 1.4 创建临时表空间 补充:对临时文件进行删除 总结 1.1 临时表空间作用 用来存放用户的临时数据,临时数据就是在需要时被覆盖,关闭数据库后自动删除,其中不能存放永久临时性数据. 如: 当用户对大量数据进行排序时

  • MySQL 5.7临时表空间如何玩才能不掉坑里详解

    导读 MySQL 5.7的目标是成为发布以来最安全的MySQL服务器,其在SSL/TLS和全面安全开发方面有一些重要的改变. MySQL 5.7起支持独立临时表空间,但个别时候也可能会踩坑的. MySQL 5.7起,开始采用独立的临时表空间(和独立的undo表空间不是一回事哟),命名ibtmp1文件,初始化12M,且默认无上限. 选项 innodb_temp_data_file_path 可配置临时表空间相关参数. innodb_temp_data_file_path = ibtmp1:12M:

  • oracle 指定类型和指定位数创建序列号的代码详解

    目录 一.脚本部分 1. 表结构 2. 函数 二.代码部分 2.1. xml 2.2. 接口 2.3. api接口 2.4. api实例 2.5. 控制层 三.测试 3.1. 效果图 一.脚本部分 1. 表结构 有注释 -- Create table create table LDMAXNO ( NOTYPE VARCHAR2(17) not null, NOLIMIT VARCHAR2(12) not null, MAXNO INTEGER not null ); -- Add comment

  • Oracle数据库创建存储过程的示例详解

    1.1,Oracle存储过程简介: 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作, 减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的. 优点: 允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次. 允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快. 减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代

  • 使用imp和exp命令对Oracle数据库进行导入导出操作详解

    这里导入导出路径都在D盘下,默认文件名为:example.dmp exp方式导出数据 相关参数项如下: 关键字 说明 默认 USERID 用户名/口令 FULL 导出整个文件 (N) BUFFER 数据缓冲区的大小 OWNER 导出指定的所有者用户名列表 FILE 输出文件 (EXPDAT.DMP) TABLES 导出指定的表名列表 COMPRESS 是否压缩导出的文件 (Y) RECORDLENGTH IO 记录的长度 GRANTS 导出权限 (Y) INCTYPE 增量导出类型 INDEXE

  • Java创建内部类对象实例详解

    Java创建内部类对象实例详解 要想使用new生成一个内部类的实例,需要先指向一个外部类的实例,也就是先生成外部类的实例, 因为内部类可以调用外部类的成员,当没有外部类实例的时候也就没有这些成员的内存空间,内部类在实例化的时候,调用外部类的成员就会出错,所以需要使用外部类的实例 + 点 + new 的方式实例化一个新的内部类 class TestInner{ public static void main(String [] args) { Outer outer = new Outer();

  • Python-Flask:动态创建表的示例详解

    今天小编从项目的实际出发,由于项目某一个表的数据达到好几十万条,此时数据的增删查改会很慢:为了增加提高访问的速度,我们引入动态创建表. 代码如下: from app_factory import app from sqlalchemy import Column, String, Integer class ProjectModel(app.db.model, app.db.Mixin): tablename = 'Project_' ID = Column(String(50), name='

  • Python字符串的创建和驻留机制详解

    目录 字符串 字符串驻留机制 字符串驻留机制优缺点 字符串 字符串在Python中是基本数据类型,是一个不可变的字符序列. 字符串驻留机制 仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量. 驻留机制的几种情况(交互模式windows+r,cmd) 1.字符串的长度为0或1时 2.符合标识符的字符串 3.字符串只在编译时进行驻留,而非运行时 b在运行

随机推荐