j'ai compris

Bonjour, Communauté! Bonne journée! Le local technique est soudainement mis hors tension, mais Oracle ne peut pas être démarré après le démarra

publié il y a  2020-8-27 16:41:07Dernière réponse ag. 27, 2020 16:41:44 128 1 0 0 0
  Récompense F-coins.: 0 (Résolu)

Bonjour, Communauté!


Bonne journée!

La salle d'équipement est soudainement mise hors tension, mais Oracle ne peut pas être démarré après le démarrage du système

L'erreur suivante est signalée au démarrage:

ORA-01102 ne peut pas monter la base de données en mode EXCLUSIF


  • x
  • Standard:

Réponses en vedette

Meilleure réponse

Med_Taher
publié il y a 2020-8-27 16:41:44

 Bonjour mon cher


Partager un cas avec vous
L'erreur 1102 peut avoir les possibilités suivantes:
1. Dans le système haute disponibilité, d'autres nœuds ont démarré des instances, occupant des ressources partagées par les deux machines (telles que des périphériques bruts sur la matrice de disques);
2. Expliquez que lorsque Oracle a été arrêté de manière anormale, certaines ressources n'ont pas été libérées, il existe généralement les possibilités suivantes:
1. Le segment de mémoire partagée ou le sémaphore d'Oracle n'a pas été libéré;
2. Les processus d'arrière-plan Oracle (tels que SMON, PMON, DBWn, etc.) ne sont pas fermés;
3. Les fichiers lk <sid> et sgadef <sid> .dbf utilisés pour verrouiller la mémoire n'ont pas été supprimés.
Tout d'abord, bien que notre système soit un système HA, l'instance du nœud de secours est toujours dans un état fermé, ce qui peut être confirmé en vérifiant l'état de la base de données sur le nœud de secours.
Deuxièmement, la base de données était en panne en raison d'une panne de courant du système. Le système a été redémarré après la mise sous tension, nous avons donc exclu le deuxième point possible 1, 2 points. Le plus suspect est le point 3.
Vérifiez le répertoire $ ORACLE_HOME / dbs:
$ cd $ ORACLE_HOME / dbs
$ ls sgadef *
sgadef * not found
$ ls lk *
lkORA92
Effectivement, le fichier lk <sid> n'a pas été supprimé. Supprimez-le
$ rm lk *
Redémarrez la base de données et réussissez.
Si vous pensez que la mémoire partagée n'a pas été libérée, vous pouvez utiliser la commande suivante pour afficher:
$ ipcs -mop État
IPC de / dev / kmem au jeu 6 juillet 14:41:43 2006
T ID KEY MODE OWNER GROUP NATTCH CPID LPID
Mémoire partagée:
m 0 0x411c29d6 --rw-rw-rw- root root 0899899
m 1 0x4e0c0002 --rw-rw-rw- racine racine 2899901
m 2 0x4120007a --rw-rw-rw- racine racine
2899901 m 458755 0x0c6629c9 --rw-r ----- racine sys 2 9113 17065
m 4 0x06347849 --rw-rw-rw- racine racine 1 1661 9150
m 65541 0xffffffff --rw-r - r-- racine racine 0 1659 1659
m 524294 0x5e100011 --rw ------- racine racine 1 1811 1811
m 851975 0x5fe48aa4 --rw-r ----- oracle oinstall 66 2017 25076
Ensuite, son numéro d'identification efface le segment de mémoire partagée:
$ ipcrm –m 851975
Pour les sémaphores, vous pouvez utiliser la commande suivante pour afficher:
$ ipcs -sop
IPC état de / dev / kmem au jeu.6 juillet 14:44:16 2006
T ID KEY MODE OWNER GROUP
Sémaphores:
s 0 0x4f1c0139 --ra ------- root root
... ...
s 14 0x6c200ad8 - -ra-ra-ra- racine racine
s 15 0x6d200ad8 --ra-ra-ra- racine racine
s 16 0x6f200ad8 --ra-ra-racine racine
s 17 0xffffffff --ra-r - r-- racine racine
s 18 0x410c05c7 --ra-ra-ra- racine racine
s 19 0x00446f6e --ra-r - r-- racine racine
s 20 0x00446f6d --ra-r - r-- racine racine
s 21 0x00000001 --ra-ra-ra- racine racine
s 45078 0x67e72b58 --ra- r ----- oracle oinstall
Selon l'ID du sémaphore, utilisez la commande suivante pour effacer le sémaphore:
$ ipcrm -s 45078
Si le processus Oracle n'est pas fermé, utilisez la commande suivante pour trouver le processus Oracle existant:
$ ps -ef | grep ora
  oracle 29976 1 0 22 juin? 0:52 ora_dbw0_ora92
  oracle 29978 1 0 22 juin? 0:51 ora_dbw1_ora92
  oracle 5128 1 0 5 juil.? 0:00 oracleora92 (LOCAL = NO)
...
Ensuite, utilisez la commande kill -9 pour tuer le processus
$ kill -9 <PID>
Lorsqu'une erreur 1102 se produit, vous pouvez vérifier et dépanner selon le processus suivant:
S'il s'agit d'un système HA, vérifiez si d'autres nœuds ont démarré des instances;
Vérifiez si le processus Oracle existe, s'il existe, arrêtez le processus;
Vérifiez si le sémaphore existe, s'il existe, effacez le sémaphore;
Vérifiez si le segment de mémoire partagée existe, s'il existe, effacez le segment de mémoire partagée;
Vérifiez si les fichiers de mémoire de verrouillage lk <sid> et sgadef <sid> .dbf existent, et si c'est le cas, supprimez-les.

View more
  • x
  • Standard:

Toutes les réponses
Med_Taher
Med_Taher publié il y a 2020-8-27 16:41:44

 Bonjour mon cher


Partager un cas avec vous
L'erreur 1102 peut avoir les possibilités suivantes:
1. Dans le système haute disponibilité, d'autres nœuds ont démarré des instances, occupant des ressources partagées par les deux machines (telles que des périphériques bruts sur la matrice de disques);
2. Expliquez que lorsque Oracle a été arrêté de manière anormale, certaines ressources n'ont pas été libérées, il existe généralement les possibilités suivantes:
1. Le segment de mémoire partagée ou le sémaphore d'Oracle n'a pas été libéré;
2. Les processus d'arrière-plan Oracle (tels que SMON, PMON, DBWn, etc.) ne sont pas fermés;
3. Les fichiers lk <sid> et sgadef <sid> .dbf utilisés pour verrouiller la mémoire n'ont pas été supprimés.
Tout d'abord, bien que notre système soit un système HA, l'instance du nœud de secours est toujours dans un état fermé, ce qui peut être confirmé en vérifiant l'état de la base de données sur le nœud de secours.
Deuxièmement, la base de données était en panne en raison d'une panne de courant du système. Le système a été redémarré après la mise sous tension, nous avons donc exclu le deuxième point possible 1, 2 points. Le plus suspect est le point 3.
Vérifiez le répertoire $ ORACLE_HOME / dbs:
$ cd $ ORACLE_HOME / dbs
$ ls sgadef *
sgadef * not found
$ ls lk *
lkORA92
Effectivement, le fichier lk <sid> n'a pas été supprimé. Supprimez-le
$ rm lk *
Redémarrez la base de données et réussissez.
Si vous pensez que la mémoire partagée n'a pas été libérée, vous pouvez utiliser la commande suivante pour afficher:
$ ipcs -mop État
IPC de / dev / kmem au jeu 6 juillet 14:41:43 2006
T ID KEY MODE OWNER GROUP NATTCH CPID LPID
Mémoire partagée:
m 0 0x411c29d6 --rw-rw-rw- root root 0899899
m 1 0x4e0c0002 --rw-rw-rw- racine racine 2899901
m 2 0x4120007a --rw-rw-rw- racine racine
2899901 m 458755 0x0c6629c9 --rw-r ----- racine sys 2 9113 17065
m 4 0x06347849 --rw-rw-rw- racine racine 1 1661 9150
m 65541 0xffffffff --rw-r - r-- racine racine 0 1659 1659
m 524294 0x5e100011 --rw ------- racine racine 1 1811 1811
m 851975 0x5fe48aa4 --rw-r ----- oracle oinstall 66 2017 25076
Ensuite, son numéro d'identification efface le segment de mémoire partagée:
$ ipcrm –m 851975
Pour les sémaphores, vous pouvez utiliser la commande suivante pour afficher:
$ ipcs -sop
IPC état de / dev / kmem au jeu.6 juillet 14:44:16 2006
T ID KEY MODE OWNER GROUP
Sémaphores:
s 0 0x4f1c0139 --ra ------- root root
... ...
s 14 0x6c200ad8 - -ra-ra-ra- racine racine
s 15 0x6d200ad8 --ra-ra-ra- racine racine
s 16 0x6f200ad8 --ra-ra-racine racine
s 17 0xffffffff --ra-r - r-- racine racine
s 18 0x410c05c7 --ra-ra-ra- racine racine
s 19 0x00446f6e --ra-r - r-- racine racine
s 20 0x00446f6d --ra-r - r-- racine racine
s 21 0x00000001 --ra-ra-ra- racine racine
s 45078 0x67e72b58 --ra- r ----- oracle oinstall
Selon l'ID du sémaphore, utilisez la commande suivante pour effacer le sémaphore:
$ ipcrm -s 45078
Si le processus Oracle n'est pas fermé, utilisez la commande suivante pour trouver le processus Oracle existant:
$ ps -ef | grep ora
  oracle 29976 1 0 22 juin? 0:52 ora_dbw0_ora92
  oracle 29978 1 0 22 juin? 0:51 ora_dbw1_ora92
  oracle 5128 1 0 5 juil.? 0:00 oracleora92 (LOCAL = NO)
...
Ensuite, utilisez la commande kill -9 pour tuer le processus
$ kill -9 <PID>
Lorsqu'une erreur 1102 se produit, vous pouvez vérifier et dépanner selon le processus suivant:
S'il s'agit d'un système HA, vérifiez si d'autres nœuds ont démarré des instances;
Vérifiez si le processus Oracle existe, s'il existe, arrêtez le processus;
Vérifiez si le sémaphore existe, s'il existe, effacez le sémaphore;
Vérifiez si le segment de mémoire partagée existe, s'il existe, effacez le segment de mémoire partagée;
Vérifiez si les fichiers de mémoire de verrouillage lk <sid> et sgadef <sid> .dbf existent, et si c'est le cas, supprimez-les.

View more
  • x
  • Standard:

Commentaire

Connectez-vous pour répondre. Se connecter | Enregistrer
envoyer

Remarque : Afin de protéger vos droits et intérêts légitimes, ceux de la communauté et des tiers, ne divulguez aucun contenu qui pourrait présenter des risques juridiques pour toutes les parties. Le contenu interdit comprend, sans toutefois s'y limiter, le contenu politiquement sensible, le contenu lié à la pornographie, aux jeux d'argent, à l'abus et au trafic de drogues, le contenu qui peut divulguer ou enfreindre la propriété intellectuelle d'autrui, y compris les secrets professionnels, les marques commerciales, les droits d'auteur et les brevets, ainsi que la vie privée personnelle. Ne partagez pas votre nom d'utilisateur ou votre mot de passe avec d'autres personnes. Toutes les opérations effectuées à partir de votre compte seront considérées comme vos propres actions, et toutes les conséquences en découlant vous seront imputées. Pour plus de détails, voir « Politique de confidentialité ».

My Followers

Connectez-vous pour participer à la communication et au partage

S'identifier

Bloquer
Êtes-vous sûr de bloquer cet utilisateur?
Les utilisateurs de votre liste noire ne peuvent ni commenter votre publication,ni vous mentionner, ni vous envoyer de messages privés.
Rappel
Veuillez lier votre numéro de téléphone pour obtenir un bonus d'invitation.