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

Oracle10g 如何将表从一个模式备份到另一个模式,oracle10g,Oracle10g,场景:我想将一个模式表备份到同一数据库中的另一个模式 现有设计:删除备份表上的索引并截断数据,最后将数据加载到备份表中(Usign insert query) 要求:现有设计需要更多的时间来处理。请告诉我有没有其他方法可以达到这个目的 谢谢。如果你有大量的数据,并且你已经在做一些“显而易见的”事情来让它快速运行(直接路径插入,主要是并行,nologging,如果你能负担得起的话),那么坚持使用SQL可能就没什么可做的了 您可以尝试使用带有remap\u schema选项的数据泵模式导出/导入。这

场景:我想将一个模式表备份到同一数据库中的另一个模式

现有设计:删除备份表上的索引并截断数据,最后将数据加载到备份表中(Usign insert query)

要求:现有设计需要更多的时间来处理。请告诉我有没有其他方法可以达到这个目的


谢谢。

如果你有大量的数据,并且你已经在做一些“显而易见的”事情来让它快速运行(直接路径插入,主要是并行,
nologging
,如果你能负担得起的话),那么坚持使用SQL可能就没什么可做的了

您可以尝试使用带有
remap\u schema
选项的数据泵模式导出/导入。这一进程将是:

  • 使用
    expdp
    (在模式下)导出源架构
  • 删除目标架构并重新创建它(空)
  • 使用
    impdp
    remap_schema=source:target
    选项导入转储(请参阅)
您可以跳过第二步,在导入过程中使用
table\u exists\u action=replace
——可能会更快,如果目标架构有其他对象,肯定会更好(请参阅)


如果您想留在“数据库”中实现自动化,那么数据泵有一个API:。

您必须使用SQL代码来实现这一点吗?你们能把备份和还原表放到另一个模式中吗?是的,我想用PLSQL代码来实现这个。你们可以通过前面提到的方法使用表分区,你们在新模式中使用现有表创建分区,表结构,然后交换分区。我忘了在我现有的设计中添加这一点。表分区就在那个里。因此,请建议如何提高性能