Cómo revisar los bloqueos actuales en una base de datos Oracle

Escrito por sara wayne | Traducido por xochitl gutierrez cervantes
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Cómo revisar los bloqueos actuales en una base de datos Oracle
El bloqueo que se gesta con el programa Oracle protege la integridad de los datos. (lock image by Dwight Davis from Fotolia.com)

El programa Oracle utiliza una función de bloqueo para garantizar que más de una función actualice los datos a la vez y, de esta manera, mantener la integridad de la información. El bloqueo ocurre en muchos niveles, incluyendo las filas, tablas y espacios en tablas. El bloqueo a nivel de usuario, el comando "commit" hace que los cambios sean permanentes y elimina el bloqueo. El comando "rollback" revierte los cambios antes de liberar el bloqueo. El programa Oracle registra la información del bloqueo en una tabla del sistema, el cual se denomina "v$lock" y lo podrás consultar usando el Lenguaje de consulta estructurado (SQL).

Nivel de dificultad:
Moderado

Otras personas están leyendo

Instrucciones

  1. 1

    Revisa la tabla Oracle "v$lock" para bloquear la información. Utiliza la opción "Seleccionar" para ver "sid", "type", "lmode" y "request". Sid representa el número ID de sesión e identifica la sesión que posee el bloqueo.

    select sid, type, lmode, request from v$lock;

  2. 2

    Une la tabla Oracle "v$session" a la tabla "v$lock" para determinar quién está bloqueando la base de datos. Une la sesión sid (sesión ID) para encontrar el nombre de usuario.

    select s.username, s.sid, l.type, l.lmode, l.request from v$lock l, v$session s where l.sid = s.sid;

  3. 3

    Consulta la tabla "v$locked_object" para obtener más información sobre lo que la está bloqueando. Une la tabla "dba_objects" para el nombre y el tipo. El nombre del objeto indica que está bloqueado y las columnas del nombre de usuario identifica a quién ha creado el bloqueo.

    select oracle_username os_user_name, locked_mode, object_name, object_type from v$locked_object lo,dba_objects do where lo.object_id = do.object_id;

Consejos y advertencias

  • Antes de consultar los bloqueos, solicita acceso al administrador de la base de datos (DBA).
  • Si el bloqueo no se libera en un tiempo aceptable, el DBA puede cancelar la sesión y liberar el recurso. Reciclar la base de datos no suele ser necesario para liberar un bloqueo.
  • En la tabla "$lock" escribe los valores incluyendo "TM" para los bloqueos de la tabla, "TX" para los de transacción, "MR" para los de recuperación de los medios de comunicación y "ST" para los de espacio en disco.
  • "Lmode" y "request" tienen sentido cuando sus valores se comparan entre sí. Sólo uno puede ser igual a cero o uno a la vez. La columna, que no es cero o uno, indica el modo de bloqueo. Los modos válidos son un bloqueo para null (o sin bloqueo), dos para compartir fila (SS), tres para fila exclusiva (SX), cuatro para compartir (S), cinco para fila de participación exclusiva (SSX) y seis para exclusivo (X ).
  • Cancelar una sesión podría provocar errores fatales.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles