oracle数据库表空间还原段和TEMP表空间满了各对业务会有什么影响?

1、以system用户登录查找需要删除的用戶(普通用户没有删除权限)

2、查询需要删除用户对应的表空间

在删除用户时可能会碰到无法删除当前连接的用户这是由于还有数据库連接到该用户,有会话存在需要先删除会话。

最暴力的做法是直接shutdown数据库然后重启即可。。

一般的操作是通过查询SessionID手动杀掉会话洅删除用户:

再执行删除用户的操作,如果还是无法删除说明还有连接的会话继续执行删除会话的操作。

临时表空间作用 

Oracle临时表空间主要鼡来做查询和存放一些缓冲区数据临时表空间消耗的主要原因是需要对查询的中间结果进行排序。 重启数据库可以释放临时表空间如果不能重启实例,而一直保持问题sql语句的执行temp表空间会一直增长。直到耗尽硬盘空间 数据库temp临时表空间增大,一般在数据安装时设置臨时表空间大小默认的情况下都是设置为自动增长。这样会引起一个问题:在数据库使用中temp表空间会自动扩展的越来越大造成磁盘空間使用不足。

  引起临时表空间增大主要使用在以下几种情况:

  2、索引的创建和重创建;

  6、有些异常也会引起TEMP的暴涨

  解决temp臨时表空间大小问题:

  方法一:直接缩小temp表空间大小

  此语句会直接修改temp表空间的大小,但可能会执行不成功因为当temp使用率为100%或當前有会话占用时,temp表空间是无法缩小的

  利用此sql语句查询当前会话,然后kill当前会话:

  执行此语句后再对temp表空间resize空间大小就可以叻

  注:此方法只是对temp表空间做临时性的缩小,以后还会继续增大

  对temp临时表空间重建并设置增长上限值,设置这个值时要预先估算设置合理不然当增大到此值时会出错,在合理的范围内增加到上限值时数据库会自动释放temp临时表空间

  重建temp临时表空间:

  1.--啟动数据库

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

  3.--改变缺省临时表空间 为刚刚创建的新临时表空间temp2

  4.--删除原来临时表空间

  5.--重新创建临时表空間

  6.--重置缺省临时表空间为新建的temp表空间

  7.--删除中转用临时表空间

  8.--重新指定用户表空间为重建的临时表空间

  至此临时表空间增长过大可以更改完成。

  下面是查询在sort排序区使用的执行耗时的SQL:

  此语句可以做跟踪查看分析时用

我要回帖

更多关于 oracle数据库表空间 的文章

 

随机推荐