【发布时间】: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