社区
Oracle
帖子详情
snapshot too old怎么解决
kingstarer
2009-02-26 12:34:03
用sql导出某张大表的数据(select * from table_name)
load到一定时候总是出现snapshot too old错误
在没权限修改回滚段大小,机器不允许开多进程(最多两个)的情况下如何解决?
...全文
1230
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
‘(快照过旧)的
解决
方案
本文结合实际案例,探讨Oracle DB中‘
Snapshot
Too
Old
’报错的
解决
方法。通过ADRCI工具和查看alert日志排查问题,发现undo_tbs过小。
解决
方案包括调整undo_tablespace空间和Undo保留时间,还可从优化事务、查询性能和处理大数据量操作等方面进行优化。
Ora-1555
snapshot
too
old
原因及
解决
方法
本文详细解析了Oracle数据库中ORA-01555错误的原因及
解决
方案。此错误通常发生在回滚信息被重写,导致无法回退到足够老的版本以满足一致性读取需求时。文章还介绍了如何通过调整回滚段大小、减少提交频率等方法来避免此类问题。
ORA-1555:
Snapshot
too
old
的
解决
本文详细解释了Oracle数据库中出现ORA-1555错误的原因,并介绍了回滚段的工作原理及其如何影响长事务的执行。通过理解回滚段的使用方式,可以有效地避免该错误。
ORA-01555
snapshot
too
old
解决
办法
ORA-01555错误通常发生在游标使用过程中,由于undo表空间大小不足或undoretention时间限制导致已提交的数据被覆盖。长时间运行的游标可能无法获取到最新的数据,因为undo表空间的数据在900秒后会被清除。
解决
方法包括扩大undo表空间容量或调整undoretention时间以超过cursor运行时间,确保数据在游标查询期间仍然可用。
ORA-01555:
snapshot
too
old
的发生原因及
解决
本文详细解析了ORA-01555错误的产生原因及
解决
方案,通过具体场景展示了如何避免长时间事务导致的快照过旧问题,并提出了增加undo表空间和调整undo保留时间等建议。
Oracle
17,134
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章