【问题标题】:How to Move a whole partition to another tabel on another database?如何将整个分区移动到另一个数据库上的另一个表?
【发布时间】:2016-07-22 15:48:30
【问题描述】:

数据库:Oracle 12c

我想获取单个分区或一组分区,将其与 DB1 上的一个表或一组表断开连接,然后将其移动到另一个数据库上的另一个表。出于性能原因,我想避免使用 DML 来执行此操作(它需要很快)。

每个分区将包含三到四亿条记录。 每个分区将分为大约 300 个子分区。

任务需要自动化。

我的一些想法:

  • 以某种方式在创建时将每个分区放入自己的数据文件中,然后从源中分离并将其附加到目标?
  • 提取整个分区(不是逐个记录)
  • 也欢迎任何其他非 DML 解决方案

示例(将 Part#33 从两者都移动到 DB#2,最好使用单个操作):

 __________________              __________________
| DB#1             |            | DB#2             |
|------------------|            |------------------|
|Table1            |            |Table1            |
|   Part#1         |            |   Part#1         |
|   ...            |            |   ...            |
|   Part#33        |    ---->   |   Part#32        |
|      Subpart#1   |            |                  |
|      ...         |            |                  |
|      Subpart#300 |            |                  |
|------------------|            |------------------|
|Table2            |            |Table2            |
|   Part#1         |            |   Part#1         |
|   ...            |            |   ...            |
|   Part#33        |    ---->   |   Part#32        |
|      Subpart#1   |            |                  |
|      ...         |            |                  |
|      Subpart#300 |            |                  |
|__________________|            |__________________|

【问题讨论】:

  • 您可以用表交换(交换)表分区,同时将它们移动到可传输的表空间,映射到特定的数据文件。

标签: oracle database-administration oracle12c


【解决方案1】:

请阅读以下文档,其中包含所有交换表分区的示例。

https://oracle-base.com/articles/misc/partitioning-an-existing-table-using-exchange-partition

【讨论】:

    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2013-07-06
    • 2012-11-27
    相关资源
    最近更新 更多