Maison base de données tutoriel mysql ORA-60死锁的实验

ORA-60死锁的实验

Jun 07, 2016 pm 05:33 PM
oracle 数据库

ORA-60死锁的实验 创建表: SQLgt; create table tbl_ora_60 (id number(5),name varchar2(5));SQLgt; insert into tbl_ora

ORA-60死锁的实验

 

创建表:

SQL> create table tbl_ora_60 (
id number(5),
name varchar2(5)
);

SQL> insert into tbl_ora_60 values(1, 'a');
1 row created.

SQL> insert into tbl_ora_60 values(2, 'b');
1 row created.

SQL> commit;
Commit complete.

SQL> select * from tbl_ora_60;
ID NAME
---------- -----
1 a
2 b

实验开始
Session1:
SQL> update tbl_ora_60 set where id=1;
1 row updated.

Session2:
SQL> update tbl_ora_60 set where id=2;
1 row updated.

Session1:
SQL> update tbl_ora_60 set where id=2;
hang住

Session2:
SQL> update tbl_ora_60 set where id=1;
hang住

此时,Session1:
SQL> update tbl_ora_60 set where id=2;
update tbl_ora_60 set where id=2
*
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource

说明:
Session1 Session2
获取id=1的资源锁
获取id=2的资源锁
等待id=2的资源锁
等待id=1的资源锁
id=2的SQL报ORA-60,自动rollback

1、因为id=2的资源锁是Session2先获取的,因此Oracle会自动rollback产生死锁时后需要资源锁的SQL,Session1的更新id=2操作被rollback。
2、从中可以发现,真正报ORA-60错误的SQL获取的资源(此例中id=2),并不是触发死锁产生的那个资源(此例中id=1),此例用的是同一个表的不同行,,对不同表的相同行也如此,也可以解释之前夜维出现ORA-60时显示的SQL之间表是不同的原因,因为夜维执行的某个表更新与当前应用执行的某个表更新之间存在互锁的情况,因此可能导致夜维SQL报ORA-60或应用报ORA-60的错误。


此时,Session1:
SQL> select * from tbl_ora_60;
ID NAME
---------- -----
1 c
2 b
说明:此处可以证明产生报错后,Oracle自动执行的rollback操作是基于单条SQL,不是整个事务的,所以这里只有id=2的记录被rollback,id=1的执行仍正常

Session2:
SQL> update tbl_ora_60 set where id=1;
hang住

继续,Session1:
SQL> commit;
Commit complete.

Session2:
SQL> update tbl_ora_60 set where id=1;
1 row updated.

Session1:
SQL> select * from tbl_ora_60;
ID NAME
---------- -----
1 c
2 b
只有id=1更新成功。

Session2:
SQL> select * from tbl_ora_60;
ID NAME
---------- -----
1 f
2 d
id=1和id=2都更新成功,但未COMMIT。

SQL> commit;
Commit complete.

Session1:
SQL> select * from tbl_ora_60;
ID NAME
---------- -----
1 f
2 d
因Session2执行COMMIT,提交更新,此处显示与Session执行相同。

相关阅读:

ORA-01172、ORA-01151错误处理

ORA-00600 [2662]错误解决

ORA-01078 和 LRM-00109 报错解决方法

ORA-00471 处理方法笔记

ORA-00314,redolog 损坏,或丢失处理方法

ORA-00257 归档日志过大导致无法存储的解决办法

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter et remplacer les disques durs dans Oracle Rac Comment ajouter et remplacer les disques durs dans Oracle Rac Apr 11, 2025 pm 05:39 PM

Oracle RAC Hard Disk New and Remplacement Operations: Ajouter un disque dur: ajouter de nouveaux disques, créer des groupes de disques ASM, ajouter aux clusters, déplacer des fichiers de données. Remplacez le disque dur: identifiez le disque dur échoué, fermez le groupe de disque, remplacez le disque dur, rouvrez le groupe de disque, réparez le disque échoué et déplacez les fichiers de données.

Quels types de fichiers sont composés de la base de données d'Oracle? Quels types de fichiers sont composés de la base de données d'Oracle? Apr 11, 2025 pm 04:18 PM

Le système de fichiers de la base de données Oracle se compose de plusieurs fichiers: fichier de données: stockage des données réelles. Fichier de contrôle: enregistrer les informations de la structure de la base de données. Remarquer le fichier journal: enregistrer les opérations de modification de la base de données. Fichier de paramètre: contient des paramètres de paramètres de base de données. Fichier temporaire: stocke les résultats intermédiaires. Comprendre ces types de fichiers et leurs relations est essentiel pour la gestion des bases de données et le réglage des performances. Le nombre de fichiers de planification, la taille et les supports de stockage optimisent les performances et garantissent la disponibilité des données.

Quelles sont la base de données Oracle installée sur le disque C? Quelles sont la base de données Oracle installée sur le disque C? Apr 11, 2025 pm 04:21 PM

La cachette de la base de données Oracle sur le lecteur C: Registre: Utilisez l'éditeur de registre pour rechercher "Oracle" pour trouver des informations, y compris le chemin d'installation, le nom du service, etc. Système de fichiers: les fichiers Oracle sont dispersés dans plusieurs emplacements dans le lecteur C, y compris le répertoire domestique, les fichiers système, les fichiers temporaires, etc. Action minutieuse: lorsque vous désinstallez Oracle, vous devez non seulement supprimer des fichiers, mais aussi nettoyer le registre et les services. Il est recommandé d'utiliser l'outil de désinstallation officiel ou de demander de l'aide professionnelle. Gestion de l'espace: optimiser l'espace disque pour éviter d'installer Oracle sur le lecteur C; Nettoyer régulièrement des fichiers temporaires

Comment gérer le code brouillé d'Oracle Comment gérer le code brouillé d'Oracle Apr 11, 2025 pm 07:00 PM

Les problèmes brouillés d'Oracle sont généralement causés par des paramètres de caractéristiques incorrects. Les solutions incluent: la vérification du serveur, de la base de données et des jeux de caractères clients. Configurez le serveur, la base de données et les jeux de caractères clients selon les besoins. Utilisez la fonction Converti ou la fonction DBMS_LOB.Convert_lob pour fixer les données brouillées. Spécifiez toujours le jeu de caractères et définissez correctement les paramètres NLS.

Comment remettre à nouveau Oracle Comment remettre à nouveau Oracle Apr 11, 2025 pm 07:33 PM

Oracle fournit plusieurs méthodes de requête de déduplication: le mot-clé distinct renvoie une valeur unique pour chaque colonne. Le groupe par clause regroupe les résultats et renvoie une valeur non réactive pour chaque groupe. Le mot-clé unique est utilisé pour créer un index ne contenant que des lignes uniques, et l'interrogation de l'index sera automatiquement déducteur. La fonction ROW_NUMBER () attribue des nombres uniques et filtre les résultats qui contiennent uniquement la ligne 1. La fonction min () ou max () renvoie les valeurs non réactives d'une colonne numérique. L'opérateur intersecte renvoie les valeurs communes des deux ensembles de résultats (pas de doublons).

Résumé de la connaissance de base de la base de données Oracle Résumé de la connaissance de base de la base de données Oracle Apr 11, 2025 pm 06:33 PM

Oracle Database est un système de gestion de base de données relationnel fiable, évolutif et riche en fonctionnalités (RDBM). Son architecture suit le modèle client-serveur, y compris les composants côté serveur (Oracle Net), les instances, les zones de mémoire partagées (SGAS), les processus d'arrière-plan et les fichiers de base de données qui stockent les données. Les concepts de base incluent des tables, des lignes, des colonnes, des clés primaires, des clés étrangères, des index et des curseurs. La base de données est connue pour ses avantages tels que la haute disponibilité, le support des mégadonnées, les fonctionnalités riches, la forte sécurité et la facilité d'utilisation.

Comment modifier le jeu de caractères Oracle Comment modifier le jeu de caractères Oracle Apr 11, 2025 pm 06:57 PM

Pour modifier le jeu de caractères Oracle, vous devez: sauvegarder la base de données; Modifiez les paramètres du jeu de caractères dans le fichier init.ora; redémarrer la base de données; modifier les tables et colonnes existantes pour utiliser le nouveau jeu de caractères; Recharger les données; Modifiez le lien de la base de données (facultatif).

Comment créer des contraintes de clé primaire dans Oracle Comment créer des contraintes de clé primaire dans Oracle Apr 11, 2025 pm 07:15 PM

Une clé primaire est une colonne spéciale ou une combinaison de colonnes qui identifie de manière unique chaque ligne dans une table. Il garantit que les enregistrements dans le tableau sont uniques et peuvent être créés par: spécifiant le nom du tableau à l'aide de l'instruction ALTER TABLE. Ajoutez le mot clé de la clé primaire suivi du nom de la colonne pour spécifier comme clé principale. Les contraintes de clé primaire aident à garantir l'unicité des données, à améliorer les vitesses de requête, à prévenir les enregistrements en double et à simplifier les jointures de table.

See all articles