问题描述
我的客户提供了一个 dmp 文件 (10 GO),我尝试了以下操作: 创建用户: 创建由 PASSWORD 标识的用户 USERNAME; 授予读写权限
导入转储文件(使用imp和impdp) impdp 或 imp system/password@db dumpfile=EXPDAT.DMP FULL=Y logfile=dice.log
这是错误信息: 导入:发布 18.0.0.0.0 - 2021 年 2 月 23 日星期二 11:46:07 生产 版本 18.4.0.0.0
版权 (c) 1982、2019,Oracle 和/或其附属公司。保留所有权利。
连接到:Oracle Database 18c Express Edition 18.0.0.0.0 版 - 生产 ORA-39002: 无效操作 ORA-39059: 转储文件集不完整 ORA-39246: 在提供的转储文件中找不到主表
有人可以帮忙吗?
解决方法
首先,imp和impdp不可互换;它们有不同的文件格式和选项。您需要确切知道用于创建您拥有的文件的内容。
其次,假设文件是用 expdp(又名 datapump,更现代的选择)创建的,并且您应该使用 impdp 来加载它,错误表明数据文件本身存在问题。
ORA-39246 无法在提供的转储文件中定位主表
原因:检查导出日志文件并确保所有文件 导出的内容包含在当前作业中。
操作:正在执行数据泵 IMPORT 或 SQL_FILE 操作 但并非数据泵导出转储文件集中的所有文件都是 包括。特别是,包含导出作业的转储文件 未提供主表。
您的客户似乎没有向您提供完整的数据转储,您应该收到其他文件。如果在导出期间使用了“并行”或“文件大小”选项,则这是可能的。与他们确认您应该拥有的文件的数量和大小。