楼主: Toms_zhang

Oracle9i"快照过旧" 问题(急)

[复制链接]
论坛徽章:
226
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2013-01-12 23:45:222013年新春福章
日期:2013-02-25 14:51:24问答徽章
日期:2013-10-17 18:06:40优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
11#
发表于 2005-3-9 12:47 | 只看该作者
查询执行时间是不是超过了undo_retention的设置?

使用道具 举报

回复
论坛徽章:
112
2008新春纪念徽章
日期:2008-02-13 12:43:03马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14马上有车
日期:2014-11-03 12:40:39沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31慢羊羊
日期:2015-03-09 16:15:39
12#
 楼主| 发表于 2005-3-9 12:51 | 只看该作者
最初由 yangtingkun 发布
[B]查询执行时间是不是超过了undo_retention的设置? [/B]


是的,是这个原因.我把undo_retention改大以后就没问题.

顺便请教一下杨兄,关于快照过旧这个经典问题,在oracle9i(字段段管理的情况下)及以后版本中,还需要注意什么吗?或者说遇到类似的问题,还有其他的解决思路吗?

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
13#
发表于 2005-3-9 13:16 | 只看该作者
9I 防止 01555的办法就一个
把undo_retention设置的大于你最长的CONSITENT-TRANSATION
(一个sql,或者一段的TRANSACTION)

使用道具 举报

回复
论坛徽章:
226
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2013-01-12 23:45:222013年新春福章
日期:2013-02-25 14:51:24问答徽章
日期:2013-10-17 18:06:40优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
14#
发表于 2005-3-9 13:21 | 只看该作者
如果你要是有tom那本EXPERT ONE ON ONE ORACLE,建议你仔细看看重做和回滚那一章。
tom给出的解决思路主要是加大回滚段(9i自动管理情况下是加大UNDO_TABLESPACE)和缩短查询时间。

排除bug的情况。只要查询时间小于UNDO_RETENTION的设置就不会出现这个错误,除非是UNDO表空间不够,导致Oracle不得不提前重用回滚空间。

使用道具 举报

回复
论坛徽章:
42
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:022011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:08ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
15#
发表于 2005-3-9 13:25 | 只看该作者
undo_retention = 300,这样的话,你的SQL应当在5分钟内完成,否则就会出现这个错误的.

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
66
ITPUB元老
日期:2005-07-16 18:49:11授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44现任管理团队成员
日期:2011-05-07 01:45:08版主3段
日期:2012-05-15 15:24:11
16#
发表于 2005-3-9 13:35 | 只看该作者
最初由 d.c.b.a 发布
[B]undo_retention = 300,这样的话,你的SQL应当在5分钟内完成,否则就会出现这个错误的. [/B]


如果SQL优化合适的话,
根本就不会出现这种问题......

使用道具 举报

回复
论坛徽章:
112
2008新春纪念徽章
日期:2008-02-13 12:43:03马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14马上有车
日期:2014-11-03 12:40:39沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31慢羊羊
日期:2015-03-09 16:15:39
17#
 楼主| 发表于 2005-3-9 13:44 | 只看该作者
最初由 xzh2000 发布
[B]

如果SQL优化合适的话,
根本就不会出现这种问题......

[/B]


再怎么优化也没有用,一个表里有近3亿条记录的数据,然后做一个对数据的统计查询.天呢.慢咱也就忍了,怕就怕做一半就夭折了,那个叫郁闷啊! 没法说.


感谢楼上的各位朋友.谢谢了!

使用道具 举报

回复
招聘 : 灾备架构师
论坛徽章:
53
IT宝贝
日期:2009-02-23 21:48:25现任管理团队成员
日期:2011-05-07 01:45:08IT宝贝
日期:2013-06-18 18:07:16
18#
发表于 2005-3-9 20:02 | 只看该作者
undo_retention 默认值是10800啊,怎么会变成300的

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2005-3-9 22:05 | 只看该作者
Error:  ORA 1555
Text:   snapshot too old (rollback segment too small)
-------------------------------------------------------------------------------
Cause:  rollback records needed by a reader for consistent read are         overwritten by other writers

Action: Use larger rollback segments  
*** Important: The notes below are for experienced users -
See [NOTE:22080.1]   
Explanation:         There are numerous reasons why this can occur but basically for         the operation that failed the information it needs to construct         a read consistent view of the data is no longer available.
Diagnosis:         Is the user FETCHING across a COMMIT ?? If so this breaks the         ANSI standards and is not guaranteed by Oracle. Make sure they         know this then proceed onto describing the options below which          may help.          The main way to avoid this is to use larger rollback segments          across the system. This gives you a longer period of grace         before 'old' rollback infomation gets overwritten. It is typically         no use just enlarging a single rollback segment.          For long running reports, try to run these when the database is         lightly loaded so that the chance of a rollback segment wrapping         is reduced (as there are fewer transactions in progress and hence         less rollback information being generated).          Try using an ORDER BY clause that forces a sort in the query - this         should produce the row-source up front so undo is only needed while         this ordered row-source is produced.          If this is on a SNAPSHOT update check whether the SNAPSHOT is         performing a full or fast refresh. A full refresh could be occuring.         See <Oerr:ORA:12004>

使用道具 举报

回复
论坛徽章:
5
ITPUB元老
日期:2005-03-15 09:15:43ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44凯迪拉克
日期:2013-12-27 09:30:49
20#
发表于 2005-3-10 09:32 | 只看该作者
谢谢各位,我还以为要减少undo_retention的值呢.
上次回滚表空间满,我不停改小undo_retention,然后不停切换undotbs1,undotbs2,好像最后也使表空间清空了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表