Mi lista de blogs

miércoles, 23 de septiembre de 2015

Problemas al compilar, herramientas de compilación, errores y formas de solucionar este problema -

Hace poco, sucedió en una complementación que realizo el área de producción, de hacer un cambio sobre algunas tablas. Estos cambios, realizaban insert y update de registros. Por lo tanto, adoptaron la teoría de que no habría ningún problema, pues en el ambiente de test no lo hubo y todo salio exitosamente. Cuando fueron a realizar la compilación de los objetos, se encontraron con algunos errores en la salida. Estos errores claramente mostraban que algunos insert los había realizado y otros no, lo mismo paso con los updates.

¿Que sucedió y porque?
Aquí es donde intervino mi gestión y se comunicaron conmigo. ¿Que paso? al compilar los objetos encontro lineas donde existian caracteres raros, es por ello que algunos registros ingresaron y otros no.
¿Porque sucede esto? en verdad por que paso en el pasaje a producción y no en testing, es por que en testing lo compilaron con una herramienta que difiere a la que utilizaron para aplicarlo en el ambiente productivo. Esto es SUMAMENTE importante que siempre los archivos sean compilados en la misma herramienta. Yo recomiendo que sea en SQLPLUS,

Los dba estamos acostumbrados a utilizar muchas herramientas, en mi caso uso mucho ademas del sqlplus, el toad y el sqldeveloper. Por eso es importante que al momento de compilar un cambio en producción se hagan con sqlplus.

Por otro lado, es fundamental que antes de hacer un cambio se haga un backup de los objetos, en este caso hacer un EXPORT de las tablas era la solución, pero los chicos de producción no lo hicieron :(

Paso que utilice:

Yo tenia un ambiente para probar, en un unix. Entonces lo que hice fue transferirme el backup full de la noche anterior. Yo en mi caso, hago backups full todas las noches luego de la corrida de los procesos batch. En el día, cada 30 minutos hago archive log.
¿Como lo solucione? restaure el backup full, aplique mis archive log previos a este cambio, y realice un export/import de las tablas afectadas. Esta claro, que me hubiese ahorrado todo esto si tenia un export de las tablas previo al cambio, como lo mencione anteriormente.

Entonces, es importante que antes de cualquier cambio:
1- Se tome BACKUP así sea EXPORT, de tablas, esquemas, store procedures, etc, pero tener un resguardo de los cambios sobre los componentes que se modificaran.
2 - Se utilice la misma herramienta de compilación para todos los ambientes.
3 - En caso de incidentes, con el punto 1, restaurar a tiempo los objetos corruptos.

No hay comentarios:

Publicar un comentario