2013-03-23 54 views
0

方案:我想将一个模式表备份到同一数据库中的另一个模式。如何将表从一个模式备份到另一个模式

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

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

谢谢。

+0

你必须使用SQL代码来实现这个吗?你可以把备份和恢复表格转换成另一个模式吗? – 2013-03-23 03:23:02

+0

是的,我想要PLSQL代码来实现这一点。 – 2013-03-23 03:26:34

+0

你可以通过使用表分区来访问[这里](http://www.pythian.com/blog/oracle-how-to-move-a-table-to-another-schema/)方法,创建分区,表结构使用新模式中的现有表,然后交换分区。 – 2013-03-23 04:05:36

回答

2

如果你有一个不平凡的数据量,并且你已经在做“明显”的事情来让它运行得很快(直接路径插入,主要是平行的,如果你能承受的话,可能不会)更多的你可以坚持使用SQL。

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

  • 导出源模式与expdp(以SCHEMAS模式)
  • 删除目标模式并重新创建它(空)
  • 导入与impdp转储和remap_schema=source:target选项(参见REMAP_SCHEMA )。

可以跳过第二步和导入过程中使用table_exists_action=replace代替 - 可能会更快,而且肯定是更好,如果目标模式具有其他对象(见TABLE_EXISTS_ACTION

如果你想留下来“在数据库中“为了实现自动化,数据泵有一个API:DBMS_DATAPUMP

相关问题