EXP与数据一致性

[复制链接]
查看11 | 回复5 | 2014-9-10 21:37:07 | 显示全部楼层 |阅读模式
EXP的顺序是先导出序列,再导入表数据;
IMP的顺序是先导入序列,再导入表数据;
这样会出现一个问题:
在导出序列后,如果仍然有应用使用到该序列,会引起序列的增长,这时导出的序列和会比表中的序列值小。(如导出序列时,序列号为100,到导出结束时,序列值已经增长到120)
在IMP后,序列会从100开始递增,如果表有唯一性约束,那么,从100-120范围内会违反表的唯一性约束。
大家是怎么解决这种问题的?修改序列?手工让序列递增直到不会引起问题?还是其他方法?
不直到oracle为什么允许这种情况出现?为什么让exp的时候”不实现一致性读“?(如果UNDO足够大)
回复

使用道具 举报

千问 | 2014-9-10 21:37:07 | 显示全部楼层
这种事情就好像7并不提供drop column的功能一样。估计问题多了以后再以后的版本例会加以改进。
回复

使用道具 举报

千问 | 2014-9-10 21:37:07 | 显示全部楼层
可以使用OBJECT_CONSISTENT来设置对象只读,这样可以不
回复

使用道具 举报

千问 | 2014-9-10 21:37:07 | 显示全部楼层
大家发表意见啊,被这个问题困惑了
回复

使用道具 举报

千问 | 2014-9-10 21:37:07 | 显示全部楼层
导出时使用参数CONSISTENT
回复

使用道具 举报

千问 | 2014-9-10 21:37:07 | 显示全部楼层
这是因为sequence通常是放20个值在cache里, 而exp工具在导出时到disk里去拿值.
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行