ORA-01555: snapshot too old: rollback segment number 7 with name "_SYSSMU7$" too

Jos?
16 de Julio del 2004
Hola,

Tengo un procedimiento de bbdd q cuando lo lanzo no termina correctamente, me da el error:

ORA-01555: snapshot too old: rollback segment number 7 with name "_SYSSMU7$" too small

Tengo el modo de Gestión de SMU automático por lo que no puedo crear segmentos de rollback. El tablespace asignado al SMU es de 32GB. La vista dba_rollback_segs me devuelve:

SEGMENT OWNER TABLESPACE INITIAL MIN MAX
SYSTEM SYS SYSTEM 114688 1 32765
_SYSSMU1$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU2$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU3$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU4$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU5$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU6$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU7$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU8$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU9$ PUBLIC UNDOTBS1 131072 2 32765
_SYSSMU10$PUBLIC UNDOTBS1 131072 2 32765

Alguna solución??

Gracias y saludos

Manny
16 de Julio del 2004
Hi,

Puedes verificar el valor de gestion de las tablespace UNDO,
"undo_retention",
"undo_management",
"undo_tablespace";

Creo que debes disminuir el valor "retention" que seguramente es alto, el valor viene representado en segundo si no recuerdo, permite mantener el dato por "n" cantidad de dias, para poder usar el FLAHSBACK QUERY "Restore de datos", evidentemente tu procedimiento modifica, cancela, o hace insert de gran cantidad de datos.

Otas solucion seria forzar il "commit" por cada 1000 registros, de esta manera permitira no acumulare en la tablespaces undo los datos, que seguramente usas la release 9i.


bye
suerte.

vmarquez
16 de Julio del 2004
1. posiblemente en tu proceso hagas algun update y el valor de contencion sea muy peque&o, te sugiero que hagas coit periodicamente para que los valores de los tablespaces rbs no queden rebazados
2. posiblemente debas recrear los rbs, podiran estar corrupotos, incrementarlos, recrearlos