Comment faire pour effacer un verrou record en SQL

Le verrouillage des enregistrements sur une base de données est une procédure normale et nécessaire. Lorsqu'une transaction démarre, le champ est mis à jour est verrouillé de sorte qu'aucun autre utilisateur ne peut mettre à jour le même champ en même temps. Le champ restera bloqué jusqu'à ce que l'utilisateur qui a placé le verrou soit commet ou fait un retour en arrière. Le processus de traitement des dossiers verrouillés est différente dans Oracle, MySQL et SQL Server.

Comment détecter et claire d'un enregistrement Enfermé dans MySQL

MySQL automatiquement gère les blocages et les brise si nécessaire. En tant qu'administrateur de base de données (DBA), vous pouvez définir le innodb_lock_wait_timeout à une valeur inférieure si vous avez besoin pour réduire le temps de verrous de ligne.

Ce paramètre peut être réglé avec en entrant: SET déclaration SESSION:

SET innodb_lock_wait_timeout = 10

Cela peut être fait en MySQL Workbench dans la fenêtre de requête.

Set Timer Verrou
Set Timer Verrou

Cela peut aussi être fait à partir de la ligne de commande.

MySQL Command Line
MySQL Command Line

Comment détecter et claire d'un enregistrement Enfermé dans Oracle




Dans Oracle, pour effacer un verrouillage d'enregistrement, vous devez d'abord trouver l'ID de session, ou SID. Pour trouver le SID, dans Oracle SQL Developer, tapez la commande suivante:

sélectionnez session_id de dba_dml_locks où nom = 'NAME'-

Sélectionnez Session ID
Sélectionnez Session ID

Ensuite, trouver le numéro de série de la session en utilisant la commande suivante:

sélectionnez sid, serial # à partir de v $ session où sid dans (sélectionnez session_id de dba_dml_locks où nom = 'NAME') -

Sélectionnez SID, Serial #
Sélectionnez SID, Serial #

Lorsque vous avez le numéro de série et le SID, avec des privilèges DBA, vous pouvez tuer la session. La commande de la session de mise à mort ne met pas automatiquement la session d'un utilisateur. Il envoie une commande qui demande la session de l'utilisateur de mettre fin à toute sécurité. commandes de coupe de niveau de base de données vont attendre jusqu'à ce qu'une restauration est terminée.

Pointe




  • Pour mettre fin immédiatement une session, un administrateur aurait besoin de tuer une session au niveau du système d'exploitation.

modifier le système kill session "SID, SERIAL # '-

Tuer session
Tuer session

Comment détecter et clair qu'un document verrouillé dans SQL Server

Dans SQL Server Management Studio, trouver le SID de l'utilisateur qui crée le verrou en exécutant la commande suivante:

EXEC sp_who «actif»

SP_WHO
SP_WHO

Après avoir localisé l'ID de session qui est à l'origine du blocage, vous pouvez tuer cette session.

KILL -

» » » » Comment faire pour effacer un verrou record en SQL