57

サービス名 を使用してクライアントからサーバー データベースに接続しようとすると、上記のエラーが発生します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)
    )
  )

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

4

17 に答える 17

93

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

set oracle_sid=DATABASE NAME
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup
于 2014-09-11T10:03:18.780 に答える
32

データベースが正しくマウントされない場合があるため、手動でマウントする必要があります。そのためには、シャットダウンしてから起動してからマウントします。oracle ユーザーとしてログインし、次のコマンドを実行します。

sqlplus / as sysdba;
shutdown immediate;
startup nomount;
alter database mount;
alter database open;
于 2014-09-16T07:19:52.777 に答える
5

ORACLE_HOME と ORACLE_SID が正しいことを確認してください Windows で現在の値を確認するには、コマンド プロンプトで次のように入力します。

echo %ORACLE_HOME%

それで

echo %ORACLE_SID%

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

詳細については、このページをご覧ください

于 2012-02-28T15:37:19.750 に答える
5

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

于 2011-07-02T09:23:28.890 に答える
3

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

于 2016-12-27T14:26:33.220 に答える
2

SQLDeveloperで接続を作成しているときに同じ問題に直面しました「ORA-01034:ORACLEが利用できませんORA-27101:共有メモリ領域が存在しません」

解決:

1. listen.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」に設定されている可能性があります。ディレクトリ/サブディレクトリの権限を読み取り/書き込みに変更し、リスナー サービスを再起動してください。問題は解決しました。

于 2015-10-03T10:55:49.120 に答える
1

非常に多くの時間を無駄にした後、DB に接続するための構文に誤りがあることを知りました。スラッシュ「/ 」の代わりにコロン「: 」を使用していました。

(1) sid を使用する場合、接続を取得するための構文は次のとおりです。

**"jdbc:oracle:thin:@{hostname}:{port}:{SID}"**

(2) サービス名を使用する場合、以下は接続を取得するための構文です。

"**jdbc:oracle:thin:@//{hostname}:{port}/{servicename}**"
于 2020-12-10T13:32:29.317 に答える
0

listener.oraが正しく構成されていません。orclサービスはありません。

于 2011-07-11T03:00:35.210 に答える