Oracle 12c 在线移动分区和部分分区read only

在Oracle12c当中可以在线移动分区。这里我们先随便建一个分区表,来试验这个新特性。

SQL> select TABLE_NAME,PARTITION_NAME,COMPRESS_FOR,READ_ONLY from dba_tab_partitions where TABLE_NAME='T1';
TABLE_NAME                     PARTITION_NAME                 COMPRESS_FOR                   READ
------------------------------ ------------------------------ ------------------------------ ----
T1                             T_RANGE_P1                                                    NO
T1                             T_RANGE_P2                                                    NO
T1                             T_RANGE_P3                                                    NO
T1                             T_RANGE_PMAX                                                  NO

SQL> select segment_name,partition_name,bytes/1024/1024 from dba_segments where segment_name='T1'; 
SEGMENT_NAME                   PARTITION_NAME                 BYTES/1024/1024
------------------------------ ------------------------------ ---------------
T1                             T_RANGE_P1                                 192
T1                             T_RANGE_P2                                 104
T1                             T_RANGE_P3                                 104
T1                             T_RANGE_PMAX                               104

直接对其中一个分区进行压缩并在线移动。

alter table T1 move partition T_RANGE_P1 row store compress basic online;

在压缩的过程中对这个分区进行增删改查的操作均不受影响。
同时在有一些情况下,我们可以对单独的分区设置成read only。一般业务都有一定程度的需求,比如:1.历史数据太大,需要存很久,这个时候,压缩就是一个不错的选择。2.历史数据只是做查询用,不涉及修改和删除。所以Oracle在12c推出的这两个功能和业务贴合的更加紧密了。

SQL> select TABLE_NAME,PARTITION_NAME,COMPRESS_FOR,READ_ONLY from dba_tab_partitions where TABLE_NAME='T1';

TABLE_NAME                     PARTITION_NAME                 COMPRESS_FOR                   READ
------------------------------ ------------------------------ ------------------------------ ----
T1                             T_RANGE_P1                     BASIC                          YES
T1                             T_RANGE_P2                                                    NO
T1                             T_RANGE_P3                                                    NO
T1                             T_RANGE_PMAX                                                  NO

设置成read only之后,该分区就不能做修改操作了。

分享到: 更多

Post a Comment

Your email is never published nor shared. Required fields are marked *