Como mover un indice de tipo LOB a un tablespace diferente
La sintaxis para mover un índice de un tablespace a otro se realiza de la siguiente manera:
alter index OWNER.INDEX_NAME rebuild tablespace TABLESPACE_DE_DESTINO;
Para calcular cuánto espacio se necesita disponible para mover este segmento de tipo índice, se puede utilizar la siguiente consulta:
select sum(bytes)/1024/1024 "Tamaño_en_MB"
from dba_extents
where segment_name ='INDEX_NAME';
Pero para los índices de tipo LOB que están asociados a una columna de la tabla que fue creada con este segmento es necesario utilizar la siguiente consulta para determinar que índice debemos mover:
select 'alter table '||owner||'.'||table_name||' move '||chr(10)|| 'LOB ('||column_name||') store as '||'(tablespace TABLESPACE_DE_DESTINO);'
from dba_lobs
where owner ='ESQUEMA_A_MOVER';
Output:
alter table OWNER.TABLE_NAME move lob (COLUMNA_DE_TIPO_LOB) store as (tablespace TABLESPACE_DE_DESTINO);
Si no es utilizado este método para mover el índice de tipo lob al nuevo tablespace, Oracle nos entrega el siguiente error:
ORA-02327: cannot create index on expression with datatype LOB
VIVA LINUX!!!!
Alberto Silva Gallardo.
alter index OWNER.INDEX_NAME rebuild tablespace TABLESPACE_DE_DESTINO;
Para calcular cuánto espacio se necesita disponible para mover este segmento de tipo índice, se puede utilizar la siguiente consulta:
select sum(bytes)/1024/1024 "Tamaño_en_MB"
from dba_extents
where segment_name ='INDEX_NAME';
Pero para los índices de tipo LOB que están asociados a una columna de la tabla que fue creada con este segmento es necesario utilizar la siguiente consulta para determinar que índice debemos mover:
select 'alter table '||owner||'.'||table_name||' move '||chr(10)|| 'LOB ('||column_name||') store as '||'(tablespace TABLESPACE_DE_DESTINO);'
from dba_lobs
where owner ='ESQUEMA_A_MOVER';
Output:
alter table OWNER.TABLE_NAME move lob (COLUMNA_DE_TIPO_LOB) store as (tablespace TABLESPACE_DE_DESTINO);
Si no es utilizado este método para mover el índice de tipo lob al nuevo tablespace, Oracle nos entrega el siguiente error:
ORA-02327: cannot create index on expression with datatype LOB
VIVA LINUX!!!!
Alberto Silva Gallardo.
Impecable! Gracias.
ResponderEliminar