首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXPDP快照太旧的实时监视

EXPDP快照太旧的实时监视
EN

Database Administration用户
提问于 2016-09-22 14:55:00
回答 1查看 1.3K关注 0票数 1

在datapump输出过程中可能出现的“快照太老”S的错误在互联网上有很好的记录,例如:

  • undo_retention参数太短
  • 重做日志组太小或太少
  • 撤消表空间太小

是否有办法在作业运行时监视这些失败案例?

我正在寻找的解决方案将是一个查询,该查询将报告:

  • 快照撤消表空间使用的总百分比,直到需要自动扩展或关闭
  • 重做日志使用的总百分比,直到它覆盖自己为止
  • 直到快照达到撤消保留为止。

任何做这些事情一部分的查询都将受到欢迎。查找这样的信息需要oracle分析包吗?有可能质疑这样的事情吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2016-09-29 13:36:36

您需要充分了解撤销如何对此错误进行故障排除。我推荐这篇博文:

http://blog.oracle48.nl/wordpress/oracle-database-undo-space-explained/

您可以使用此查询查看撤消表空间(S)的当前配置文件:

代码语言:javascript
复制
SELECT DISTINCT STATUS,TABLESPACE_NAME, SUM(BYTES), COUNT(*)
    FROM DBA_UNDO_EXTENTS 
    GROUP BY STATUS, TABLESPACE_NAME;
  • ACTIVE区段包含未提交或当前回滚事务。
  • UNEXPIRED区段包含需要保存在撤消表空间中以满足undo_retention参数的事务。
  • EXPIRED区段是仍然在撤消表空间中的事务,这些事务比undo_retention参数更早。

数据库将删除最古老的过期区段,以便为新的活动区段腾出空间。如果没有过期的区段,它将尝试分配一个新的区段。如果这意味着扩展数据文件,它就会这样做。

如果数据文件无法扩展,数据库将删除一些未过期的区段以腾出空间,这违反了undo_retention值。因此,undo_retention参数不是一个保证,而是数据库将尽力遵循的指导方针。

现在,这里有两种常见的故障模式:

  1. 如果查询试图从已删除的区域读取,则它将在ORA-01555 Snapshot Too Old中失败。
  2. 如果整个撤消表空间都是活动撤消,则ORA-30036 unable to extend segment in Undo tablespace将导致事务失败。

快照撤消表空间使用的总百分比,直到需要自动扩展或关闭

如果DBA_UNDO_EXTENTS中的活动字节和未过期字节之和接近相关撤消表空间的大小,则有机会体验ORA-01555。

如果活动字节的总和接近相关撤消表空间的大小,则可能会遇到ORA-30036错误。

重做日志使用的总百分比,直到它覆盖自己为止

我不知道您可以在重做日志配置中更改任何会影响快照太老的错误。你从哪得到这些信息的?

直到快照达到撤消保留为止。

要准确地做到这一点是非常困难的,如果不是不可能的话,因为它取决于数据库中的每一个其他事务。如果从undo_retention参数中减去查询运行时间,您会有一个好主意,但这只是假设撤销表空间足够大,足以满足undo_retention值。一旦这条线被越过,所有的赌注都取消了。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/150414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档