文档章节

如何解决Oracle临时表空间过大

问题终结者
 问题终结者
发布于 05/30 12:31
字数 752
阅读 14
收藏 2
导读 解决Oracle临时表空间过大有两种方法,方法一增加临时表空间的大小,方法二重建临时表空间,解决临时表空间过大的问题。。

方案一:增加临时表空间的大小

--1.临时表空间的使用情况题

SELECT D.tablespace_name,
SPACE "SUM_SPACE(M)",
blocks "SUM_BLOCKS",
used_space "USED_SPACE(M)",
Round(Nvl(used_space, 0) / SPACE * 100, 2) "USED_RATE(%)",
SPACE - used_space "FREE_SPACE(M)"
FROM (SELECT tablespace_name,
Round(SUM(bytes) / (1024 * 1024), 2) SPACE,
SUM(blocks) BLOCKS
FROM dba_temp_files
GROUP BY tablespace_name) D,
(SELECT tablespace,
Round(SUM(blocks * 8192) / (1024 * 1024), 2) USED_SPACE
FROM v$sort_usage
GROUP BY tablespace) F
WHERE D.tablespace_name = F.tablespace(+)
AND D.tablespace_name like 'TEMP%';

--查看临时表空间的总大小和最大扩展大小(能看到数据文件)

select file_name,
tablespace_name,
bytes / 1024 / 1024 MB,
autoextensible,
maxbytes / 1024 / 1024 MAX_MB
from dba_temp_files;

--增加临时表空间的大小

alter tablespace temp1 add tempfile '/data/prod/proddata/temp013.dbf' size 4G;
alter tablespace temp2 add tempfile '/data/prod/proddata/temp024.dbf' size 4G;

方案二:重建临时表空间,解决临时表空间过大的问题。

--0.查看目前默认的临时表空间

select *
from database_properties
where property_name = 'DEFAULT_TEMP_TABLESPACE';

--1.创建中转临时表空间

create temporary tablespace temp3 tempfile '/data/prod/proddata/temp31.dbf' size 4G tablespace group temp;
create temporary tablespace temp4 tempfile '/data/prod/proddata/temp41.dbf' size 4G tablespace group temp;

--2.删除原临时表空间组中的临时表空间

--2.1从默认临时表空间组temp中移除temp1和temp2;

ALTER TABLESPACE temp1 TABLESPACE GROUP '';
ALTER TABLESPACE temp2 TABLESPACE GROUP '';

--2.2删除临时表空间temp1和temp2

drop tablespace temp1 including contents and datafiles;
drop tablespace temp2 including contents and datafiles;

--2.3如果删除表空间的时候,hang住的话,可以使用下列语句,先把运行在temp临时表空间的sql语句kill掉,这样的sql语句多为排序的语句

Select se.username,
se.sid,
se.serial#,
su.extents,
su.blocks * to_number(rtrim(p.value)) as Space,
tablespace,
segtype,
sql_text
from v$sort_usage su, v$parameter p, v$session se, v$sql s
where p.name = 'db_block_size'
and su.session_addr = se.saddr
and s.hash_value = su.sqlhash
and s.address = su.sqladdr
order by se.username, se.sid;

--2.4 kill相关进程

alter system kill session '584,23181';
alter system kill session '196,64972';
alter system kill session '262,19832';
alter system kill session '324,40273';
alter system kill session '326,38967';
alter system kill session '1266,54596';

or
--重启DB
--关闭应用-->关闭监听-->shutdown immediate
--startup-->启动监听-->执行以下操作后打开应用

--2.5 创建临时表空间,并加入临时表空间组temp

create temporary tablespace temp1 tempfile '/data/prod/proddata/temp11.dbf' size 4G tablespace group temp;
create temporary tablespace temp2 tempfile '/data/prod/proddata/temp21.dbf' size 4G tablespace group temp;

--2.6 给临时表空间组temp的成员temp1,temp2,temp3,temp4 各增加一个成员。

alter tablespace temp1 add tempfile '/data/prod/proddata/temp12.dbf' size 4G;
alter tablespace temp2 add tempfile '/data/prod/proddata/temp22.dbf' size 4G;
alter tablespace temp3 add tempfile '/data/prod/proddata/temp32.dbf' size 4G;
alter tablespace temp4 add tempfile '/data/prod/proddata/temp42.dbf' size 4G;

--2.7查看临时表空间组temp

select * from dba_tablespace_groups;

--3 临时表空间组仍然使用99.98%,

--3.1为每个临时表空间添加4G空间

alter tablespace temp1 add tempfile '/data/prod/proddata/temp13.dbf' size 4G;
alter tablespace temp2 add tempfile '/data/prod/proddata/temp23.dbf' size 4G;
alter tablespace temp3 add tempfile '/data/prod/proddata/temp33.dbf' size 4G;
alter tablespace temp4 add tempfile '/data/prod/proddata/temp43.dbf' size 4G;

原文来自:https://www.linuxprobe.com/oracle-problem.html ‎

本文转载自:

共有 人打赏支持
问题终结者
粉丝 10
博文 705
码字总数 92671
作品 0
运维
oracle 11g解决临时表空间过大的问题

有的数据库在使用过程中由于某些操作会导至临时表空间过大,由于临时表空间的工作机制,在作业完成后该部分临时表空间也不会释放。 通过重建临时表空间的方法可以解决这个问题,但操作还是有...

lizhhui001
2017/11/14
0
0
MySQL InnoDB 共享表空间和独立表空间

前言:学习MySQL的时候总是习惯性的和Oracle数据库进行比较。在学习MySQL InnoDB的存储结构的时候也免不了跟Oracle进行比较。Oracle的数据存储有表空间、段、区、块、数据文件;MySQL InnoD...

微凉清风
2017/07/18
0
0
ORACLE 临时表空间使用率过高的原因及临时解决方案

数据库temp临时表空间增大,一般在数据安装时设置临时表空间大小,默认的情况下都是设置为自动增长。这样会引起一个问题:在数据库使用中temp表空间会自动扩展的越来越大,造成磁盘空间使用不...

晨曦之光
2012/03/09
0
1
SYSAUX表空间占用过大情况下的处理(AWR信息过多)

真题1、 SYSTEM和SYSAUX表空间存储的内容有哪些区别?若SYSAUX表空间占用过大则应该如何处理? 答案:在一般情况下,企业产生的业务数据应该存放在单独的数据表空间,而不应该使用系统已存在...

lhrbest
04/16
0
0
ORA-01652: 错误,与临时表空间扩展

ORA-01652: unable to extend temp segment by 128 in tablespace *** 临时表空间的作用:   临时表空间主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union...

0o清风徐来o0
2012/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
1
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部