2017-02-16 1 views
0

enter image description hereORA-01034: ORACLE non disponible ORA-27101: royaume de mémoire partagée n'existe pas 10g XE ORACLE

ne sais pas ce qui a mal tourné. Cela a fonctionné parfaitement la première fois jusqu'à ce que j'ai redémarré ma machine.

+0

La base de données est configurée pour démarrer automatiquement; ou l'avez-vous démarré manuellement après votre redémarrage? Ou essayez-vous de vous connecter en tant que sys pour le démarrer - auquel cas vous avez oublié la partie 'as sysdba'? –

+0

Aussi, [n'utilisez pas les images lorsque vous pouvez copier et coller du texte] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code -on-alors-quand-pose-une-question/285557 # 285557). –

+0

@AlexPoole - cela se produit généralement lorsque les gens viennent d'installer Oracle sur Ubuntu (et peut-être d'autres versions de Linux non supportées). La base de données est démarrée à la fin du processus d'installation, et on peut y travailler - jusqu'à ce qu'ils redémarrent le système d'exploitation, à quel point la base de données ne redémarre pas automatiquement. Pour être tout à fait honnête, j'ai oublié de faire ce que j'ai mis dans ma réponse ci-dessous quand j'ai installé Oracle sur Ubuntu (heureusement je me suis souvenu qu'il y avait un pas que j'avais omis ...). – mathguy

Répondre

0

Définir les variables d'environnement ORACLE_HOME et ORACLE_SID.

ORACLE_HOME=\<your path>\oracle\product\10.2.0\server 
ORACLE_SID=xe 

De manière évidente, vous devez configurer la base de données pour qu'elle démarre automatiquement.

Pour ce faire, vous devez définir l'indicateur Y vous êtes exemple dans /etc/oratab et créer appropriés /etc/init.d/dbora

+0

Si 'ORACLE_HOME' n'était pas défini ou était faux alors SQL \ * Plus ne démarrerait pas et dirait quelque chose comme 'Fichier de message sp1 .msb non trouvé'. Si 'ORACLE_SID' n'a pas été défini, vous obtiendrez une erreur TNS. Vous pourriez obtenir l'erreur de l'OP si le SID était faux, cependant. Je pense qu'il est plus probable que la base de données ne fonctionne pas après le redémarrage. –

+0

Si cela était la raison, l'OP ne pourrait pas démarrer les sessions, les terminer et en commencer de nouvelles. Comme il l'a déclaré, ce problème est survenu après le redémarrage de l'ordinateur. Presque sûrement en raison de la base de données ne démarre pas automatiquement au redémarrage. – mathguy

0

Il semble que votre base de données ne démarre pas automatiquement après votre machine redémarrée, et vous essayez de vous connecter comme SYS pour le démarrer. Vous essayez actuellement de vous connecter sans spécifier le rôle SYSDBA.

$ sqlplus /nolog 

SQL*Plus: Release 11.2.0.2.0 Production on Thu Feb 16 16:04:26 2017 

Copyright (c) 1982, 2010, Oracle. All rights reserved. 

SQL> connect sys/12345 
ERROR: 
ORA-01034: ORACLE not available 
ORA-27101: shared memory realm does not exist 
SVR4 Error: 2: No such file or directory 
Process ID: 0 
Session ID: 0 Serial number: 0 

Avec le rôle spécifié, il se connecte à l'instance veille:

SQL> connect sys/12345 as sysdba 
Connected to an idle instance. 
SQL> 

Vous pouvez alors lancer la commande startup.

Vous pouvez également connecter directement à partir de la ligne de commande:

$ sqlplus/as sysdba 

SQL*Plus: Release 11.2.0.2.0 Production on Thu Feb 16 16:07:47 2017 

Copyright (c) 1982, 2010, Oracle. All rights reserved. 

Connected to an idle instance. 

SQL> 

Le mot de passe d'alimentation pour SYS peut être quelque chose, car il repose sur l'authentification OS de toute façon. Vous devez fournir le rôle si. Et être connecté au système d'exploitation en tant qu'utilisateur dans le bon groupe, bien sûr, et correctement défini, etc ..

1

En plus de l'explication d'Alex, en particulier le bit sur la base de données ne redémarre pas automatiquement lorsque vous redémarré votre ordinateur:

Accédez à /etc/oratab et modifiez-le en tant que root.

Trouver la ligne

orcl:/u01/app/oracle/product/12.1.0/db_1:N 

Modifier le N à la fin de Y.

La base de données démarrera dès que vous redémarrerez votre ordinateur. Vous n'aurez donc plus de problème.

+0

Est-ce que 'rc.oracle' ou' init.d/oracle' (ou quel que soit l'équivalent d'Ubuntu) est créé automatiquement pour exécuter 'dbstart', même si le drapeau de démarrage dans' oratab' est réglé sur Y? Si ce n'est pas le cas, le PO devrait également faire cela. (Et puis redémarrer à nouveau, s'ils ne veulent pas démarrer manuellement la DB cette fois!) –

+1

@AlexPoole - cela dépend à 100% du «guide» ou des «instructions» que l'OP a suivi pour installer Oracle sur Ubuntu. Quand j'ai installé 12.1 sur Ubuntu 16.04 (juste pour apprendre comment le faire - je cours 12.1 sur mon ordinateur portable Windows la plupart du temps) j'ai suivi d'excellentes instructions disponibles à https://www.dizwell.com/wordpress/technical-articles/ oracle/install-oracle-12c-on-ubuntu-16-04/- le gars avait un script qui créait presque tout ce qui était nécessaire, mais il nécessite encore de définir le drapeau de redémarrage manuellement. – mathguy

+0

Donc, c'est toujours quelque chose dont l'OP * pourrait avoir besoin pour revenir en arrière, mais juste assez, il suffit de régler le drapeau. –

0

Comme "chkconfig" ne fonctionne pas maintenant. J'ai essayé d'utiliser sysv-rc-conf, mais la commande introuvable: puis, j'ai essayé apt-get install sysv-rc-conf mais montre alors E: Impossible de trouver le paquet sysv-rc-conf

{ J'essayais de config: "/etc/init.d/dbora" fichier pour laisser ma base de données pour autostart. }

+0

http://www.uni.edu/~prefect/devel/chkconfig/index.shtml Got ce paquet chkconfig à partir du lien ci-dessus. extraire le fichier et le coller dans/etc/bin modifier une partie de l'autorisation (décrit dans la section README) –

0

Cet ensemble d'erreurs peut se produire lorsque vous n'avez pas correctement défini les variables ORACLE_SID et ORACLE_HOME.

Remarque, la variable ORACLE_HOME est censé ne pas se terminer par une barre oblique omble chevalier. Ainsi, même s'il semble que tout est bien configuré, la barre oblique finale dans la valeur ORACLE_HOME entraînera également le problème:

# wrong: 
export ORACLE_HOME=/usr/local/oracle/11gR2/ 

# correct: 
export ORACLE_HOME=/usr/local/oracle/11gR2