1

使用 导入我的 XXX.DMP 文件时没有错误imp,但没有导入数据库、模式或表,并且日志文件也是空的。这是它的样子:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Import data only (yes/no): no >

Import file: EXPDAT.DMP > D:\xxx.dmp

Enter insert buffer size (minimum is 8192) 30720>

Export file created by EXPORT:V11.02.00 via conventional path
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
C:\Users\User>

如您所见,它就停在那里。

我使用 Oracle 11 和从 Oracle 12 导出的这个文件。然后我将 DMP 文件头从手动更改EXPORT:V12.01.00EXPORT:V11.02.00手动,因为它不适用于EXPORT:V12.01.00以前。

我已经尝试使用impdTOAD for Oracle 或将其导入,但两者都不起作用。

4

1 回答 1

2

我手动更改了 DMP 文件头...

不要那样做。从文档中

  • 任何导出转储文件都可以导入到更高版本的 Oracle 数据库中。

  • 导入实用程序无法读取由更高维护版本或版本的导出实用程序创建的导出转储文件。例如,9.2 版导出转储文件不能由 9.0.1 版导入实用程序导入。

这不像说标题中显示的版本不同那么简单。二进制格式是专有的,并且可以(并且可能确实)一直在变化。试图操纵文件只会给你带来痛苦,而且在你的情况下会导致导入很早就中止——这可能是一件好事;如果它确实设法进一步发展,你最终可能会腐败。

正确的做法是使用 11gR2 客户端也执行从 12cR1 数据库的导出。

更正确的做法是使用数据泵工具 (expdpimpdp) 而不是传统的导入/导出工具,但有类似的警告


如果您的 12c 数据库不再可用并且您无法进行新的导出,那么您就有点卡住了。您真正可以做的唯一事情是创建一个新的 12c 数据库,使用现有的转储文件填充该数据库,然后使用 11g 工具从该数据库导出。痛苦,但安全。

于 2020-03-20T19:04:34.593 回答