oracle UNDOTBS 表空间已满怎么办?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/618279/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
UNDOTBS Tablespace is Full what now?
提问by Karl
I have been load testing an application and when I logged into the enterprise console I noticed that my UNDOTBS
table space is full.
我一直在对应用程序进行负载测试,当我登录到企业控制台时,我注意到我的UNDOTBS
表空间已满。
I know that the UNDOTBS
table space is used to keep a copy of data that exists before a transaction starts. I thought that this data would be transient and expire once a transaction completes/rolls back?
我知道UNDOTBS
表空间用于保留事务开始之前存在的数据副本。我认为一旦事务完成/回滚,这些数据将是暂时的并过期?
Do I simply delete the table space, expand it, or is there a way of purging it?
我是简单地删除表空间、扩展它,还是有办法清除它?
UPDATE:The db has had no activity overnight. Can someone explain why oracle still needs this data?
更新:数据库一夜之间没有活动。有人可以解释为什么 oracle 仍然需要这些数据吗?
回答by cagcowboy
Leave it. That's how it's supposed to be. Oracle will manage and re-use it as necessary.
别管它。这就是它应该的样子。Oracle 将根据需要对其进行管理和重用。
Response to update:
响应更新:
THe UNDOTBS doesn't behave like other tablespaces... the data is left in there and marked as unused when it's no longer needed rather than being explicitly deleted.
UNDOTBS 的行为不像其他表空间......数据留在那里并在不再需要时标记为未使用,而不是被显式删除。
You generally don't need to worry about it unless you're doing pretty sizeable DML and start getting errors, at which time you can look at increasing the UNDOTBS size, lowering your undo retention etc.
您通常不需要担心它,除非您正在执行相当大的 DML 并开始出现错误,此时您可以考虑增加 UNDOTBS 大小,降低您的撤消保留等。
回答by MichaelN
Besides what cagcowboy has already posted, if your undo is constantly full and you are getting errors. Make sure that your undo is size properly and that the undo retention is set at a value that is appropriate for the size. If the undo retention is set high, you'll need more space allocated to undo to retain information for the time limit specified in the undo retention. Only aged out transaction based on the undo retention will be cleaned and deleted.
除了 cagcowboy 已经发布的内容之外,如果您的撤消操作不断满并且您收到错误消息。确保您的撤消大小正确,并且撤消保留设置为适合该大小的值。如果撤消保留设置得较高,您将需要分配更多空间来撤消以在撤消保留中指定的时间限制内保留信息。只有基于撤消保留的老化事务才会被清除和删除。
回答by PaulJWilliams
Have a look at your undo retention period - make sure it isnt too large, otyherwise oracle will just keep buffering data until the tablespace fills up. An appropriate period will depend on your app
看看您的撤消保留期 - 确保它不是太大,否则 oracle 只会继续缓冲数据,直到表空间填满。合适的时间段取决于您的应用