我对 Oracle exp 的调用失败了:
EXP-00006: internal inconsistency error
EXP-00000: Export terminated unsuccessfully
我执行的命令是
C:\oracle\product\11.1.0\db_1\BIN\exp user/pass@instance file=dump.dmp log=log.log compress=y owner=user
失败的表包含
- 1 非空数字(38)列(主键)
- 18 个 varchar2(100) 列
主键也是另一个表的外键。
所有搜索结果都说我应该联系 Oracle,但这个问题没有其他解决方法吗?也许重建一张桌子?
如果您有 Oracle 支持,请告诉他们。这可能是导出本身的内部问题,他们会要求提供更多信息,告诉您尝试什么等等,直到您解决问题。如果有,您可能还会获得补丁/修复。
我建议使用 datapump 进行导出,因为导出已被长期弃用。您需要定义一个目录,oracle 应该将导出的数据放入其中,然后启动 datapump。它比导入/导出更简单、更快、更可靠、更灵活。
例子:
然后运行:
另外:看起来您在数据库的一致性方面存在问题。使用 RMAN 运行逻辑和物理验证以发现任何其他问题:
代码是通用的,这个片段是从http://oraclespin.wordpress.com/2008/06/11/how-to-check-physical-and-logical-data-corruption-using-rman/借来的
运行:分析表验证结构级联;
看看它是否返回一个错误的错误。如果它的索引已损坏,请删除并重新创建,如果它有其他东西尝试修复表,如果您可以/知道如何。如果需要,请获得 Oracle 支持以提供帮助。
我通过确定问题的原因是哪个表来解决这个问题。然后我将该表复制到一个新表:
之后我删除了旧表并重命名了新表。我创建了约束,一切都很好。