如何将整个分区移动到另一个数据库的另一个表格?

时间:2016-07-22 15:48:30

标签: oracle database-administration oracle12c

数据库:Oracle 12c

我想采用单个分区或一组分区,将其从表或DB1上的表集断开,并将其移动到另一个数据库上的另一个表。出于性能原因,我想避免使用DML执行此操作(需要快速)。

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

任务需要自动完成。

我有些想法:

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

示例(将部件#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 |            |                  |
|__________________|            |__________________|

1 个答案:

答案 0 :(得分:1)

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

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