社区
Oracle
帖子详情
snapshot too old怎么解决
kingstarer
2009-02-26 12:34:03
用sql导出某张大表的数据(select * from table_name)
load到一定时候总是出现snapshot too old错误
在没权限修改回滚段大小,机器不允许开多进程(最多两个)的情况下如何解决?
...全文
1244
14
打赏
收藏
snapshot too old怎么解决
用sql导出某张大表的数据(select * from table_name) load到一定时候总是出现snapshot too old错误 在没权限修改回滚段大小,机器不允许开多进程(最多两个)的情况下如何解决?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zxbyhcsdn
2009-02-28
打赏
举报
回复
能不能分部分导啦!!
kingstarer
2009-02-27
打赏
举报
回复
exp不知道怎么导出的文件不知道怎么转成普通文本啊
另,测试了一下 用程序导出一个小表,exp用了18秒,用程序导出用了不到10秒
系统没有闲的时间 是24小时在动作的
sleepzzzzz
2009-02-26
打赏
举报
回复
使用参数Rows=XXXX试试 ,即指定装载多少条记录提交一次.
vc555
2009-02-26
打赏
举报
回复
你具体是用什么方式导出?
Andy__Huang
2009-02-26
打赏
举报
回复
快照太旧:
当某一个事务回退数据大于回退段所容纳的数量时,oracle根据回退段的存储参数next进行区扩展,如果所有区的数量等于存储参数maxnextents仍不够用时,则产生"快照太旧"(Snapshot Too Old)错误。
解决办法:
授权,增大回滚段,修改参数可以改最大进程数大一些
xiaoxiao1984
2009-02-26
打赏
举报
回复
[Quote=引用楼主 kingstarer 的帖子:]
用sql导出某张大表的数据(select * from table_name)
load到一定时候总是出现snapshot too old错误
在没权限修改回滚段大小,机器不允许开多进程(最多两个)的情况下如何解决?
[/Quote]
为什么不用exp/expdp,一定要用sql呢
要不你找个系统不忙着修改数据的时候导出吧
vc555
2009-02-26
打赏
举报
回复
你的导出是全表整个导出,还是带查询条件的导出?
Finder_Way
2009-02-26
打赏
举报
回复
用外部表试试。
kingstarer
2009-02-26
打赏
举报
回复
看了介绍说数据泵只能在服务器端使用
但我现在只能连装了客户端的机器 并且要装数据保存在客户端
oraclelogan
2009-02-26
打赏
举报
回复
[Quote=引用楼主 kingstarer 的帖子:]
用sql导出某张大表的数据(select * from table_name)
load到一定时候总是出现snapshot too old错误
在没权限修改回滚段大小,机器不允许开多进程(最多两个)的情况下如何解决?
[/Quote]
Oracle数据泵的使用,用数据泵导入大数据表数据:
http://hi.baidu.com/smiky/blog/item/0f145eb59447e6c936d3ca80.html
oraclelogan
2009-02-26
打赏
举报
回复
[Quote=引用楼主 kingstarer 的帖子:]
用sql导出某张大表的数据(select * from table_name)
load到一定时候总是出现snapshot too old错误
在没权限修改回滚段大小,机器不允许开多进程(最多两个)的情况下如何解决?
[/Quote]
如果数据>10G的话,建议不要用程序代码导出。
用export泵来解决吧。这样速度就会快10倍以上的。
sleepzzzzz
2009-02-26
打赏
举报
回复
还以为你是装载数据呢,
没有权限,那就通过写分页程序去取数据了
kingstarer
2009-02-26
打赏
举报
回复
用proc写的程序load
由于表太大,且操作频繁估计要load超过10个小时(试过用sqlplus的plus也导不出),找不到空闲时间
数据库设置没权限修改
/*使用参数Rows=XXXX试试 ,即指定装载多少条记录提交一次.*/
这个是什么意思? 我只是查询,提交有用吗
zcs_1
2009-02-26
打赏
举报
回复
在你导出数据时有人在修改数据,而数据库的UNDO SEGMENTS或者ROLLBACK SEGMENT太小,导致修改前的数据被覆盖。
建议你增大UNDO SEGMENTS,如果不行就等到其他人操作比较少的时候导出数据。
探讨Oracle DB ‘
Snapshot
Too
Old
‘(快照过旧)的
解决
方案
Snapshot
Too
Old
'(快照过旧)可能是Oracle DB最常见也是最臭名昭著的故障之一,尤其是在事务型突出的环境中。下面结合笔者处理过的最近一次的此类报错,谈谈针对这个报错的
解决
之道。
Ora-1555
snapshot
too
old
原因及
解决
方法
ORA-01555的成因参考自Doc ID: 40689.1 1 回滚信息已经被重写,所以Oracle不能回退事务记录到足够老的版本(来满足一致读)。2 存储在回滚段头部的事务表的事务槽,Oracle不能找到原有的事务槽。 ...
ORA-1555:
Snapshot
too
old
的
解决
遇到ORA-1555问题,通过查询WEB,已
解决
问题,特将以下文章推荐给各位Rollback Segments Overview Rollback Segments allow users to undo, or rollback, DML transactions that have been made against a database. DML transac
ORA-01555
snapshot
too
old
解决
办法
首先,先了解下此错误产生的原因。 其根本原因是,undo表空间里的commit过的数据被覆盖。这种事件最容易发生在游标cursor中。当用户A运行一个长时间的cursor,而此时用户B已对cursor查询所使用的原始数据做了修改。长时间运行中的cursor,查询到的数据是未修改前的数据。这些数据是存放在undo表空间里的,如果undo表空间太小,随着修改的增加,cursor所用的数据就会被commit后的数据覆盖。这时候cursor就查询不到修改以前的数据了,就会报错。 还有就是cursor运行...
ORA-01555:
snapshot
too
old
的发生原因及
解决
应用报ora-01555错误。哎呦好烦。 查了一下: ORA-01555
snapshot
too
old
: rollback segment number string with name "string...
Oracle
17,133
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章