ORA-60死锁的实验
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 归档日志过大导致无法存储的解决办法

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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

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.

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

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.

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

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.
