Discuz教程网

exp(导出)时是否需要undo表空间?或者是否存在事务?

[复制链接]
authicon 小牛哥 发表于 2010-10-26 04:22:16 | 显示全部楼层 |阅读模式

前提条件:连接当前数据库的应用已经停止。
当前假如只有管理员连接数据库。
管理员执行导出操作 exp
此时数据库还需要操作回滚段之类吗?
我的猜想是,exp内部应该只做查询操作,没有更新类操作,因此应该用不着回滚段之类。
但现在的情况是,在导出时出现与回滚段相关的错误:
. . 正在导出表                 NING
EXP-00056: 遇到 ORACLE 错误 1555
ORA-01555: 快照过旧: 回退段号  在名称为 "" 过小
ORA-22924: 快照太旧
查看(http://gaoshan.blog.51cto.com/742525/302498)知道与lob相关,这应该是在多人操作的情况下出现。
但我们的管理员反馈,当时只有他一人在操作。
请问在exp时是否存在事务操作或者更新操作之类,是否需要用到undo或者查看历史版本的情况?
多谢!



上一篇:数据库的\"架构\"主要有哪几种?
下一篇:关于sqlplus在使用spool导出数据时的几个疑问
authicon renxiao2003 发表于 2010-10-26 04:33:37 | 显示全部楼层

会不会是你在导出时还有别人在提交事务造成这个现象的发生。
authicon gflei 发表于 2010-10-26 05:20:17 | 显示全部楼层

回复 2# renxiao2003
我不在现场,   管理员给的反馈是,应用服务器已经停止,因此此时不应该有别人在操作数据库了。
是否还有其他可能,我看网上有些人认为lob字段中的内容有问题,导致了出现该错误,是否存在这种可能?
多谢回复!
authicon duolanshizhe 发表于 2010-10-26 05:59:19 | 显示全部楼层

exp时需要保证数据的一致性
因此  有时可能需要读取undo数据以便获取一致性数据
authicon gflei 发表于 2010-10-26 06:36:32 | 显示全部楼层

回复 4# duolanshizhe
   这应该是在多用户操作环境中。
现在的情况是,仅有一个用户操作,仅作exp操作,没有其他用户在操作。是否仍需要undo?
多谢回复!
authicon doni 发表于 2010-10-26 07:21:31 | 显示全部楼层

假设我没记错的话,exp导出的数据是执行exp的那个时点的,因此当执行exp命令后,还有数据被修改,无论是否提交exp都会从undo中读取,因些就有可能产生01555错误
authicon gflei 发表于 2010-10-26 07:48:02 | 显示全部楼层

回复 6# doni
   假设此时除了exp操作外,有应用系统或其他人也在操作,的确会出现这种情况。
但是,现在除了exp外,就没有其他链接了。难道exp内部还会进行一些更新操作?
多谢回复!
authicon doni 发表于 2010-10-26 08:26:13 | 显示全部楼层

可能是开始exp时,链接没有全部中断,并有提交
authicon gflei 发表于 2010-10-26 09:19:24 | 显示全部楼层

回复 8# doni
   从管理员反馈,开始exp前,已没有其他链接。
看来大家都集中在其他链接的操作导致该问题。
现在的情况是,没有其他操作,还有哪些原因会导致这种错误?难道lob中的内容会对exp导出成功与否会产生影响?
多谢回复!
authicon 拿钱发帖死全家 发表于 2010-10-26 09:26:48 | 显示全部楼层

可能是在你执行EXP之前有未完成的事物,在你执行过程中完成了,但到了要exp这段数据的时候,undo里已没有可供一致性的数据了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 18:14

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表