最近有个客户的oracle 11g环境遇到单个表空间临近耗尽的问题(30TB),同时单个表空间的datafile 个数已经达到了物理上限1023, 且每个datafile已经达到了单个文件的上限30g(8k block size), 表空间中的对象仅一张历史分区表,仅其中一个字段存储的是XML内容,实际为clob类型,占据了整个表空间的90%以上,业务是7*24小时无间断,如何调整把影响最小?
创建测试表
CREATE TABLE anbob.TAB_XML (
T_ID VARCHAR2(19) NOT NULL,
T_CODE VARCHAR2(8),
T_NUMBER VARCHAR2(10),
T_XML CLOB,
YEAR VARCHAR2(4),
WRITETIME VARCHAR2(20) DEFAULT TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss')
)
LOB (T_XML) STORE AS SECUREFILE (
TABLESPACE TS_SOE
ENABLE STORAGE IN ROW
CHUNK 8192
RETENTION
CACHE READS
NOLOGGING
)
TABLESPACE TS_SOE
NOCOMPRESS
NOCACHE
PARTITION BY LIST (YEAR)
SUBPARTITION BY HASH (T_NUMBER) SUBPARTITIONS 8
(
PARTITION PAR_18 VALUES ('2018') TABLESPACE TS_SOE,
PARTITION PAR_19 VALUES ('2019') TABLESPACE TS_SOE,
PARTITION PAR_20 VALUES ('2020') TABLESPACE TS_SOE,
PARTITION PAR_21 VALUES ('2021') TABLESPACE TS_SOE,
PARTITION PAR_22 VALUES ('2022') TABLESPACE TS_SOE,
PARTITION PAR_23 VALUES ('2023') TABLESPACE TS_SOE,
PARTITION PAR_24 VALUES ('2024') TABLESPACE TS_SOE,
PARTITION PAR_25 VALUES ('2025') TABLESPACE TS_SOE,
PARTITION PAR_26 VALUES ('2026') TABLESPACE TS_SOE,
PARTITION PAR_27 VALUES ('2027') TABLESPACE TS_SOE
);
CREATE UNIQUE INDEX anbob.UK_TAB_XML ON anbob.TAB_XML(T_ID)TABLESPACE TS_SOE
GLOBAL PARTITION BY HASH (T_ID) PARTITIONS 16;
CREATE UNIQUE INDEX anbob.UK_TAB_XMLNUM ON anbob.TAB_XML(T_NUMBER, T_CODE) TABLESPACE TS_SOE
GLOBAL PARTITION BY HASH (T_NUMBER) PARTITIONS 16;
ALTER TABLE anbob.TAB_XML ADD (
CONSTRAINT PK_T_TAB_XML PRIMARY KEY (T_ID) USING INDEX anbob.UK_TAB_XML ENABLE VALIDATE,
CONSTRAINT PK_T_TAB_XMLNUM UNIQUE (T_NUMBER, T_CODE) USING INDEX anbob.UK_TAB_XMLNUM ENABLE VALIDATE);
Note: year字段分区,t_number 字段hash 8个子分区,然后是个全局分区hash主键索引(确实绕)。

难点:
- 1, 环境是oracle 11g, 只有online rebuild index,没有online move table
- 2, 30t空间短时间无法复制做全表在线重定义
- 3,table :index: lob 数据比例20:1:5000
- 4, 表上有全局Hash分区索引
- 5, 7*24小时业务
尝试方法
为了展示细节,附全数据
SQL> @tab anbob.TAB_XML
Show tables matching condition "%anbob.TAB_XML%" (if schema is not specified then current user s tables only are shown)...
OWNER TABLE_NAME TYPE NUM_ROWS BLOCKS EMPTY AVGSPC ROWLEN TAB_LAST_ANALYZED DEGREE COMPRESSION
-------------------- ------------------------------ ---- ------------ ------------- --------- ------ ------ ------------------- -------------------------------------------------------------------------------- ----------------
ANBOB TAB_XML PTAB 1
SQL> @tabpart
TABLE_OWNER TABLE_NAME POS COMPOS PARTITION_NAME NUM_ROWS SUBPARTITION_COUNT HIGH_VALUE_RAW HIGH_VALUE_LENGTH COMPRESSION COMPRESS_FOR
------------------------------ ------------------------------ ---------- ------ ------------------------------ ---------- ------------------ ---------------------------------------------------------------------------------------------------- ----------------- ---------------- ------------------------------------------------------------
ANBOB TAB_XML 1 YES PAR_18 8 '2018' 6 DISABLED
ANBOB 2 YES PAR_19 8 '2019' 6 DISABLED
ANBOB 3 YES PAR_20 8 '2020' 6 DISABLED
ANBOB 4 YES PAR_21 8 '2021' 6 DISABLED
ANBOB 5 YES PAR_22 8 '2022' 6 DISABLED
ANBOB 6 YES PAR_23 8 '2023' 6 DISABLED
ANBOB 7 YES PAR_24 8 '2024' 6 DISABLED
ANBOB 8 YES PAR_25 8 '2025' 6 DISABLED
ANBOB 9 YES PAR_26 8 '2026' 6 DISABLED
ANBOB 10 YES PAR_27 8 '2027' 6 DISABLED
10 rows selected.
SQL> @tabsubpart
TABLE_OWNER TABLE_NAME PARTITION_NAME SUBPARTITION_NAME SUB_POS NUM_ROWS HIGH_VALUE_RAW HIGH_VALUE_LENGTH
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------- ---------- ---------------------------------------------------------------------------------------------------- -----------------
ANBOB TAB_XML PAR_18 SYS_SUBP7000 1 0
ANBOB PAR_18 SYS_SUBP7001 2 0
ANBOB PAR_18 SYS_SUBP7002 3 0
ANBOB PAR_18 SYS_SUBP7023 4 0
ANBOB PAR_18 SYS_SUBP7024 5 0
ANBOB PAR_18 SYS_SUBP7025 6 0
ANBOB PAR_18 SYS_SUBP7026 7 0
ANBOB PAR_18 SYS_SUBP7027 8 0
ANBOB PAR_19 SYS_SUBP7028 1 0
ANBOB PAR_19 SYS_SUBP7029 2 0
ANBOB PAR_19 SYS_SUBP7030 3 0
ANBOB PAR_19 SYS_SUBP7031 4 0
ANBOB PAR_19 SYS_SUBP7032 5 0
ANBOB PAR_19 SYS_SUBP7033 6 0
ANBOB PAR_19 SYS_SUBP7034 7 0
ANBOB PAR_19 SYS_SUBP7035 8 0
ANBOB PAR_20 SYS_SUBP7036 1 0
ANBOB PAR_20 SYS_SUBP7037 2 0
ANBOB PAR_20 SYS_SUBP7038 3 0
ANBOB PAR_20 SYS_SUBP7039 4 0
ANBOB PAR_20 SYS_SUBP7040 5 0
ANBOB PAR_20 SYS_SUBP7041 6 0
ANBOB PAR_20 SYS_SUBP7042 7 0
ANBOB PAR_20 SYS_SUBP7043 8 0
ANBOB PAR_21 SYS_SUBP7044 1 0
ANBOB PAR_21 SYS_SUBP7045 2 0
ANBOB PAR_21 SYS_SUBP7046 3 0
ANBOB PAR_21 SYS_SUBP7047 4 0
ANBOB PAR_21 SYS_SUBP7048 5 0
ANBOB PAR_21 SYS_SUBP7049 6 0
ANBOB PAR_21 SYS_SUBP7050 7 0
ANBOB PAR_21 SYS_SUBP7051 8 0
ANBOB PAR_22 SYS_SUBP7052 1 0
ANBOB PAR_22 SYS_SUBP7053 2 0
ANBOB PAR_22 SYS_SUBP7054 3 0
ANBOB PAR_22 SYS_SUBP7055 4 0
ANBOB PAR_22 SYS_SUBP7056 5 0
ANBOB PAR_22 SYS_SUBP7057 6 0
ANBOB PAR_22 SYS_SUBP7058 7 0
ANBOB PAR_22 SYS_SUBP7059 8 0
ANBOB PAR_23 SYS_SUBP7060 1 0
ANBOB PAR_23 SYS_SUBP7061 2 0
ANBOB PAR_23 SYS_SUBP7062 3 0
ANBOB PAR_23 SYS_SUBP7063 4 0
ANBOB PAR_23 SYS_SUBP7064 5 0
ANBOB PAR_23 SYS_SUBP7065 6 0
ANBOB PAR_23 SYS_SUBP7066 7 0
ANBOB PAR_23 SYS_SUBP7067 8 0
ANBOB PAR_24 SYS_SUBP7068 1 0
ANBOB PAR_24 SYS_SUBP7069 2 0
ANBOB PAR_24 SYS_SUBP7070 3 0
ANBOB PAR_24 SYS_SUBP7071 4 0
ANBOB PAR_24 SYS_SUBP7072 5 0
ANBOB PAR_24 SYS_SUBP7073 6 0
ANBOB PAR_24 SYS_SUBP7074 7 0
ANBOB PAR_24 SYS_SUBP7075 8 0
ANBOB PAR_25 SYS_SUBP7076 1 0
ANBOB PAR_25 SYS_SUBP7077 2 0
ANBOB PAR_25 SYS_SUBP7078 3 0
ANBOB PAR_25 SYS_SUBP7079 4 0
ANBOB PAR_25 SYS_SUBP7080 5 0
ANBOB PAR_25 SYS_SUBP7081 6 0
ANBOB PAR_25 SYS_SUBP7082 7 0
ANBOB PAR_25 SYS_SUBP7083 8 0
ANBOB PAR_26 SYS_SUBP7084 1 0
ANBOB PAR_26 SYS_SUBP7085 2 0
ANBOB PAR_26 SYS_SUBP7086 3 0
ANBOB PAR_26 SYS_SUBP7087 4 0
ANBOB PAR_26 SYS_SUBP7088 5 0
ANBOB PAR_26 SYS_SUBP7089 6 0
ANBOB PAR_26 SYS_SUBP7090 7 0
ANBOB PAR_26 SYS_SUBP7091 8 0
ANBOB PAR_27 SYS_SUBP7092 1 0
ANBOB PAR_27 SYS_SUBP7093 2 0
ANBOB PAR_27 SYS_SUBP7094 3 0
ANBOB PAR_27 SYS_SUBP7095 4 0
ANBOB PAR_27 SYS_SUBP7096 5 0
ANBOB PAR_27 SYS_SUBP7097 6 0
ANBOB PAR_27 SYS_SUBP7098 7 0
ANBOB PAR_27 SYS_SUBP7099 8 0
80 rows selected.
SQL> @lob
OWNER TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME CHUNK PCTVERSION RETENTION FREEPOOLS CACHE LOGGING ENCRYPT COMPRESSION DEDUPLICATION IN_ROW FORMAT PARTIT SECURE SEGMEN RETENTION_TYPE RETENTION_VALUE
------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- ---------- -------------------- -------------- -------- ------------ ------------------------------ ------ ------------------------------ ------ ------ ------ -------------- ---------------
ANBOB TAB_XML T_XML SYS_LOB0000135942C00004$$ TS_SOE SYS_IL0000135942C00004$$ 8192 10 CACHEREADS NO NO NO NO YES ENDIAN NEUTRAL YES YES N/A DEFAULT
select TABLE_OWNER,TABLE_NAME,COLUMN_NAME,LOB_NAME,PARTITION_NAME,LOB_PARTITION_NAME,LOB_INDPART_NAME,PARTITION_POSITION,TABLESPACE_NAME
from dba_lob_partitions where table_owner='ANBOB'
TABLE_OWNER TABLE_NAME COLUMN_NAME LOB_NAME PARTITION_NAME LOB_PARTITION_NAME LOB_INDPART_NAME PARTITION_POSITION TABLESPACE_NAME
--------------- -------------------- ------------------------------ ------------------------------ ------------------------------ -------------------- -------------------- ------------------ ------------------------------
ANBOB TAB_XML T_XML SYS_LOB0000135942C00004$$ PAR_18 SYS_LOB_P7100 SYS_IL_P7270 1 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_19 SYS_LOB_P7109 SYS_IL_P7271 2 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_20 SYS_LOB_P7118 SYS_IL_P7272 3 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_21 SYS_LOB_P7127 SYS_IL_P7273 4 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_22 SYS_LOB_P7136 SYS_IL_P7274 5 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_23 SYS_LOB_P7145 SYS_IL_P7275 6 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_24 SYS_LOB_P7154 SYS_IL_P7276 7 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_25 SYS_LOB_P7163 SYS_IL_P7277 8 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_26 SYS_LOB_P7172 SYS_IL_P7278 9 TS_SOE
ANBOB T_XML SYS_LOB0000135942C00004$$ PAR_27 SYS_LOB_P7181 SYS_IL_P7279 10 TS_SOE
10 rows selected.
SQL> select TABLE_OWNER,TABLE_NAME,COLUMN_NAME,LOB_NAME,LOB_PARTITION_NAME,SUBPARTITION_NAME,LOB_SUBPARTITION_NAME,TABLESPACE_NAME
from DBA_LOB_SUBPARTITIONS where table_owner='ANBOB' and table_name='T_FSEIXML' order by SUBPARTITION_POSITION 2 ;
TABLE_OWNER TABLE_NAME COLUMN_NAME LOB_NAME LOB_PARTITION_NAME SUBPARTITION_NAME LOB_SUBPARTITION_NAME TABLESPACE
--------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ----------
ANBOB T_FSEIXML EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7000 SYS_LOB_SUBP7385 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7028 SYS_LOB_SUBP7110 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7036 SYS_LOB_SUBP7347 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7044 SYS_LOB_SUBP7128 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7052 SYS_LOB_SUBP7137 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7060 SYS_LOB_SUBP7146 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7068 SYS_LOB_SUBP7155 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7076 SYS_LOB_SUBP7164 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7084 SYS_LOB_SUBP7173 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7092 SYS_LOB_SUBP7182 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7001 SYS_LOB_SUBP7388 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7029 SYS_LOB_SUBP7111 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7037 SYS_LOB_SUBP7355 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7045 SYS_LOB_SUBP7129 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7053 SYS_LOB_SUBP7138 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7061 SYS_LOB_SUBP7147 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7069 SYS_LOB_SUBP7156 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7077 SYS_LOB_SUBP7165 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7085 SYS_LOB_SUBP7174 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7093 SYS_LOB_SUBP7183 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7002 SYS_LOB_SUBP7391 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7030 SYS_LOB_SUBP7112 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7038 SYS_LOB_SUBP7358 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7046 SYS_LOB_SUBP7130 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7054 SYS_LOB_SUBP7139 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7062 SYS_LOB_SUBP7148 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7070 SYS_LOB_SUBP7157 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7078 SYS_LOB_SUBP7166 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7086 SYS_LOB_SUBP7175 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7094 SYS_LOB_SUBP7184 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7023 SYS_LOB_SUBP7394 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7031 SYS_LOB_SUBP7113 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7039 SYS_LOB_SUBP7361 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7047 SYS_LOB_SUBP7131 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7055 SYS_LOB_SUBP7140 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7063 SYS_LOB_SUBP7149 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7071 SYS_LOB_SUBP7158 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7079 SYS_LOB_SUBP7167 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7087 SYS_LOB_SUBP7176 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7095 SYS_LOB_SUBP7185 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7024 SYS_LOB_SUBP7397 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7032 SYS_LOB_SUBP7114 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7040 SYS_LOB_SUBP7364 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7048 SYS_LOB_SUBP7132 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7056 SYS_LOB_SUBP7141 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7064 SYS_LOB_SUBP7150 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7072 SYS_LOB_SUBP7159 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7080 SYS_LOB_SUBP7168 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7088 SYS_LOB_SUBP7177 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7096 SYS_LOB_SUBP7186 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7025 SYS_LOB_SUBP7432 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7033 SYS_LOB_SUBP7115 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7041 SYS_LOB_SUBP7367 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7049 SYS_LOB_SUBP7133 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7057 SYS_LOB_SUBP7142 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7065 SYS_LOB_SUBP7151 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7073 SYS_LOB_SUBP7160 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7081 SYS_LOB_SUBP7169 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7089 SYS_LOB_SUBP7178 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7097 SYS_LOB_SUBP7187 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7026 SYS_LOB_SUBP7435 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7034 SYS_LOB_SUBP7116 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7042 SYS_LOB_SUBP7370 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7050 SYS_LOB_SUBP7134 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7058 SYS_LOB_SUBP7143 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7066 SYS_LOB_SUBP7152 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7074 SYS_LOB_SUBP7161 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7082 SYS_LOB_SUBP7170 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7090 SYS_LOB_SUBP7179 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7098 SYS_LOB_SUBP7288 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7100 SYS_SUBP7027 SYS_LOB_SUBP7438 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7109 SYS_SUBP7035 SYS_LOB_SUBP7117 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7118 SYS_SUBP7043 SYS_LOB_SUBP7373 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7127 SYS_SUBP7051 SYS_LOB_SUBP7135 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7136 SYS_SUBP7059 SYS_LOB_SUBP7144 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7145 SYS_SUBP7067 SYS_LOB_SUBP7153 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7154 SYS_SUBP7075 SYS_LOB_SUBP7162 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7163 SYS_SUBP7083 SYS_LOB_SUBP7171 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7172 SYS_SUBP7091 SYS_LOB_SUBP7180 TS_SOE
ANBOB EINVOICEXML SYS_LOB0000135942C00004$$ SYS_LOB_P7181 SYS_SUBP7099 SYS_LOB_SUBP7461 TS_SOE
80 rows selected.
SQL> @seg anbob.SYS_LOB
SEG_MB OWNER SEGMENT_NAME SEG_PART_NAME SEGMENT_TYPE SEG_TABLESPACE_NAME BLOCKS HDRFIL HDRBLK
---------- -------------------- ------------------------------ ------------------------------ -------------------- -------------------------- ---------- ---------- ----------
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7189 LOB SUBPARTITION TS_SOE 1024 14 736257
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7188 LOB SUBPARTITION TS_SOE 1024 14 735233
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7187 LOB SUBPARTITION TS_SOE 1024 14 734209
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7186 LOB SUBPARTITION TS_SOE 1024 14 733185
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7185 LOB SUBPARTITION TS_SOE 1024 14 732161
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7184 LOB SUBPARTITION TS_SOE 1024 14 731137
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7183 LOB SUBPARTITION TS_SOE 1024 14 730113
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7182 LOB SUBPARTITION TS_SOE 1024 14 729089
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7180 LOB SUBPARTITION TS_SOE 1024 14 728065
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7179 LOB SUBPARTITION TS_SOE 1024 14 727041
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7178 LOB SUBPARTITION TS_SOE 1024 14 726017
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7177 LOB SUBPARTITION TS_SOE 1024 14 724993
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7176 LOB SUBPARTITION TS_SOE 1024 14 723969
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7175 LOB SUBPARTITION TS_SOE 1024 14 722945
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7174 LOB SUBPARTITION TS_SOE 1024 14 721921
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7173 LOB SUBPARTITION TS_SOE 1024 14 720897
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7171 LOB SUBPARTITION TS_SOE 1024 14 719873
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7170 LOB SUBPARTITION TS_SOE 1024 14 718849
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7169 LOB SUBPARTITION TS_SOE 1024 14 717825
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7168 LOB SUBPARTITION TS_SOE 1024 14 716801
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7167 LOB SUBPARTITION TS_SOE 1024 14 715777
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7166 LOB SUBPARTITION TS_SOE 1024 14 714753
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7165 LOB SUBPARTITION TS_SOE 1024 14 713729
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7164 LOB SUBPARTITION TS_SOE 1024 14 712705
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7111 LOB SUBPARTITION TS_SOE 1024 14 664577
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7110 LOB SUBPARTITION TS_SOE 1024 14 663553
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7108 LOB SUBPARTITION TS_SOE 1024 14 662529
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7107 LOB SUBPARTITION TS_SOE 1024 14 661505
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7106 LOB SUBPARTITION TS_SOE 1024 14 660481
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7105 LOB SUBPARTITION TS_SOE 1024 14 659457
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7104 LOB SUBPARTITION TS_SOE 1024 14 658433
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7103 LOB SUBPARTITION TS_SOE 1024 14 657409
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7102 LOB SUBPARTITION TS_SOE 1024 14 656385
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7101 LOB SUBPARTITION TS_SOE 1024 14 655361
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7162 LOB SUBPARTITION TS_SOE 1024 14 711681
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7161 LOB SUBPARTITION TS_SOE 1024 14 710657
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7160 LOB SUBPARTITION TS_SOE 1024 14 709633
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7159 LOB SUBPARTITION TS_SOE 1024 14 708609
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7158 LOB SUBPARTITION TS_SOE 1024 14 707585
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7157 LOB SUBPARTITION TS_SOE 1024 14 706561
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7156 LOB SUBPARTITION TS_SOE 1024 14 705537
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7155 LOB SUBPARTITION TS_SOE 1024 14 704513
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7153 LOB SUBPARTITION TS_SOE 1024 14 703489
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7152 LOB SUBPARTITION TS_SOE 1024 14 702465
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7151 LOB SUBPARTITION TS_SOE 1024 14 701441
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7150 LOB SUBPARTITION TS_SOE 1024 14 700417
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7149 LOB SUBPARTITION TS_SOE 1024 14 699393
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7148 LOB SUBPARTITION TS_SOE 1024 14 698369
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7147 LOB SUBPARTITION TS_SOE 1024 14 697345
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7146 LOB SUBPARTITION TS_SOE 1024 14 696321
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7144 LOB SUBPARTITION TS_SOE 1024 14 695297
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7143 LOB SUBPARTITION TS_SOE 1024 14 694273
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7142 LOB SUBPARTITION TS_SOE 1024 14 693249
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7141 LOB SUBPARTITION TS_SOE 1024 14 692225
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7140 LOB SUBPARTITION TS_SOE 1024 14 691201
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7139 LOB SUBPARTITION TS_SOE 1024 14 690177
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7138 LOB SUBPARTITION TS_SOE 1024 14 689153
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7137 LOB SUBPARTITION TS_SOE 1024 14 688129
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7135 LOB SUBPARTITION TS_SOE 1024 14 687105
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7134 LOB SUBPARTITION TS_SOE 1024 14 686081
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7133 LOB SUBPARTITION TS_SOE 1024 14 685057
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7132 LOB SUBPARTITION TS_SOE 1024 14 684033
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7131 LOB SUBPARTITION TS_SOE 1024 14 683009
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7130 LOB SUBPARTITION TS_SOE 1024 14 681985
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7129 LOB SUBPARTITION TS_SOE 1024 14 680961
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7128 LOB SUBPARTITION TS_SOE 1024 14 679937
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7126 LOB SUBPARTITION TS_SOE 1024 14 678913
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7125 LOB SUBPARTITION TS_SOE 1024 14 677889
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7124 LOB SUBPARTITION TS_SOE 1024 14 676865
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7123 LOB SUBPARTITION TS_SOE 1024 14 675841
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7122 LOB SUBPARTITION TS_SOE 1024 14 674817
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7121 LOB SUBPARTITION TS_SOE 1024 14 673793
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7120 LOB SUBPARTITION TS_SOE 1024 14 672769
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7119 LOB SUBPARTITION TS_SOE 1024 14 671745
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7112 LOB SUBPARTITION TS_SOE 1024 14 665601
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7117 LOB SUBPARTITION TS_SOE 1024 14 670721
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7116 LOB SUBPARTITION TS_SOE 1024 14 669697
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7115 LOB SUBPARTITION TS_SOE 1024 14 668673
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7114 LOB SUBPARTITION TS_SOE 1024 14 667649
8 ANBOB SYS_LOB0000135942C00004$$ SYS_LOB_SUBP7113 LOB SUBPARTITION TS_SOE 1024 14 666625
80 rows selected.
Note: 10个分区,每个8 hash 子分区,一共80个subpartition, 一对一 对应80个lob subpartition.
生产数据库每个lob子分区大的达600G, 那move 历史年份的lob subpartition到其他tablespace可能最当前适合的方法。
如何移动lob subpartition?
alter table <table name> move partition <table partition name>
lob (<lob column name>) store as <optional lob partition name> (tablespace <lob tablespace name>);
-or-
alter table <table name> move partition <table partition name>
lob (<lob column name>) store as (tablespace <lob tablespace name>);
移动 lob subpartition会导致索引失效吗?
lob 在table行内存的是Location地址,当然希望只移动lob segment,不动table segment,这样能避免index 失效。真能避免吗?选择一个subpartition, table subpartition(SYS_SUBP7000) ==对应== lob subpartition(SYS_LOB_SUBP7101).
SQL> alter table anbob.TAB_XML
move subpartition SYS_LOB_SUBP7189 --lob subpartition name
LOB (T_XML) STORE AS SECUREFILE ( TABLESPACE USERS ) ;
move subpartition SYS_LOB_SUBP7189
*
ERROR at line 2:
ORA-14251: Specified subpartition does not exist
SQL> alter table anbob.TAB_XML
move subpartition SYS_SUBP7099 -- tab subpartition name
LOB (T_XML) STORE AS SECUREFILE ( TABLESPACE USERS ) ;
Table altered.
OWNER INDEX_NAME PARTITION_NAME
-------------------- ---------------------------- ------------------------------
ANBOB UK_TAB_XML SYS_P7399
ANBOB UK_TAB_XML SYS_P7400
ANBOB UK_TAB_XML SYS_P7401
ANBOB UK_TAB_XML SYS_P7402
ANBOB UK_TAB_XML SYS_P7403
ANBOB UK_TAB_XML SYS_P7404
ANBOB UK_TAB_XML SYS_P7405
ANBOB UK_TAB_XML SYS_P7406
ANBOB UK_TAB_XML SYS_P7407
ANBOB UK_TAB_XML SYS_P7408
ANBOB UK_TAB_XML SYS_P7409
ANBOB UK_TAB_XML SYS_P7410
ANBOB UK_TAB_XML SYS_P7411
ANBOB UK_TAB_XML SYS_P7412
ANBOB UK_TAB_XML SYS_P7413
ANBOB UK_TAB_XML SYS_P7414
ANBOB UK_TAB_XMLNUM SYS_P7415
ANBOB UK_TAB_XMLNUM SYS_P7416
ANBOB UK_TAB_XMLNUM SYS_P7417
ANBOB UK_TAB_XMLNUM SYS_P7418
ANBOB UK_TAB_XMLNUM SYS_P7419
ANBOB UK_TAB_XMLNUM SYS_P7420
ANBOB UK_TAB_XMLNUM SYS_P7421
ANBOB UK_TAB_XMLNUM SYS_P7422
ANBOB UK_TAB_XMLNUM SYS_P7423
ANBOB UK_TAB_XMLNUM SYS_P7424
ANBOB UK_TAB_XMLNUM SYS_P7425
ANBOB UK_TAB_XMLNUM SYS_P7426
ANBOB UK_TAB_XMLNUM SYS_P7427
ANBOB UK_TAB_XMLNUM SYS_P7428
ANBOB UK_TAB_XMLNUM SYS_P7429
ANBOB UK_TAB_XMLNUM SYS_P7430
32 rows selected.
Note: move lob subpartition的语法没有,Move tab subpartition的语法后,不及预期,全局分区索引有部分失效了。
SQL> SELECT segment_name
, tablespace_name
, header_file
, header_block
, partition_name
FROM dba_segments
WHERE segment_name LIKE 'TAB_XML%'
and PARTITION_NAME='SYS_SUBP7000'
ORDER BY 1
/
SEGMENT_NAME TABLESPACE_NAME HEADER_FILE HEADER_BLOCK PARTITION_NAME
------------------------------ ------------------------------ ----------- ------------ ------------------------------
TAB_XML TS_SOE 13 1149290 SYS_SUBP7000
SQL> SELECT segment_name
, tablespace_name
, header_file
, header_block
, partition_name
FROM dba_segments
WHERE (owner,segment_name,PARTITION_NAME) in (
select TABLE_OWNER,LOB_NAME,LOB_SUBPARTITION_NAME
from DBA_LOB_SUBPARTITIONS where table_owner='ANBOB' and table_name='TAB_XML' and SUBPARTITION_NAME='SYS_SUBP7000'
);
SEGMENT_NAME TABLESPACE_NAME HEADER_FILE HEADER_BLOCK PARTITION_NAME
------------------------------ ------------------------------ ----------- ------------ ------------------------------
SYS_LOB0000135942C00004$$ TS_SOE 13 907265 SYS_LOB_SUBP8258
SQL> alter table anbob.TAB_XML
move subpartition SYS_SUBP7000
LOB (EINVOICEXML) STORE AS SECUREFILE ( TABLESPACE USERS ) ;
Table altered.
SQL> SELECT segment_name
2 , tablespace_name
, header_file
, header_block
, partition_name
3 4 5 6 FROM dba_segments
WHERE (owner,segment_name,PARTITION_NAME) in (
select TABLE_OWNER,LOB_NAME,LOB_SUBPARTITION_NAME
from DBA_LOB_SUBPARTITIONS where table_owner='ANBOB' and table_name='TAB_XML' and SUBPARTITION_NAME='SYS_SUBP7000'
7 8 9 10 );
SEGMENT_NAME TABLESPACE_NAME HEADER_FILE HEADER_BLOCK PARTITION_NAME
------------------------------ ------------------------------ ----------- ------------ ------------------------------
SYS_LOB0000135942C00004$$ USERS 5 26625 SYS_LOB_SUBP8261
SQL> SELECT segment_name
, tablespace_name
, header_file
, header_block
, partition_name
FROM dba_segments
WHERE segment_name LIKE 'TAB_XML%'
and PARTITION_NAME='SYS_SUBP7000'
ORDER BY 1
/
SEGMENT_NAME TABLESPACE_NAME HEADER_FILE HEADER_BLOCK PARTITION_NAME
------------------------------ ------------------------------ ----------- ------------ ------------------------------
TAB_XML TS_SOE 13 846194 SYS_SUBP7000
Note: move lob换到了预定的表空间,同时table subpartition 在原表空间也做了move, 所以才会索引失效。 猜测虽然table 行内存储的是lob seg的指针,但是如果move 了lob,但是原来的地址也要更新,oracle又是row level存储,更新一个字段也要加载所有数据,如果是行级更新可能吞吐量没有重建快。
重建失效索引
SELECT 'alter index '
|| index_owner
|| '.'
|| index_name
|| ' rebuild partition '
|| partition_name
|| ' parallel 8;'
sqls
FROM dba_ind_partitions
WHERE status NOT IN ('N/A', 'USABLE') order by 1;
move分区 UPDATE GLOBAL INDEXES
可以在move table时带上UPDATE GLOBAL INDEXES 同时维护索引。
SQL> alter table anbob.T_FSEIXML
move subpartition SYS_SUBP7000
LOB (EINVOICEXML) STORE AS SECUREFILE ( TABLESPACE USERS ) UPDATE GLOBAL INDEXES;
Table altered.
SQL> @inv
Show invalid objects, indexes, index partitions and index subpartitions....
no rows selected
no rows selected
no rows selected
no rows selected
Note: UPDATE GLOBAL INDEXES 同时更新索引不会失效,但是这种会非常的慢,我们尝试一个50g的分区,4个小时没有执行完。即使session级开启了force parallel ddl, force parallel dml,同样并行效果不好。
12c以后可以使用online。
alter table anbob.T_FSEIXML
move subpartition SYS_SUBP7000
LOB (EINVOICEXML) STORE AS SECUREFILE ( TABLESPACE USERS ) online;
Note: 同样也不会有索引失效。
创建分区local索引临时过度
当前是global partition index, 可临时增加local partition index,这样仅move的partiton对应的index partition会失效,重建速度快,全局索引失效可以有local索引顶替。
CREATE UNIQUE INDEX ANBOB.UK_TAB_XML1 ON ANBOB.TAB_XML(T_ID,YEAR,T_NUMBER) TABLESPACE USERS local;
Note:这种会临时失去唯一约束限制。
应用测调整
快速的方法是修复应用partkey value, 创建新的分区,因为是list 分区,定义新的分区新数据写新的分区到新存储即可,再更新新年度的已入库的少量分区。或应用查询时拼接。如原来是2026, 新分区为2026a, 查询时 like year.
XMLtype 如何move
oracle支持xmltype,同样也是使用clob形式存储,这种type move和lob 有些不同之处。
CREATE TABLE anbob.t_xml2
( c_vc2 VARCHAR2(4000)
, c_clob CLOB
, c_xml XMLTYPE
)
TABLESPACE users
LOB (c_clob) STORE AS SECUREFILE t_test_clob (TABLESPACE users DISABLE STORAGE IN ROW RETENTION CACHE)
XMLTYPE COLUMN c_xml STORE AS SECUREFILE BINARY XML t_test_xml (TABLESPACE users DISABLE STORAGE IN ROW RETENTION CACHE)
/
SQL> desc anbob.t_xml2
Name Null? Type
------------------------------- -------- ----------------------------
1 C_VC2 VARCHAR2(4000)
2 C_CLOB CLOB
3 C_XML XMLTYPE STORAGE BINARY
SQL> @lob anbob.t_xml2
OWNER TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME CHUNK PCTVERSION RETENTION FREEPOOLS CACHE LOGGING ENCRYPT COMPRESSION DEDUPLICATION IN_ROW FORMAT PARTIT SECURE SEGMEN RETENTION_TYPE RETENTION_VALUE
------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------ ------------------------------ ------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------- ---------- ---------- -------------------- -------------- -------- ------------ ------------------------------ ------ ------------------------------ ------ ------ ------ -------------- ---------------
ANBOB T_XML2 C_CLOB T_TEST_CLOB USERS SYS_IL0000138458C00002$$ 8192 YES YES NO NO NO NO ENDIAN NEUTRAL NO YES YES DEFAULT
ANBOB T_XML2 SYS_NC00004$ T_TEST_XML USERS SYS_IL0000138458C00004$$ 8192 YES YES NO NO NO NO NOT APPLICABLE NO YES YES DEFAULT
xmltype move时,不能使用column名, 而要使用内部的lob名。
SQL> ALTER TABLE anbob.t_xml2 MOVE
TABLESPACE TS_SOE
LOB (c_clob) STORE AS SECUREFILE (TABLESPACE TS_SOE)
LOB (c_xml) STORE AS SECUREFILE (TABLESPACE TS_SOE)
/
LOB (c_xml) STORE AS SECUREFILE (TABLESPACE TS_SOE)
*
ERROR at line 4:
ORA-00904: "C_XML": invalid identifier
SQL> ALTER TABLE anbob.t_xml2 MOVE
TABLESPACE TS_SOE
LOB (c_clob) STORE AS SECUREFILE (TABLESPACE TS_SOE)
LOB (SYS_NC00004$) STORE AS SECUREFILE (TABLESPACE TS_SOE)
/
Table altered.
默认情况下,move 表时,LOB 段不会移动;如果要将其包含在移动中,则需要明确指定。
XML 段在这方面并不一致,默认情况下它们会移动到表数据段的表空间(无论是否指定);必须明确指定它们将保留在正确的表空间中(但它们总是会移动)。
— over —