Linux系统Oracle Temp01.dbf不断变大应该这样解决

Oracle安装在centos系统上,系统磁盘空间本身不是很大,运行一段时间后发现Oracle的临时表空间占用磁盘越来越大,以至于系统处于崩溃的边缘,解决该问题的方法如下:

第一步:
alter database tempfile ‘/opt/oracle/oradata/orcl/temp01.dbf‘ drop;
第二步:
alter tablespace temp add tempfile
‘/opt/oracle/oradata/orcl/temp01.dbf‘
size 2048M reuse autoextend on next 100M;
第三步:
select d.file_name, d.file_id, d.tablespace_name, d.bytes
from dba_temp_files d;
第四步:
alter database tempfile ‘/opt/oracle/oradata/orcl/temp01.dbf‘ autoextend off;
(只是为了解决小问题,不深究。)
 
正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段a的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题

在检查centos系统的磁盘空间时,发现临时表空间所在临时数据文件已经达到35G,已经占用了100%。

因为是正式数据库服务器,不能随便重启数据库。

以下的操作是用数据库的sys超级用户操作

刚开始打算把临时表空间的数据文件重新缩小就好了

执行:

SQL> alter database tempfile ‘/opt/oracle/oradata/orcl/temp01.dbf‘ resize 10240M;

数据库报错,重新设置的空间大小不能满足需要。

看来需要重新建立新的临时表空间替换当前的表空间了

1、首先查看当前的数据库默认表空间:

SQL>select * from database_properties where property_name=‘DEFAULT_TEMP_TABLESPACE‘;

确认当前的临时表空间为TEMP

2、查看目前临时表空间的大小:

SQL>select file_name,tablespace_name,bytes/1024/1024 "MB",autoextensible from dba_temp_files;

3、创建新的临时表空间:

SQL> create temporary tablespace temp02 tempfile ‘/opt/oracle/oradata/orcl/temp02.dbf‘ size 512M;

4、把新建的临时表空间却换成数据库的默认临时表空间

SQL> alter database default temporary tablespace temp02;

5、确认目前数据库的默认临时表空间

SQL>select * from database_properties where property_name=‘DEFAULT_TEMP_TABLESPACE‘;

确认temp02为当前的数据库默认表空间

6、在删除temp临时表空间之前,先把运行在temp临时表空间的sql语句kill掉,这样的sql语句多为排序的语句

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;

查询出来之后,kill掉这些sql语句:

SQL>alter system kill session ‘524,778‘; (假如某一条运行的sql语句的SID为524,serial#为778)

确认在temp临时表空间中没有运行的sql语句之后,则可以删除temp临时表空间数据文件了

7、删除temp临时表空间

SQL> drop tablespace temp including contents and datafiles;

这样很快就可以删除了临时表空间的数据文件

8、现在temp02临时表空间占据了别人的磁盘空间,需要重新把临时表空间建立在原来的位置,重新建立temp临时表空间

SQL> create temporary tablespace temp tempfile ‘/opt/oracle/oradata/orcl/temp01.dbf‘ size 512M autoextend on maxsize 15G;

新建一个512M的自动扩展临时表空间,最大的扩展为15G。

查看新建的temp临时表空间是否正确:

SQL>select file_name,tablespace_name,bytes/1024/1024,maxbytes/1024/1024,autoextensible from dba_temp_files;

9、把新建的temp临时表空间却换成数据库的默认临时表空间

SQL> alter database default temporary tablespace temp;

10、确认目前数据库的默认临时表空间

SQL>select * from database_properties

where property_name=‘DEFAULT_TEMP_TABLESPACE‘;

确认temp为当前的数据库默认表空间

11、目前把原来的temp临时表空间变成了512M,把剩余的磁盘空间空了出来,temp02临时表空间就没有用了,删除temp02临时表空间
SQL> drop tablespace temp02 including contents and datafiles;

时间: 2024-10-12 23:31:08

Linux系统Oracle Temp01.dbf不断变大应该这样解决的相关文章

Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题

风哥Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题包括内容: Oracle数据库12cR2(项目实战之一):在Windows上安装Oracle12.2 Oracle数据库12cR2(项目实战之五):Oracle12.2 RAC集群实施与维护 Oracle数据库12cR2(项目实战之六):Oracle12.2 RAC集群管理之增删节点 Oracle数据库12cR2(项目实战之七):Oracle12.2 RAC集群管理之修改IP地址 视频学习地址:http://ed

linux系统oracle服务自启动

终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸.具体步骤说明如下: 1.修改dbstart和dbshut脚本 dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启动oracle服务的同时启动监听,就必须修改该脚本 将ORACLE_HOME_LISTNER值设为$ORACLE_HOME(原来是为$1) dbshut一样的道理,如果想关闭数据库服务的同时关闭监听服务也是将dbshut文件中的ORACLE_HOME_LISTNER值设为$ORACLE_HOME 2

关于windows系统DPI增大导致字体变大的原因分析

最近再学习WPF开发,其中提到一个特性“分辨率无关性”,主要功能就是实现开发的桌面程序在不同分辨率的电脑上显示时,会根据系统的DPI自动进行UI的缩放,从而不会导致应用程序的失真. 这个里面就提到了个系统DPI,这个其实在我们windows系统中(不论XP,还是vista之后的win7.win8.win10等),我们都可以设置.DPI就是指每英寸像素点数,及一英寸的长度上存在的像素数,它其实反映的是一个密度问题.windows系统默认情况下,系统DPI都是96DPI,这里还是得注意和显示器实际的

Linux系统Oracle启动、关闭

Linux系统启动Oracle命令 su - oracle sqlplus /nolog conn /as sysdba startup exit lsnrctl start exit Linux系统关闭Oracle命令 su - oracle sqlplus /nolog conn /as sysdba shutdown immediate exit lsnrctl stop exit Windwos Server系统启动Oracle命令 lsnrctl start net start Ora

Linux系统Oracle RAC 11gR2安装维护(前言)

在学习RAC集群技术这块时,发现网上大多数的文章以及博客写的都不是很完整,缺斤少两.在本人经过多次实验后整理出一篇完整的博客,方便自己记忆. 1.VMware虚拟机安装两台主机与共享存储配 2.为两台虚拟机安装Oracle Linux操作系统 3.安装RAC之前配置Linux系统环境相关参数 4.Linux系统中ssh通信与存储ASM磁盘配置 5.Grid Infrastructure集群组件安装与调试 6.ASM磁盘组创建与CRS磁盘组的镜像 7.Oracle RAC 11gR2集群数据库软件

linux系统下too many files open如何定位与解决

当应用进程打开的文件句柄数大于系统设置的句柄数,服务就会报错too many files open,那么如何解决这个问题呢? 1:查看当前系统设置的最大句柄数 命令:ulimit -a:可以看见系统设置的最大句柄数为:65535 2:统计系统中当前打开的总文件句柄数 lsof|awk '{print $2}' |wc -l 3:根据打开文件句柄的数量降序排列,其中第一行是打开的文件句柄数量,第二行是进程号.可以看出来进程28811打开的进程数是:612 命令:lsof -n|awk '{prin

Linux系统中最实用的十大开源防火墙

如今,开源防火墙可谓数目繁多.本文将涉及十个适合企业需求的最实用的开源防火墙 1. Iptables Iptables/Netfilter是基于防火墙的最流行的命令行.它是Linux服务器安全的头道防线.许多系统管理员用它来微调服务器.其作用是过滤内核中网络堆栈中的数据包,特性包括:列出数据包过滤规则集的内容;执行速度快,因为它仅检查数据包的头部;管理员可以根据需要,在数据包的过滤规则集中来增加.修改.删除规则;支持借助文件来备份和恢复 2. IPCop 防火墙 IPCop的设计界面非常友好,便

linux 系统oracle 安装

系统环境:linux redhat 6.3 server 64位 数据库版本:oracle11g     V11.2 安装方式:静默安装 安装步骤: 一.准备工作: 1.1.在oracle 官网下载oracle 11g,将下载的 linux.x64_11gR2_database_1of2.zip,linux.x64_11gR2_database_2of2.zip文件通过SSH 工具从windows 上传到linux 操作系统.解压压缩文件: unzip  linux.x64_11gR2_data

linux系统oracle备份脚本

#路径名,指定备份的路径 FILEPATH=/home/oracle/bachup #根据指定日期格式,定义备份数据库文件名 FILENAME=`date +%y%m%d` #切换至指定路径,并创建文件夹 cd $FILEPATH #导出数据库 这里使用了exp 可以根据需要使用expdp exp zxj/[email protected] file="$FILENAME ".dmp log="$FILENAME".log full=y #数据泵备份 expdp z