客户有个带lob对象的表空间,希望做表空间的move,可是等move之后,发现在dba_lobs里面查到的lob对象的表空间还是在原来的地方。
CREATE TABLE SCES1INPUTS
(
CODREQUEST VARCHAR2(9 BYTE) NOT NULL,
LOBS1INPUT CLOB NOT NULL,
CODLAYOUT VARCHAR2(20 BYTE) NOT NULL,
DATINSERTION DATE DEFAULT SYSDATE NOT NULL,
CODINSERTIONUSER VARCHAR2(10 BYTE) NOT NULL,
CODINSERTIONFUNCTION VARCHAR2(5 BYTE) NOT NULL,
DATHISTORY DATE DEFAULT SYSDATE NOT NULL,
LOBS1INPUT_GZ BLOB
)
LOB (LOBS1INPUT) STORE AS LOB1_SCES1INPUTS
LOB (LOBS1INPUT_GZ) STORE AS LOB2_SCES1INPUTS
PARTITION BY RANGE ( DATINSERTION )
(
PARTITION "SCES1INPUTS_200508" VALUES LESS THAN (to_date('01092005','ddmmyyyy')) ,
PARTITION "SCES1INPUTS_200509" VALUES LESS THAN (to_date('01102005','ddmmyyyy')) ,
PARTITION "SCES1INPUTS_200510" VALUES LESS THAN (to_date('01112005','ddmmyyyy')) ,
PARTITION "SCES1INPUTS_200511" VALUES LESS THAN (to_date('01122005','ddmmyyyy')) ,
PARTITION "SCES1INPUTS_200512" VALUES LESS THAN (to_date('01012006','ddmmyyyy'))
)
/
SQL> SELECT table_name,column_name,segment_name,tablespace_name,index_name
2 from Dba_Lobs WHERE table_name='SCES1INPUTS';
TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME
-------------------- -------------------- ------------------------------ -------------------- ----------------------------------------
SCES1INPUTS LOBS1INPUT LOB1_SCES1INPUTS USERS SYS_IL0000018502C00002$$
SCES1INPUTS LOBS1INPUT_GZ LOB2_SCES1INPUTS USERS SYS_IL0000018502C00008$$
SQL>
--move tablespace:
SQL> alter table SCES1INPUTS
2 move partition SCES1INPUTS_200508 tablespace USERS
3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
Table altered.
SQL>
SQL> SELECT table_name,column_name,segment_name,tablespace_name,index_name
2 from Dba_Lobs WHERE table_name='SCES1INPUTS';
TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME
-------------------- -------------------- ------------------------------ -------------------- ----------------------------------------
SCES1INPUTS LOBS1INPUT LOB1_SCES1INPUTS USERS SYS_IL0000018502C00002$$
SCES1INPUTS LOBS1INPUT_GZ LOB2_SCES1INPUTS USERS SYS_IL0000018502C00008$$
SQL>
这里其实存在一个误区,对于分区表的lob对象,我们不应该去查user_lobs,而是应该去查
user_lob_partitions:
SQL> SELECT column_name,lob_name,partition_name,lob_partition_name,tablespace_name
2 FROM user_lob_partitions WHERE table_name='SCES1INPUTS';
COLUMN_NAME LOB_NAME PARTITION_NAME LOB_PARTITION_NAME TABLESPACE_NAME
-------------------- ------------------------------ ------------------------------ ------------------------------ --------------------
LOBS1INPUT LOB1_SCES1INPUTS SCES1INPUTS_200509 SYS_LOB_P133 USERS
LOBS1INPUT LOB1_SCES1INPUTS SCES1INPUTS_200510 SYS_LOB_P134 USERS
LOBS1INPUT LOB1_SCES1INPUTS SCES1INPUTS_200508 SYS_LOB_P152 TBS_OGG
LOBS1INPUT LOB1_SCES1INPUTS SCES1INPUTS_200511 SYS_LOB_P135 USERS
LOBS1INPUT_GZ LOB2_SCES1INPUTS SCES1INPUTS_200508 SYS_LOB_P154 TBS_OGG
LOBS1INPUT LOB1_SCES1INPUTS SCES1INPUTS_200512 SYS_LOB_P136 USERS
LOBS1INPUT_GZ LOB2_SCES1INPUTS SCES1INPUTS_200509 SYS_LOB_P143 USERS
LOBS1INPUT_GZ LOB2_SCES1INPUTS SCES1INPUTS_200510 SYS_LOB_P144 USERS
LOBS1INPUT_GZ LOB2_SCES1INPUTS SCES1INPUTS_200511 SYS_LOB_P145 USERS
LOBS1INPUT_GZ LOB2_SCES1INPUTS SCES1INPUTS_200512 SYS_LOB_P146 USERS
10 rows selected.
SQL>
我们如果move了其表空间之后,还需要修改一下其默认表空间的属性:
--修改每个分区的表空间:
SQL> alter table SCES1INPUTS
2 move partition SCES1INPUTS_200508 tablespace tbs_ogg
3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
Table altered.
SQL> alter table SCES1INPUTS
2 move partition SCES1INPUTS_200509 tablespace tbs_ogg
3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
Table altered.
SQL> alter table SCES1INPUTS
2 move partition SCES1INPUTS_200510 tablespace tbs_ogg
3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
Table altered.
SQL> alter table SCES1INPUTS
2 move partition SCES1INPUTS_200511 tablespace tbs_ogg
3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
Table altered.
SQL> alter table SCES1INPUTS
2 move partition SCES1INPUTS_200512 tablespace tbs_ogg
3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
Table altered.
--但此时新的分区(如interval的自动生成的新分区)还是会使用原来的表空间。
--需要修改tablespace的attribute:
SQL> alter table SCES1INPUTS modify default attributes tablespace tbs_ogg;
Table altered.
SQL>
SQL> SELECT def_tablespace_name FROM user_part_tables WHERE table_name='SCES1INPUTS';
DEF_TABLESPACE_NAME
------------------------------
TBS_OGG
SQL>
此时,今后生成的新分区才会去新的表空间,而不是老的表空间。
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级