web-dev-qa-db-ja.com

ORA-01034:Oracleは使用できませんORA-27101:共有メモリー領域は存在しません

サービス名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)
    )
  )

何をすべきか教えてください?

37
maverick

コマンドプロンプトを開き、以下のコマンドを実行します。

set Oracle_sid=DATABASE NAME
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup
60
Siva Harsha

しばらく。データベースは正しくマウントされないので、手動でマウントする必要があります...そのためにシャットダウンして起動し、マウントします...以下のコマンドを実行します

oracleユーザーとしてログインしてから

sqlplus / as sysdba;
shutdown immediate;
startup nomount;
alter database mount;
alter database open;
19

Oracle_HOMEとOracle_SIDが正しいことを確認してくださいウィンドウの現在の値を表示するには、コマンドプロンプトで

echo %Oracle_HOME%

それから

echo %Oracle_SID%

値が現在のOracleホームおよびSIDではない場合は、修正する必要があります。これは、Windows環境変数で実行できます。

詳細はこのページ をご覧ください

5
John Adams
SQL> sqlplus "/ as sysdba"
SQL> startup

      Oracle instance started
      ------
      Database mounted.
      Database opened.

SQL> Quit

[Oracle@hcis ~]$ lsnrctl start
2
Ajay Takur

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;
2
andreikashin

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 」に設定されている場合があります。ディレクトリ/サブディレクトリのアクセス権を変更して、読み取り/書き込みおよびリスナーサービスを再起動します。問題は解決しました。

2
Tanuj Wagh

Windows XPでも同じ問題がありました。解決しました。このエラーは、システムログがいっぱいであるために発生しました。コントロールパネル->管理ツール->イベントビューアーアプリケーションログを右クリックし、すべてのイベントをクリアし、オプションでログを保存します。システムログについても同じプロセス。再起動すると動作するはずです。

ORA-01034およびORA-27101は通常、接続しようとしているデータベースインスタンスがシャットダウンされ、起動する権限を持つユーザーとして接続されていないことを示します。サーバー192.168.1.53にログオンしてorclインスタンスを起動するか、DBAに依頼してください。

2
Luke Woodward

Oracle_HOMEOracle_SIDが正しく設定されているように見えても、この同じエラーが発生しました。

問題はOracle_HOMEにあり、スラッシュ文字で終わるとは想定されていません。最後のスラッシュを削除すると、正しく機能し始めました。

# ❌ INCORRECT
export Oracle_HOME=/usr/local/Oracle/11gR2/

# ✔️ CORRECT
export Oracle_HOME=/usr/local/Oracle/11gR2

そのため、すべてが適切に構成されているように見える場合でも、変数を確認してください。

2
sporak

同じ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を読み取り、環境プロパティを必要としません(もちろん、私の場合はそうすべきではありません)。

次のように削除します。

  1. システム環境設定を編集します(Windowsキーを押して「env」と入力すると、このオプションが表示されます)。
  2. Oracle_HOMEというユーザーおよびシステム環境変数が存在する場合は削除します。 (主に興味のない値をメモしますが、何らかの理由で元に戻したい場合に役立ちます!)
  3. マシンを再起動します。ログオフするだけでいじくり回さないでください。マシンを再起動してください。 Windows OracleのインストールはデフォルトでWindowsサービスを使用しますが、現在インストールは非常に悪いです-再起動が必要です。

再起動後、「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システム環境プロパティに気付く前に設定されていた!)。

解決するため:

  1. Oraclexeインストールディレクトリ(editors/Explorer/cmdプロンプト)を見ているアプリをすべて閉じます。
  2. プログラムの追加と削除とOracleXeのアンインストールの簡単な旅行
  3. Oracle_HOME環境プロパティがどこにも設定されていないことを再確認してください。Windowsはレジストリエントリを使用して取得します。
  4. 再起動します(チャンスはありません-長期にわたってこれに取り組んでいます!)
  5. Oracle_HOMEプロパティがないことを確認しましたか?
  6. Oracleインストーラーを再度実行します(該当する場合はローカル管理者アカウントとして)
  7. 作業中のインストールで喜ぶことができるはずです。少なくともやった!
1
roj

Listener.oraの構成が正しくありません。 orclサービスはありません。

0
steve

問題が解決されたことを願っています。それでも問題が発生する場合は、このOracleをドメインアカウントでインストールするかどうかをもう一度確認してください。ドメインアカウントでインストールすると、Oracle XEが同じエラーを出すというスレッドを見つけました。代わりにローカルアカウントを使用してください。

ソース:

https://community.Oracle.com/thread/2141735?start=0&tstart=

0
suhao399