4

我一直在对应用程序进行负载测试,当我登录企业控制台时,我注意到我的UNDOTBS表空间已满。

我知道UNDOTBS表空间用于保存事务开始之前存在的数据副本。我认为一旦事务完成/回滚,这些数据将是暂时的并过期?

我只是删除表空间,扩展它,还是有办法清除它?

更新:数据库一夜之间没有任何活动。有人可以解释为什么 oracle 仍然需要这些数据吗?

4

3 回答 3

14

别管它。这就是它应该的样子。Oracle 将根据需要对其进行管理和重用。

对更新的回应:

UNDOTBS 的行为与其他表空间不同……数据保留在其中,并在不再需要时标记为未使用,而不是被显式删除。

除非您正在执行相当大的 DML 并开始出现错误,否则您通常不需要担心它,此时您可以考虑增加 UNDOTBS 大小,降低您的撤消保留等。

于 2009-03-06T10:01:16.143 回答
2

除了 cagcowboy 已经发布的内容之外,如果您的撤消一直满并且您遇到错误。确保您的撤消大小正确,并且撤消保留设置为适合该大小的值。如果撤消保留设置较高,则需要为撤消分配更多空间,以在撤消保留中指定的时间限制内保留信息。只有基于撤消保留的过期事务才会被清除和删除。

于 2009-03-09T18:31:30.553 回答
1

查看您的撤消保留期 - 确保它不是太大,否则 oracle 将继续缓冲数据,直到表空间填满。适当的时间段将取决于您的应用程序

于 2009-03-06T10:01:45.407 回答