如何将表从一个模式备份到另一个模式

时间:2013-03-23 03:05:58

标签: oracle10g

场景:我想将一个架构表备份到同一数据库中的另一个架构。

现有设计:删除备份表上的索引并截断数据,最后将数据加载到备份表中(使用插入查询)。

要求:现有设计需要更多时间来处理。请建议我有没有其他方法来实现这个......

感谢。

1 个答案:

答案 0 :(得分:2)

如果你有一些非常重要的数据,并且你已经做了“显而易见”的事情来使它快速运行(直接路径插入,主要是并行,nologging,如果你能负担得起的话),可能没有更多的东西可以坚持使用SQL。

您可以尝试的一件事是使用remap_schema选项使用数据泵模式导出/导入。这个过程将是:

  • 使用expdpSCHEMAS模式)
  • 导出源架构
  • 删除目标架构并重新创建(空)
  • 使用impdpremap_schema=source:target选项导入转储(请参阅REMAP_SCHEMA)。

您可以跳过第二步并在导入期间使用table_exists_action=replace - 可能会更快,如果目标架构有其他对象肯定会更好(请参阅TABLE_EXISTS_ACTION。)

如果您希望保持“在数据库中”以自动执行此操作,则可以使用数据泵API:DBMS_DATAPUMP