logo
MyWebStudies - Página de inicio
INGRESAR

REGISTRARSE
Buscador

Tipos de bloqueos en Oracle DBA: definición y ejemplos

Selecciona el idioma :

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

Transcripción Tipos de bloqueos en Oracle DBA: definición y ejemplos


Cuando se trabaja con Base de Datos es normal que varios usuarios accedan a la vez a una misma tabla e incluso a un mismo registro. Para evitar errores, Oracle tiene un control de los posibles accesos concurrentes a los datos, realizando bloqueos en las tablas y registros.

Cuando una sesión actualiza una fila, Oracle bloque esta fila. La fila solo es bloqueada para impedir a otra sesión actualizarla, por lo que permite leerla. Estos bloqueos permanecen hasta que la transacción finalice con un COMMIT o un ROLLBACK.

TIPOS DE BLOQUEOS: Bloqueo exclusivo:

  • Este es el nivel estándar de bloqueo y se realiza a nivel de registro.
  • A otras sesiones se les permite la consulta de los datos de los registros bloqueados pero no permite su actualización.
  • Este bloqueo se mantiene hasta que la sesión que provoca el bloqueo realiza un COMMIT (para confirmar los cambios) o ROLLBACK( para deshacer los cambios).

Bloqueo compartido:

  • Este bloqueo se realiza a nivel de tabla, aunque solo acceda a un registro se bloquea toda la tabla.
  • Permite que otras sesiones realicen este mismo bloqueo, pero no permite bloqueos exclusivos.
  • Permite la recuperación de datos, pero no modificarlos.

Bloqueos/abrazos mortales: Algunas veces ocurre que dos sesiones se bloquean mutuamente al intentar acceder a un objeto. Oracle resuelve este problema:

  • Realizando un ROLLBACK sobre una sesión y retornándole el error “ORA00060 Deadlock detected”.
  • A la otra sesión le permite continuar.

Mecanismo de encolado o ENQUEUE: Con este mecanismo Oracle encola las peticiones de bloqueo exclusivo, garantizando el orden de petición del acceso al objeto. Una sentencia SELECT normal siempre tendrá éxito, porque la SELECT no realiza ningún bloqueo, pero una declaración DML colgara.

La sentencia SELECT … FOR UPDATE, esta sentencia no actualiza pero provoca un bloqueo exclusivo sobre las filas para que después se pueda realizar operaciones DML sin problemas de bloqueos, y si en las filas ya existiese un bloqueo, la sentencia quedaria en cola hasta que las filas se desbloqueen y serán bloqueadas por esta sentencia.

Para evitar que la sentencia SELECT … FOR UPDATE se quede en cola, se puede usar 2 cláusulas:

  • SELECT … FOR UPDATE NOWAIT
  • SELECT … FOR UPDATE WAIT

Una vez obtenido el bloqueo sobre las filas deseadas con el comando SELECT … FOR UPDATE, ya se puede ejecutar las sentencias DML sin la posibilidad de que las filas estén bloqueadas por otra sesión.

Todas las declaraciones DML requieren al menos dos bloqueos:

  • Un bloqueo exclusivo en cada fila afectada.
  • Un bloqueo compartido en la tabla que contiene la fila.

El bloqueo exclusivo impide a otra sesión interferir con la fila y el bloqueo c


objetos bloqueos

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cúal es el error?

Publicaciones Recientes de oracle dba

imagen del Post
Curso de Administración de Base de Datos Oracle
  • 198 Videos
  • 23 Hrs de video
  • 190 Test
  • 184 Hrs de estudio
  • 194288
  • 12 €
imagen del Post
Plan Master

Accede a todos los cursos de una misma temática por un único pago

18 €
Introducción a oracle sql y pl/sql
Introducción a oracle sql y pl/sql

Oracle SQL y PL/SQL son tecnologías clave para manejar y procesar grandes v...

Implementación de la seguridad en oracle database
Implementación de la seguridad en oracle database

La implementación de la seguridad en Oracle Database es fundamental para pr...

Optimización del rendimiento en oracle database
Optimización del rendimiento en oracle database

Una de las primeras y más importantes prácticas para optimizar el rendimien...

Uso de oracle enterprise manager para la gestión de bases de datos
Uso de oracle enterprise manager para la gestión de bases de datos

Oracle Enterprise Manager (OEM) es una herramienta integral que permite a l...

Imagen del Post
Explora Temas Interesantes

Desde guías prácticas hasta análisis profundos, nuestro blog está lleno de contenido que te inspirará