«Logging Online Archive Off»

Puede que te haya pasado. Miras la tabla de eventos de backup (Dbc.RCEvent) o una de sus vistas (Dbc.EventsV…) y te encuentras un montón de filas con EventType «Logging Online Archive Off». Y no sabes por qué están ahí y por qué hay tantas.

Dbc.EventsV

Pero vamos por partes: ¿Qué es eso del «Online Archive»? Pues ni más ni menos que un mecanismo para poder hacer un backup («dump» en términos de arcmain) de tablas que estén siendo actualizadas (INSERT, UPDATE o DELETE). Dicho mecanismo es simple: cuando se inicia el «Logging Online Archive» para una tabla (también se pueden ejecutar para bases de datos) se crea una subtabla de log donde se guardan las filas tal y como estaban en el momento de activar el «logging» («before image rows») y también las modificaciones a la tabla en forma de «redo records». Así se archivará una imagen estable de la tabla más los «redo records». En caso de recuperar la tabla desde el backup, se recuperará la imagen estable de la tabla y se aplicarán los «redo records» correspondientes a las actualizaciones que ocurrieron durante el backup («roll forward»).

La activación del «Logging Online Archive» se hace mediante el comando LOGGING ONLINE ARCHIVE ON y se detiene mediante LOGGING ONLINE ARCHIVE OFF, que además borra las subtablas de log existentes.

Y pensarás: ‘todo esto es muy interesante, pero yo no he activado el «Logging Online Archive» y, por supuesto, tampoco lo he desactivado’. Cierto. Entonces ¿de dónde salen los eventos de RCEvent?

Pues los eventos vienen, ni más ni menos, de los comandos DROP TABLE que se hayan ejecutado. Cuando se envía un comando DROP TABLE Teradata ejecuta un «Logging Online Archive Off» para asegurarse de que si existen subtablas de log sean borradas junto con la tabla principal. Además, «Logging Online Archive Off» no devuelve ningún error si se ejecuta sin que se hubiera ejecutado antes un «Logging Online Archive On», por lo que es una ejecución ‘por si acaso’.

También aparecerán este tipo de eventos provocados por las ejecuciones de utilidades (fastload, multiload…), ya que cuando éstas terminan (sin error) se efectúan DROPs de las tablas de error, trabajo y log.

Saludos.

Carlos.

Deja un comentario