ESTOS SON LOS PASOS CONFORME AL LISTADO DE LAS IMAGENES
lunes, 17 de diciembre de 2012
miércoles, 27 de junio de 2012
Moviendo hacia otro tablespace tablas e índices en oracle
fuente http://gonzalo.aro.cl/blog/2010/07/07/moviendo-hacia-otro-tablespace-tablas-e-indices-en-oracle/
Moviendo hacia otro tablespace tablas e índices en oracle
Para mover una tabla y/o indice de un tablespace a otro se debe aplicar un ALTER como los siguientes
ALTER
TABLE
NOMBRE_ESQUEMA.NOMBRE_TABLA
MOVE
TABLESPACE NOMBRE_TABLESPACE;
ALTER
INDEX
NOMBRE_ESQUEMA.NOMBRE_INDICE REBUILD TABLESPACE NOMBRE_TABLESPACE;
Se puede utilizar un script (si tienes privilegios sobre las tablas) para poder armar este movimiento de tablas desde un esquema a otro. La primera selecciona toda la lista de tablas pertenecientes a un esquema y construye el SQL que ya fue mostrado. La seguna construye toda la tabla de indices.
select
'ALTER TABLE NOMBRE_ESQUEMA.'
|| table_name ||
' MOVE TABLESPACE NOMBRE_TABLESPACE;'
from
all_tables
where
owner =
'NOMBRE_ESQUEMA'
select
'ALTER INDEX NOMBRE_ESQUEMA.'
|| index_name ||
' REBUILD TABLESPACE NOMBRE_TABLESPACE;'
from
all_indexes
where
table_owner =
'NOMBRE_ESQUEMA'
Si se requiere modificar un trigger
Primero se dropea el trigger
Drop Trigger OWNER.TRIGGERNAME;
y despues de modificar la secuencia en el trigger se ejecuta el script para crear el trigger:
CREATE OR REPLACE TRIGGER "OWNER"."TRIGGERNAME" BEFORE
INSERT ON "OWNER"."TRIGGERNAME" FOR EACH ROW
DECLARE
BEGIN
IF :NEW.SERIALKEY IS NULL THEN
SELECT OWNER.TRIGGERNAME
INTO :NEW.SerialKey
FROM dual;
END IF;
END;
-----------------------------------------------------------------------
-- idices LOB
-----------------------------------------------------------------------
fuente http://cotosilva.blogspot.mx/2011/09/como-mover-un-indice-de-tipo-lob-un.html
Para los índices de tipo LOB que están asociados a una columna de la tabla, la cual fue creada con este tipo de 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
select 'alter table '||owner||'.'||table_name||' move '||chr(10)|| 'LOB ('||column_name||') store as '||'(tablespace MAP_IDX);'
from dba_lobs
where owner ='MAP';
Suscribirse a:
Entradas (Atom)