临时表空间总是满的初步想法(AIX系统,裸设备)

本文介绍了一种通过管理和优化Oracle数据库中的临时表空间来提高数据库性能的方法。包括查看临时表空间状态、创建新的临时表空间、调整大小及切换默认临时表空间等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于开发人员的水平有高低,dba精力有限,不可能及时解决sql语句问题!打算通过模仿重做日志的方法来解决数据库运行缓慢问题!

1.查看临时文件的使用/剩余空间

  

2.查看当前用户所属的临时表空间 

  

  USERNAME    TEMPORARY_TABLESPACE
  -----------         ------------------------------
  SYS                TEMP1
  SYSTEM         TEMP1
  DBSNMP         TEMP1
  HUJINPEI         TEMP1
  ALAN1             TEMP1
  PERFUSER     TEMP1
  ALAN2             TEMP1
  MYUSER          TEMP1
  OUTLN            TEMP1
  WMSYS           TEMP1

  已选择10行。

3.查看当前有那些临时文件。

 

4.在裸设备上面创建数据文件

   a.在文件系统里面创建想要的的链接
      比如:cd /sgerp5/sgerp5 
            touch temp03.dbf

   b.创建软链接

      注意:这步千万小心,/dev/sgerp5_sgtemp03这个目录不能错,如果错了,挂载成功,但是会各种奇怪的错误 

       ①--创建数据文件

           mklv -y sgerp5_temp03 -T O -t raw -a ie -e x sgvg 60 hdisk2 hdisk3 hdisk4 hdisk5 

       ②--建立链接

          ln -fs /dev/sgerp5_sgtemp03 /sgerp5/sgerp5/temp03.dbf

  

5.重新建立一个临时表空间:请仔细核对脚本,临时表空间创建命令和永久不一样

6.将建好的TEMP表空间设置为数据库默认的临时表空间:

 

7、DROP掉旧的TEMP1的表空间:(如果不用drop直接跳到第十步

8、如果drop不掉,可能现在的临时表空间有人在用,等到session释放以后再搞,以下查看谁占用的临时表空间

9、如果很长时间还有用户没有断开,可以考虑干掉session,上面已经查到sid和serial#,在参照以下脚本就可以了,干掉session以后重复第7步

10.杀手锏来了

     一次创建3个临时表空间,用如上的方法。每个30G,分别为temp,temp2,temp3

     a.查看当时的目前所用的临时表空间,用步骤2

     b.查看临时表空间的大小,用步骤1

     c.尽可能的缩小临时旧的表空间的大小,说明:sgerp5 为数据库的名称,可以从小到大试试看,我这里是从10g开始的

       

     d.切换临时表空间,比如现在的使用的表空间是temp,我要切换temp2

       

     e.查看现在默认的临时表空间,用步骤2

     f.下次temp2满的时候再切换到temp3

 

     说明:这样做的好处是,能过快速的解决临时数据库缓慢的问题,但是最根本的方法还是优化sql语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值