Die obige Fehlermeldung wird angezeigt, wenn Sie versuchen, von einem Client aus mit dem Dienstnamen orcl
eine Verbindung zu einer Serverdatenbank herzustellen. Es wird verbunden, wenn ich den anderen Dienstnamen verwende, d. H. dms
Unten ist mein listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = dms)
(SERVICE_NAME = dms)
(Oracle_HOME = /home/Oracle/app/Oracle/product/11.2.0/dbhome_1)
# (PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(SERVICE_NAME = dms)
# (GLOBAL_DBANME = orcl)
(Oracle_HOME = /home/Oracle/app/Oracle/product/11.2.0/dbhome_1)
# (PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(Host = 192.168.1.53)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /home/Oracle/app/Oracle
and tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = 192.168.1.53)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
#(SERVICE_NAME = orcl.localdomain)
(Oracle_SID = dms)
(SERVICE_NAME = orcl)
)
)
DMS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = 192.168.1.53)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dms)
(Oracle_SID = dms)
)
)
Bitte sag mir was zu tun ist?
Öffnen Sie die Eingabeaufforderung und führen Sie die folgenden Befehle aus:
set Oracle_sid=DATABASE NAME
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup
Irgendwann. Die Datenbank wird nicht korrekt gemountet, daher müssen Sie sie manuell einbinden ... Dazu müssen Sie sie herunterfahren und starten und dann einbinden
melden Sie sich dann als Oracle-Benutzer an
'sqlplus / as sysdba;'
'shutdown immediate;'
'startup nomount;'
'alter database mount;'
'alter database open;'
Stellen Sie sicher, dass Ihr Oracle_HOME und Ihre Oracle_SID korrekt sind. Um die aktuellen Werte in Windows anzuzeigen, geben Sie den Befehl Eingabeaufforderung ein
echo %Oracle_HOME%
Dann
echo %Oracle_SID%
Wenn die Werte nicht Ihre aktuelle Oracle-Heimat- und SID sind, müssen Sie sie korrigieren. Dies kann in Windows-Umgebungsvariablen erfolgen.
Check out diese Seite für weitere Informationen
SQL> sqlplus "/ as sysdba"
SQL>startup
Oracle instance started
------
Database mounted.
Database opened.
Quit
[[email protected] ~]$ lsnrctl start
Beim Herstellen der Verbindung in SQLDeveloper war ich mit demselben Problem konfrontiert. "ORA-01034: Oracle nicht verfügbar. ORA-27101: Shared Memory-Bereich ist nicht vorhanden."
Lösung:
1. Aktualisieren Sie die Datei listene.ora, um die SID einzuschließen.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc) (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = CLRExtProc) (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server) (PROGRAM = extproc) ) (SID_DESC = ((GLOBAL_DBNAME = XE.DB) ((Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server) ((SID_NAME = XE) ) )
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADRESSE = (PROTOKOLL = IPC) (KEY = EXTPROC1)) (ADDRESS = (PROTOKOLL = TCP) (Host = USMUMTBALAKDAS2.us.deloitte.com) (PORT = 1521)) ) )
DEFAULT_SERVICE_LISTENER = (XE)
Für das Oraclexe-Verzeichnis ist möglicherweise die Berechtigung " ReadOnly " festgelegt. Ändern Sie die Berechtigung Verzeichnis/Unterverzeichnis zum Lesen/Schreiben, und starten Sie die Listener-Dienste erneut Das Problem ist gelöst.
Viel Spaß beim Codieren! Prost!!
Hatte das gleiche Problem unter Windows XP. Behoben . Der Fehler wurde verursacht, weil das Systemprotokoll voll war. Systemsteuerung -> Verwaltung -> Ereignisanzeige Klicken Sie mit der rechten Maustaste auf das Anwendungsprotokoll, löschen Sie alle Ereignisse, und speichern Sie das Protokoll optional Gleicher Vorgang für das Systemprotokoll .
Ich habe das gleiche shared memory realm does not exist
-Symptom (unter Windows) getroffen, jedoch aus einem anderen Grund. Ich hatte gerade Oracle (XE) installiert und nach einiger Fehlerbehebung festgestellt, dass meine Installation aufgrund des Vorhandenseins einer Oracle_HOME-Umgebungseigenschaft zum Zeitpunkt der Installation beschädigt war.
Wenn dies TLDR ist, fahren Sie mit "So lösen" fort!
Mein erstes Symptom war:
Message 850 not found; No message file for product=NETWORK, facility=NL
Anscheinend liest die Windows-Installation Oracle_HOME aus der Registry und benötigt (und sollte in meinem Fall sicherlich nicht ...) eine Umgebungseigenschaft haben.
Entfernen Sie es wie folgt:
Nach dem Neustart konnte ich dann andere Fehlermeldungen als "Keine Nachrichtendatei ..." erhalten und konnte nachsehen, was das Problem war . Das Setzen der Oracle_SID auf XE und das Verbinden von @XE brachte mich zu den Fehlern Auf dieser Seite nämlich die folgenden Symptome:
ORA-01034: Oracle not available
ORA-27101: shared memory realm does not exist
Ein anderes Symptom war: Beim Starten der Seite 'Erste Schritte' konnte keine Verbindung hergestellt werden, und es wurde ein Fehler gefunden (wenn ich mich recht erinnere), obwohl der Windows-Listener und die XE-Dienste gestartet wurden. Wie bereits in einer anderen Antwort erwähnt, kann dies daran liegen, dass die Windows-Dienste nicht gestartet wurden. In meinem Fall wurden diese Dienste gestartet, sodass etwas anderes falsch konfiguriert wurde.
Zu diesem Zeitpunkt kam ich zu dem Schluss, dass meine Installation aufgrund der schlechten Umgebungseigenschaft Oracle_HOME so falsch lief, dass ich sie neu installieren sollte. (Vorherige Neuinstallationen hatten nicht geholfen, aber das war alles, bevor ich die Oracle_HOME-Systemumgebungs-Eigenschaft bemerkte (wahrscheinlich vor einem Jahr von mir eingerichtet!).
Also zu lösen:
ORA-01034 und ORA-27101 zeigen normalerweise an, dass die Datenbankinstanz, mit der Sie eine Verbindung herstellen möchten, heruntergefahren ist und dass Sie nicht als Benutzer verbunden sind, der über die Berechtigung zum Starten verfügt. Melden Sie sich am Server 192.168.1.53 an und starten Sie die orcl
-Instanz, oder bitten Sie Ihren DBA, dies für Sie zu tun.
Der gleiche Fehler ist mir aufgefallen, obwohl Oracle_HOME und Oracle_SID korrekt eingerichtet waren.
Das Problem war in Oracle_HOME, das nicht mit einem Schrägstrich endet. Als ich den End-Schrägstrich entfernte, funktionierte er einwandfrei.
## WRONG !!!
export Oracle_HOME=/usr/local/Oracle/11gR2/
## CORRECT
export Oracle_HOME=/usr/local/Oracle/11gR2
Auch wenn es so aussieht, als sei alles perfekt konfiguriert, überprüfen Sie Ihre Variablen darauf.
In cmd ausführen:
sqlplus / as sysdba;
Dann:
SQL> create pfile='c:/init.ora' from spfile;
Entfernen Sie die sga_target
-Zeile in der init.ora
-Datei und dann:
SQL> create spfile from pfile='c:/init.ora';
SQL> startup;
Ihre listener.ora ist falsch konfiguriert. Es gibt keinen ORCL-Service.
Ich hoffe, Sie haben Ihr Problem gelöst. Wenn das Problem weiterhin besteht, überprüfen Sie erneut, ob Sie dieses Oracle unter einem Domänenkonto installieren. Ich habe einen Thread gefunden, der besagt, dass Oracle XE bei der Installation unter Domänenkonto denselben Fehler gibt. Bitte verwenden Sie stattdessen ein lokales Konto.
Quelle:
https://community.Oracle.com/thread/2141735?start=0&tstart=0