我正试图从先前执行的系统表转储中存在的特定表中恢复数据。我想将转储中现有的行附加到活动表中可能存在的任何行。问题是,转储中表的名称可能与当前数据库中存在的名称不同(它们是用ARC_TREND_前缀动态创建的)。此外,我不知道转储中存在的表的名称,我希望使用SQL Developer来分析转储文件,因为我可以通过它的列和现有行来识别正确的表。
当我盲目相信SQL Developer可以处理我的转储文件时,当我试图打开它时,我会引发Java Heap OutOfMemory异常。我在sqldeveloper.bat和sqldeveloper.conf中都将最大堆大小从640米调整到了1024米,但都无济于事。
有人能为我推荐一个从exp创建的转储文件中存在的表中恢复数据的操作方案吗?一个图形工具会很好,但我对命令行并不陌生。我需要分析转储中存在的表,以便选出正确的表。然后我假设我可以使用imp TABLE=
将其带回活动实例中。它可能与现有的表名不匹配,所以我将使用SQL Developer将行从导入的表复制到我需要它们的表中
转储是从运行10g的Linux服务器中获取的,并将导入到(同一服务器和数据库实例,已升级)同一数据库的11g实例中。
感谢
由于您指的是imp
而不是impdp
,我认为这不是用数据泵导出的。无论哪种方式,我都怀疑您是否能通过SQL Developer获得任何有用的东西。
幸运的是,您尝试做的大多数事情在命令行中都很容易;只需使用INDEXFILE
参数运行imp
,它将为您提供一个包含所有表(用REM
注释掉)和索引创建命令的文本文件。由此,您应该能够从表的列名中发现该表。
但是,您实际上看不到任何行数据,因此,如果存在多个可能的匹配,您可能需要导入多个表,并在数据库中检查其中的数据,以确定您真正想要的是哪一个。