尝试使用SQL-Developer分析使用'exp'创建的系统表转储

时间:2012-04-03 19:18:19

标签: oracle backup oracle-sqldeveloper exp imp

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

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

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

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

由于

1 个答案:

答案 0 :(得分:3)

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

幸运的是,您尝试做的大部分内容都非常容易从命令行开始;只需使用INDEXFILE parameter运行imp,它将为您提供一个文本文件,其中包含所有表(用REM注释掉)和索引创建命令。从那以后,您应该能够从列名称中找到该表。

您无法真正看到任何行数据,因此如果有多个可能的匹配项,您可能需要导入多个表并检查数据库中的数据以查看您真正想要的数据。