-
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.