logo
MyWebStudies - Página de inicio
INGRESAR

REGISTRARSE
Buscador

Identificar tipos de fallos

Selecciona el idioma :

Este video solo está disponible para los alumnos que han adquirido el curso

Identificar tipos de fallos


El DBA tiene que asegurar que la Base de Datos es 100% segura y que nunca perderá datos, Oracle para lograr este objetivo tiene los mecanismos redo y undo. Los sistemas DATA GUARD y RAC aseguran que pase lo que pase nunca se perderán datos.

Sentencia fallida.

Es cuando una sentencia falla y esto puede ocurrir por varias razones. El primer nivel del arreglo es automático, cuando un procedimiento falla, el servidor PROCESS EXECUTING descubrirá el fallo y echará hacia atrás la declaración.

Cuando una sentencia actualiza muchas filas y antes de terminar se produce un error, las filas que hayan sido actualizadas serán deshechas de forma automática (rollback) utilizando el undo. Pero si las sentencias parten de una multisentencia, todas las que hayan tenido éxito permanecerán intactas, pero no confirmadas (commit).

Generalmente la causa más común de que una sentencia falle es por la introducción de un tipo de dato en un campo que no lo admite o por la violación de un Constraint. Oracle antes de producir el error intentará resolver este tipo de problema convirtiendo el tipo del dato que se desea insertar en el tipo de dato donde se van a insertar, pero esto no siempre es posible y además no es muy eficiente.

Ejemplo: Al intentar insertar un valor 1 de tipo de dato alfanumérico en un campo numérico, esta operación debería dar error, pero Oracle primero convertirá el valor 1 alfanumérico en numérico, evitando así el error.

Las violaciones de Constraint pueden ser descubiertas pero Oracle no las puede solucionar.

Fallo del proceso de usuario.

El proceso PMON está constantemente revisando todos los procesos para averiguar el estado de la sesión. Si un proceso de servidor pierde el contacto con el usuario, PMON realizará:

Un Rollback sobre todas las transacción de esa sesión que no tengan realizado un Commit. Liberará cualquier bloqueo sobre tablas o índices. Y finalmente liberará la memoria PGA asignada a la sesión.

Fallo de red.

Junto con el administrador de red, debería ser posible configurar Oracle Net para que no haya ningún fallo.

Hay que tener en cuenta las posibles causas de error:

  • Listener (oyente): Es poco probable que un listener de error, pero solo puede atender una petición a la vez, y se tarda un tiempo en crear un proceso de servidor y conectarlo a un proceso de usuario. Si la Base de Datos recibe muchas peticiones a la vez, es necesario configurar varios listener en diferentes direcciones o puertos.
  • Tarjeta de red: Idealmente una base de datos debe tener al menos dos tarjetas de red, y crear un listener u oyente para cada tarjeta. Cada tarjeta de red tendrá que ir conectada a una línea diferente, estas direcciones las apuntaremos en ADDRESS_LIST de la entrada TNS_NAME.ORA.

Errores de usuario.

Oracle proporciona varios métodos para que un usuario pueda solucionar algunos errores:

  • Consulta Flashback: Muestra tan solo a la sesión que lo solicita, el estado de la Base de Datos o de un objeto en un tiempo anterior.
  • Ejemplo: La siguiente sentencia recupera los datos que tenia la tabla hace 5 minutos y los inserta: INSERT INTO EMP (SELECT * FROM EMP AS OF TIMESTAMP(SYSDATE – 5/1440)),
  • Flashback drop: Invierte el efecto del comando drop table.
  • Ejemplo: FLASHBACK TABLE EMP TO BEFORE DROP

Log Miner: Es una herramienta avanzada que extrae información del redo y del online. Extrayendo los cambios que se han hecho a los bloques de datos de la tabla, es posible reconstruir los cambios que fueron hechos, redo puede usarse para ver una copia de seguridad.

Recuperación incompleta y flashback la base de datos: Esta es una técnica mucho más drástica para invertir un error de usuario, con las anteriores herramientas, podemos invertir una transacción fallida mientras que todo lo demás permanece sin tocar, si usamos una de estas dos herramientas, perderemos todo el trabajo hecho a partir de la recuperació


tipo fallos

Publicaciones Recientes de oracle dba

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cúal es el error?