【问题标题】:Oracle Export/Import issues with Tablespace表空间的 Oracle 导出/导入问题
【发布时间】:2015-04-14 11:10:59
【问题描述】:

我创建了一个本地 oracle 数据库的转储,如下所示:

expdp mydb/passwd -schemas=myschema -dumpfile=mydumpfile.dmp -logfile=oralog.log

我将转储发送给应该在他的 oracle 服务器中导入转储的人。现在,他告诉我,由于某些与表空间相关的错误(例如表空间 XYZ 不可用,数据库 XYZ 与相应的数据库无关),导入失败。此外,他要求我提供一些有关表空间转储的信息。

由于我通常使用 MySQL 并且对这些 Oracle-Tablespace 事物知之甚少:我非常希望得到一些建议。

【问题讨论】:

  • 做导入的人需要做this,但是你需要什么信息?旧表空间名称,您可以从 all_segments? 获得?
  • @Alex Poole,我该如何使用all_segments
  • 我想,没必要把它弄得这么复杂。有出口记录吗?然后你会发现所有的细节。只需将export log 提供给要导入的人。并告诉他使用remap_tablespace 参数。

标签: oracle dump


【解决方案1】:

使用 REMAP_TABLESPACE 参数。

例如,

REMAP_TABLESPACE=(source1:destination1,source2:destination1,source3:destination1,source4:destination1)

浏览有关Data Pump Import 的文档。一个小报价 -

可以指定多个 REMAP_TABLESPACE 参数,但不能指定两个 具有相同的源表空间。目标架构必须具有 目标表空间中有足够的配额。

请注意,使用 REMAP_TABLESPACE 参数是唯一的方法 在数据泵导入中重新映射表空间。这是一个更简单、更清洁的 方法比原始导入实用程序中提供的方法。那 方法受到许多限制(包括数量 表空间子条款),有时会导致某些失败 DDL 命令。

相比之下,使用 REMAP_TABLESPACE 的 Data Pump Import 方法 参数适用于所有对象,包括用户,并且有效 不管 DDL 语句中有多少表空间子句。

【讨论】:

  • 好的,所以我重复我的问题:我如何“查询 all_segments”?
  • 登录数据库,执行select * from all_segments,查看tablespace_name。
  • 不幸的是,我收到了ORA-00942
  • ORA-00942: table or view does not exist 表示您无权访问该视图。可以试试user_segments查看
  • 是的,除了与数据库方案同名的条目之外,还有一些条目具有 tablespace_name。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
相关资源
最近更新 更多