1

我正在尝试从我之前执行的系统表转储中存在的特定表中恢复数据。我想将转储中存在的行附加到活动表中可能存在的任何行中。问题是,转储中的表名可能与数据库中当前存在的表名不同(它们是动态创建的,前缀为 ARC_TREND_)。另外,我不知道表的名称,因为它存在于转储中,我希望使用 SQL Developer 来分析转储文件,因为我可以通过它的列和现有的行来识别正确的表。

虽然我盲目相信 SQL Developer 可以使用我的转储文件,但在尝试打开它时,我收到了 Java Heap OutOfMemory 异常。我已经将 sqldeveloper.bat 和 sqldeveloper.conf 中的最大堆大小从 640m 调整为 1024m,但无济于事。

有人可以推荐我采取的措施来从 exp 创建的转储文件中存在的表中恢复数据吗?图形工具会很好,但我对命令行并不陌生。我需要分析转储中存在的表以选择正确的表。然后我假设我可以用imp TABLE=它把它带回活动实例。它可能与现有的表名不匹配,因此我将使用 SQL Developer 将导入表中的行复制到我需要它们所在的表中。

转储取自运行 10g 的 Linux 服务器,并将导入(相同的服务器和数据库实例,已升级)相同数据库的 11g 实例。

谢谢

4

1 回答 1

3

由于您指的是imp而不是impdp,我认为这不是通过数据泵导出的。无论哪种方式,我怀疑您是否会通过 SQL Developer 获得任何有用的信息。

幸运的是,您尝试做的大部分事情都可以从命令行轻松完成。只需imp使用INDEXFILE参数运行,它将为您提供一个包含所有表(用 注释掉REM)和索引创建命令的文本文件。从那里你应该能够从它的列名中发现表格。

但是,您实际上看不到任何行数据,因此如果有多个可能的匹配项,您可能需要导入多个表并在数据库中检查其中的数据,以查看您真正想要哪一个。

于 2012-04-03T19:40:13.290 回答