本文收集整理关于oracle新建临时表空间的相关议题,使用内容导航快速到达。
内容导航:
Q1:oracle创建临时表空间的一些问题
没有那个2,你是复制来的语句吧
create temporary tablespace lswl_temp tempfile /var/u02/oradata/DBRAC/LSWL_TEMP.DBF size 50m autoextend on next 50m maxsize 20480m extent management local;
Q3:Oracle如何更改用户的临时表空间
1、如果是多用户的情况下,反正没有数据,你不如把此用户删除,再重新建立,建立的时候,将此用户的临时表空间设置成新建的临时表空间。
2、若是只有一个用户,那么使用以下命令,修改临时表空间即可
Alter database default temporary tablespace temp;
Q4:ORACLE 临时表空间还有45G,创建4G的表,提示表空间不足
oracle 数据库版本?
感觉应该是Oracle 10g ,10g有个BUG就是有时不会自动释放临时表空间。需要新建并重新指定表空间以来释放表空间。
Q5:如何查看oracle临时表空间当前使用了多少空间的大小
1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看
2、缩小临时表空间大小
alter database tempfile D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF resize 100M;
3、扩展临时表空间:
方法一、增大临时文件大小:
SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize 100m;
方法二、将临时数据文件设为自动扩展:
SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited;
方法三、向临时表空间中添加数据文件:
SQL> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ size 100m;
4、创建临时表空间:
SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11.dbf’ size 10M;
5、更改系统的默认临时表空间:
--查询默认临时表空间
select * from database_properties where property_name=DEFAULT_TEMP_TABLESPACE;
--修改默认临时表空间
alter database default temporary tablespace temp1;
所有用户的默认临时表空间都将切换为新的临时表空间:
select username,temporary_tablespace,default_ from dba_users;
--更改某一用户的临时表空间:
alter user scott temporary tablespace temp;
6、删除临时表空间
删除临时表空间的一个数据文件:
SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ drop;
删除临时表空间(彻底删除):
SQL> drop tablespace temp1 including contents and datafiles cascade constraints;
7、查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)
GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小
dba_temp_files视图的bytes字段记录的是临时表空间的总大小
SELECT temp_used.tablespace_name,
total - used as "Free",
total as "Total",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
FROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_name
ORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS;
希望能帮到您!
Q6:oracle删除临时表空间
首先查看temp是不是某些用户的默认表空间
SELECT USERNAME,TEMPORARY_TABLESPACE FROM DBA_USERS;
如果有用户的默认临时表空间是temp的话,建议进行更改
alter user xxx temporary tablespace tempdefault;
设置tempdefault为默认临时表空间
alter database default temporary tablespace tempdefault;
然后用你列出来的语句删除即可
drop tablespace temp including contents and datafile;
即便丢失了所有的临时表空间,只要不是数据库当中用到了order by、子查询、group by、distinct等需要消耗临时表空间的语句(而且要比较大才行,小的话就直接用pga的SORT_AREA区了),那么也不会对业务造成错误导致中断,发现问题之后只需要新建一个临时表空间就可以了。你要是了解备份恢复的话,实际上在进行备份的时候临时表空间都不会进行备份,而只是有一个创建临时表空间的语句而已。
Q7:oracle中表空间与临时表空间是什么意思?有什么作用?
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。