Oracle之分区交换技术
需求:
在数据运维过程中,数据库的01表空间容量不够,需要将数据迁移到02表空间。
方法评估:
1.传统的insert into delete 方式,简单但需要消耗大量的计算资源和时间
2.分区交换技术 ,从指针级的层级改动数据指向,速度快但是会破坏原始数据的索引,需要重建索引
实验过程:
1.首先简单实验了分区交换技术,发现不熟悉导致无法成功完成实验
2.为尽快完成操作,决定先使用传统的insert into delete方法,腾出了80G左右的空间
3.接下来系统的进行了实验,最终得到了成功的测试结果,以便日后使用
实验方法:
1.首先建立一张测试原始表,直接create table select * as table建立了一张表,然后利用自动分区创建工具进行了分区的创建
2.从原始表里选择了100行数据插入到了测试原始表里
3.建立测试临时表,这张用于临时存数据的表要求是非分区表
4.然后使用以下命令便可以直接完成分区交换
alter table xxxx exchange partition p1 with table xxxx
由于我们的表是组合分区表,在时间(天)的分区基础上增加了地点分区,故而我们使用的命令应当如下
alter table xxxx原始表 exchange subpartition p1_place with table xxxx临时表
5.至此就成功完成了数据向临时表的迁移,经过验证发现没有问题
6.在按照创建测试原始表的方式创建一张测试历史表
7.然后使用如下命令将临时表中的数据插入历史表
alter table xxxx历史表 exchange subpartition p1_place with table xxxx临时表