【问题标题】:Getting the following error ORA-27038 when importing dump file导入转储文件时出现以下错误 ORA-27038
【发布时间】:2014-04-23 01:01:49
【问题描述】:

我使用数据泵将转储文件导入到同一服务器上的另一个 DB_B。服务器已包含与转储文件具有相似内容的相同 DB_A。我用 DB_A 执行了以下命令(如下),它运行良好,但是当我用它来制作 DB_B 时,我遇到了几个最值得注意的错误,如下所示。我们需要 DB_A 用于不同的目的,而 DB_B 也有它的目的,但是我们缺少服务器,所以我不得不将它们都放在一个服务器中。我知道这个错误会覆盖 DB_A 已经使用的一些文件。但是如何创建另一个 DB_B 实例,它有自己的文件集并且不被 DB_A 共享?非常感谢您对此的任何建议。谢谢

导入命令

C:\>impdp SYSTEM/password@DB_B directory=imp_dir dumpfile=dumpFile.dmp logfile=Log.log full=yes

错误日志

 CREATE TABLESPACE "SOPLOG_IDX" DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\DB_A\IDX01.DBF' SIZE 104857600 AUTOEXTEND ON NEXT 1048576 MAXSIZE 32767M LOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEF
    ORA-39083: Object type TABLESPACE failed to create with error:
    ORA-01119: error in creating database file 'D:\APP\ADMINISTRATOR\ORADATA\DB_A\LOG01.DBF'
    ORA-27038: created file already exists
    OSD-04010: <create> option specified, file already exists

更新

我不认为我想要发生的事情没有解决方案。我发现this 网站解释了我想要的东西。 我现在唯一的选择是创建一个虚拟机来托管 11g 或更高版本的 oracle 数据库并将我的转储文件导入该虚拟机。然后我将只配置网络选项,以便其他人可以看到数据库。这样我就可以保留相同的表空间、模式、用户等,而无需重新映射或重命名整个事物。 这个link 将下载我可以导入我的数据库的 Oracle DB VM。虽然我仍然愿意接受任何建议:)

【问题讨论】:

    标签: oracle oracle11g datapump impdp


    【解决方案1】:

    您遇到此错误是因为您在 DB_B 中没有 SOPLOG_IDX,因此 import datapump 尝试在 DB_B 上创建它,但它不能因为数据文件 D:\APP\ADMINISTRATOR\ORADATA\DB_A\IDX01.DBF 已经存在于您的服务器上,这是我们所期望的,因为它是您 DB_A 的一部分。

    您可以做的是在使用相同名称但不同的数据文件执行导入之前在 DB_B 上创建导入所需的表空间。 例如:

    CREATE TABLESPACE "SOPLOG_IDX" DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\DB_**B**\IDX01.DBF' SIZE 104857600
    

    或者您可以使用参数remap_tablespace 将对象发送到您的DB_B 上已经存在的表空间。这将改变表空间(Mr.Obvious),但其余的将与另一个数据库相同。

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 2016-05-11
      • 2015-02-07
      • 2016-08-09
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      相关资源
      最近更新 更多