oracle undo表空间过大的原因是什么?如何进一步分析undo里的数据,推算出是执行了哪些dml造成的?
答案:2 悬赏:0 手机版
解决时间 2021-03-21 04:03
- 提问者网友:浩歌待明月
- 2021-03-20 13:38
oracle undo表空间过大的原因是什么?如何进一步分析undo里的数据,推算出是执行了哪些dml造成的?
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-03-20 14:51
Oracle的EM里提供一些advisor功能,其中就有对undo的分析建议,你可以看看
全部回答
- 1楼网友:山君与见山
- 2021-03-20 15:18
处理方法有两种,
一是添加undo 表空间的数据文件,
二是切换undo tablespace. 这种情况下多用在undo 表空间已经非常大的情况。
1 增加数据文件
sql> alter tablespace undo add datafile 'd:\undo02.dbf' size 100m reuse;
表空间已更改。
2 切换undo 表空间
1、建立新的表空间undotbs2
sql> create undo tablespace undotbs2 datafile 'd:\undo03.dbf' size 100m reuse;
表空间已创建。
2、切换到新建的undo表空间上来,操作如下
sql> alter system set undo_tablespace=undotbs2 scope=both;
系统已更改。
3、将原来的undo表空间,置为脱机:
sql> alter tablespace undo offline;
表空间已更改。
4、删除原来的undo表空间:
sql> drop tablespace undo including contents and datafiles cascade constraints
表空间已删除。
如果只是drop tablespace undo ,则只会在删除控制文件里的记录,并不会物理删除文件。
drop undo表空间的时候必须是在未使用的情况下才能进行。
如果undo表空间正在使用(例如事务失败,但是还没有恢复成功),那么drop表空间命令将失败。在drop表空间的时候可以使用including contents。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯