Tecnología

Inicio

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

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


Oracle utiliza una función de bloqueo para asegurar que los datos no se actualiza por más de una función a la vez de mantener la integridad de datos. El bloqueo se produce en muchos niveles, incluyendo filas, mesas y espacios de tabla. El bloqueo a nivel de usuario, el "commit" comando hace que los cambios sean permanentes y elimina el bloqueo. El comando "rollback" revierte los cambios antes de liberar el bloqueo. registros de Oracle información en una tabla de sistema llamado "v $ lock" que se puede consultar mediante el lenguaje de consulta estructurado (SQL) de bloqueo.

Instrucciones

1 Revisar la "v $ lock" tabla de Oracle para el bloqueo de la información. Utilice el comando "seleccionar" para ver "SID", "tipo", "lmode" y "solicitud". Sid es sinónimo de número de identificación de la sesión e identifica la sesión que posee el bloqueo.

seleccionar

sid,

tipo,

lmode,

solicitud

de v $ lock;

2 Unir la tabla de Oracle "v $ session" a la mesa "bloqueo v $" para determinar quién está bloqueando la base de datos. Unirse SID (identificador de sesión) para encontrar el nombre de usuario.

seleccionar

s.username,

s.sid,

l.type,

l.lmode,

l.request

de v $ lock l, v $ session s

donde l.sid = s.sid;

3 Consultar la tabla "v $ locked_object" para obtener información adicional acerca de lo que está bloqueado. Combinación con la tabla "dba_objects" para el nombre y tipo. El nombre del objeto indica lo que está bloqueada y las columnas de nombre de usuario identificar quién ha creado la cerradura.

seleccionar

oracle_username

os_user_name,

locked_mode,

nombre del objeto,

tipo de objeto

de

v $ locked_object he aquí que hacen dba_objects

dónde

lo.object_id = do.object_id;

Consejos y advertencias

  • Antes de consultar a las cerraduras, solicitar el acceso del administrador de la base (DBA).
  • Si un bloqueo no se libera en un tiempo aceptable, el DBA puede cancelar la sesión y liberar el recurso. El reciclaje de la base de datos no suele ser necesaria para liberar un bloqueo.
  • En la tabla de "bloqueo $", incluyen valores de tipo "TM" para los bloqueos de tabla, "TX" para bloqueos de transacciones, "MR" de los medios de comunicación cerraduras de recuperación y "ST" para cerraduras de espacio en disco.
  • "LMode" y "solicitud" son significativos 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. Modos de apertura válidos son uno de nulo (o sin bloqueo), dos por la cuota de fila (SS), tres para la fila exclusiva (SX), cuatro para la acción (S), cinco para la fila participación exclusiva (SSX) y seis para exclusivo (X ).
  • Cancelación de una sesión podría causar errores fatales.

Artículos relacionados