サービス名orcl
を使用してクライアントからサーバーデータベースに接続しようとすると、上記のエラーが発生します。他のサービス名、つまりdms
を使用しているときに接続されます
以下は私の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)
)
)
何をすべきか教えてください?
コマンドプロンプトを開き、以下のコマンドを実行します。
set Oracle_sid=DATABASE NAME
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup
しばらく。データベースは正しくマウントされないので、手動でマウントする必要があります...そのためにシャットダウンして起動し、マウントします...以下のコマンドを実行します
oracleユーザーとしてログインしてから
sqlplus / as sysdba;
shutdown immediate;
startup nomount;
alter database mount;
alter database open;
Oracle_HOMEとOracle_SIDが正しいことを確認してくださいウィンドウの現在の値を表示するには、コマンドプロンプトで
echo %Oracle_HOME%
それから
echo %Oracle_SID%
値が現在のOracleホームおよびSIDではない場合は、修正する必要があります。これは、Windows環境変数で実行できます。
詳細はこのページ をご覧ください
SQL> sqlplus "/ as sysdba"
SQL> startup
Oracle instance started
------
Database mounted.
Database opened.
SQL> Quit
[Oracle@hcis ~]$ lsnrctl start
Cmdで実行:
sqlplus / as sysdba;
次に:
SQL> create pfile='c:/init.ora' from spfile;
sga_target
ファイルのinit.ora
行を削除してから、次の操作を行います。
SQL> create spfile from pfile='c:/init.ora';
SQL> startup;
SQLDeveloperで接続を作成しているときに同じ問題に直面しました。「ORA-01034:Oracleは使用できませんORA-27101:共有メモリレルムは存在しません」
解決:
1. listene.oraファイルを更新して、SIDを含めます。
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 =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(Host = USMUMTBALAKDAS2.us.deloitte.com)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
Oraclexeディレクトリには、アクセス権が「 ReadOnly 」に設定されている場合があります。ディレクトリ/サブディレクトリのアクセス権を変更して、読み取り/書き込みおよびリスナーサービスを再起動します。問題は解決しました。
Windows XPでも同じ問題がありました。解決しました。このエラーは、システムログがいっぱいであるために発生しました。コントロールパネル->管理ツール->イベントビューアーアプリケーションログを右クリックし、すべてのイベントをクリアし、オプションでログを保存します。システムログについても同じプロセス。再起動すると動作するはずです。
ORA-01034およびORA-27101は通常、接続しようとしているデータベースインスタンスがシャットダウンされ、起動する権限を持つユーザーとして接続されていないことを示します。サーバー192.168.1.53にログオンしてorcl
インスタンスを起動するか、DBAに依頼してください。
Oracle_HOME
とOracle_SID
が正しく設定されているように見えても、この同じエラーが発生しました。
問題はOracle_HOME
にあり、スラッシュ文字で終わるとは想定されていません。最後のスラッシュを削除すると、正しく機能し始めました。
# ❌ INCORRECT
export Oracle_HOME=/usr/local/Oracle/11gR2/
# ✔️ CORRECT
export Oracle_HOME=/usr/local/Oracle/11gR2
そのため、すべてが適切に構成されているように見える場合でも、変数を確認してください。
同じshared memory realm does not exist
症状(Windows上)に遭遇しましたが、理由は異なります。 Oracle(XE)をインストールしたばかりで、トラブルシューティングを行った後、インストール時にOracle_HOME環境プロパティが存在するためにインストールが破損していることを確認しました。
これがTLDRの場合は、「解決する:」にスキップしてください!
私の最初の症状は:
Message 850 not found; No message file for product=NETWORK, facility=NL
どうやら、WindowsのインストールはレジストリからOracle_HOMEを読み取り、環境プロパティを必要としません(もちろん、私の場合はそうすべきではありません)。
次のように削除します。
再起動後、「No message file ...」以外のエラーメッセージを取得でき、問題の内容を確認できました。 Oracle_SIDをXEに設定し、@ XEに接続すると、このページのエラー、つまり次の症状が表示されます。
ORA-01034: Oracle not available
ORA-27101: shared memory realm does not exist
もう1つの症状は、「Get started」ページを起動したときに接続に失敗し、WindowsリスナーとXEサービスが開始されているにもかかわらず、見つからないというエラー(正しく思い出せば)が発生することでした。別の回答で述べたように、これはWindowsサービスが開始されていないことが原因である可能性があります。私の場合、これらのサービスが開始されたため、他の何かが誤って設定されていました。
この時点で、再インストールする必要がある悪いOracle_HOME環境プロパティが存在するために、インストールがひどく間違って行ったのではないかと考えました。 (以前の再インストールは役に立たなかったが、それらはすべて、おそらく1年前に私がOracle_HOMEシステム環境プロパティに気付く前に設定されていた!)。
解決するため:
Listener.oraの構成が正しくありません。 orclサービスはありません。
問題が解決されたことを願っています。それでも問題が発生する場合は、このOracleをドメインアカウントでインストールするかどうかをもう一度確認してください。ドメインアカウントでインストールすると、Oracle XEが同じエラーを出すというスレッドを見つけました。代わりにローカルアカウントを使用してください。
ソース: