0

我使用数据泵将转储文件导入同一服务器上的另一个 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

更新

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

4

1 回答 1

0

您遇到此错误是因为您在 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),但其余的将与另一个数据库相同。

于 2014-04-23T08:25:19.507 回答