【问题标题】:Copy all table data and table structures from one user into an another user将一个用户的所有表数据和表结构复制到另一个用户
【发布时间】:2012-08-24 13:08:43
【问题描述】:

我对数据库管理了解不多。我的问题是我有一个 oracle 数据库,其中我们有一个带有一些表的用户“user1”,在这些表中,有些表有数据,有些没有。现在我想创建一个新用户“user2”,这应该是“user1”的精确复制。所以我像下面这样导出了 user1:

exp user1/***** file=exp.dmp log=exp.log

现在我正在像这样将该文件导入到我的新 user2

imp user2/**** file=exp.dmp ..

但它在 user2 中创建仅包含数据的表。我想将所有对象从 user1 复制到 user2。请帮助我。 仅供参考,我在窗口 7 上使用 oracle 11g 应用了 patch2

【问题讨论】:

  • 日志文件的输出是什么?
  • 显示成功导入,没有任何警告
  • 导出日志文件是我感兴趣的。
  • 另外,在 exp 命令中,您是否向我们展示了您定义的所有选项?
  • 请自行创建此问题的答案并将其标记为正确,谢谢。

标签: oracle oracle11g


【解决方案1】:

正在使用deferred segment creation

使用没有段的表导出 will not work。您可能希望改用 Export DataPump。

或者您可以通过手动创建分段来使其工作:

alter table your_table_name allocate extent;

【讨论】:

  • 当我使用数据泵时,我的问题解决了。你能解释一下你给出的细分概念吗?谢谢...
  • 一个对象的所有数据都存储在一个段中。在旧版本的 Oracle 中,段总是与对象同时创建。这通常只会浪费少量的空间,但在某些情况下可能会很重要。使用延迟分段创建,直到真正需要分段才被创建。我不知道imp/exp/impdp/expdp 的内部结构,但我的猜测是 exp 仍然假设总会有一个段。也许它在某处使用内部连接而不是外部连接? allocate extent 强制创建段,使表格对exp 可见。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
相关资源
最近更新 更多