【问题标题】:Import dump file to another Database with default schemas使用默认模式将转储文件导入另一个数据库
【发布时间】:2014-05-16 02:42:14
【问题描述】:

我有以下命令将转储文件导入另一个具有不同架构的数据库 (DB_B)。 Oracle 的数据泵导入

impdp SYSTEM/PASSWORD DUMPFILE=dpump_dir1:expfull.dmp FULL=y LOGFILE=dpump_dir2:full_imp.log

来自 DB_A 的 expfull.dmp 包含许多不同的角色、用户、表空间和其他,而 DB_B 只是一个基本的数据库,我想在其中导入我的 expfull.dmp,它只包含数据库创建期间的默认用户、角色等。我为获得 DB_A 的精确匹配所做的通常步骤是在每次导入数据库时​​创建这些用户和表空间中的每一个。是否有一个命令/标志,它会自动将 expfull.dmp 的所有内容导入到 DB_B 而无需执行我刚才描述的所有通常步骤?我在 google 和 oracle 网站上检查了 remap_schema 会以某种方式做到这一点。但我不确定它是如何工作的或者它做我想要的。任何建议/帮助都非常感谢提前感谢。

【问题讨论】:

  • 你可以试试 imp username/password@hoststring file=filename.dmp log=filename.log full=y ,用户名和密码是你的新用户,在你的数据库中你想传输你的数据
  • 嗨,我不认为 imp 可以处理我的转储,因为我使用 expdp 导出它。
  • 你可以尝试用exp命令导出吗
  • 我可以做到,但我们的要求是使用数据泵来做到这一点,所以 exp 不是一个选项。

标签: sql oracle oracle11g datapump impdp


【解决方案1】:

我认为没有一种方法可以像 imp/exp 中那样使用 full=y 自动执行此操作,它会导入所有内容,因此您必须通过指定您希望它们的位置来将表空间从一个重新映射到另一个走。他们不必像 ie:

impdp scott/tiger DIRECTORY=DBEXPDIR DUMPFILE=DBEXPDIR:export.dpdmp LOGFILE=DBEXPLOG:daily_import.dplog CONTENT=ALL TABLE_EXISTS_ACTION=TRUNCATE REMAP_SCHEMA=PRODDB:PROD_COPY REMAP_TABLESPACE=INDEX:INDEX_DEV REMAP_TABLESPACE=DATA:DATA_DEV REMAP_TABLESPACE=DATA2:DATA_DEV  REMAP_TABLESPACE=DATA3:DATA_DEV

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2011-06-10
    • 2022-12-12
    • 1970-01-01
    相关资源
    最近更新 更多