質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Docker

    805questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • Oracle

    618questions

    Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

  • Oracle Database 11g

    201questions

    Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

  • Oracle Database

    99questions

    Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Dockerのoracle-xe-11gでORA-12514

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 399

koyossk

score 1

 前提・実現したいこと

Dockerでoracle-xe-11gのデフォルトイメージをPULLして無事セットアップできましたが、該当イメージをcommit>saveして他端末で動かそうとすると、エラーが出て動きません。設定等は全く変更しておらず、端末間コピーしたのみです。

 発生している問題・エラーメッセージ

sqlplusで接続しようとするとORA-12514で接続できません。

#sqlplus system/oracle@localhost/xe

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 9 12:12:20 2018

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

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor


Enter user-name:


この後、ユーザー名を入れて接続しようとすると、

ORA-12547: TNS:lost contact


となってしまいます。

listener.oraの中身は以下の通りです。

# listener.ora Network Configuration File:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = [ホスト名])(PORT = 1521))
    )
  )

tnsnames.oraの中身は以下の通りです。

# tnsnames.ora Network Configuration File:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = [ホスト名])(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

#lsnrctl servicesをすると下記の通りです。

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 09-JUL-2018 12:09:53

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
The command completed successfully

 試したこと

色々と検索して試しましたが、全くだめです。イメージを作成した端末では元気にOracleが起動していますが、なぜでしょうか。。。ここに記載したlistener.ora、tnsnames.oraともに全く同じように記述されています。
同じようにハマられた方いたらと思い質問させていただきます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

sqlplus system/oracle@xe

で接続できますか?

追記
コマンドプロンプトからリスナーを起動してください。
lsnrctl start

さらに追記
lsnrctl stop

lsnrctl status

の内容も追記願います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/10 08:47

    確認ありがとうございます。下記のような実行結果です。
    ```
    # sqlplus system/oracle@xe

    SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 9 23:45:29 2018

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

    ERROR:
    ORA-12541: TNS:no listener


    Enter user-name:
    ```

    キャンセル

  • 2018/07/10 08:50

    > no listener
    リスナーが動いていませんね。回答に追記しました。

    キャンセル

  • 2018/07/10 08:56

    素早い対応ありがとうございます。下記のような実行結果です。
    ```
    # lsnrctl start

    LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 09-JUL-2018 23:53:40

    Copyright (c) 1991, 2011, Oracle. All rights reserved.

    Starting /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr: please wait...

    TNSLSNR for Linux: Version 11.2.0.2.0 - Production
    System parameter file is /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
    Log messages written to /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/logiex01db/listener/alert/log.xml
    (中略)

    STATUS of the LISTENER
    ------------------------
    Alias LISTENER
    Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production
    Start Date 09-JUL-2018 23:53:42
    Uptime 0 days 0 hr. 0 min. 0 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Default Service XE
    Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
    Listener Log File /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/logiex01db/listener/alert/log.xml
    Listening Endpoints Summary...
    (中略)
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully

    # sqlplus system/oracle@xe

    SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 9 23:53:47 2018

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

    ERROR:
    ORA-12514: TNS:listener does not currently know of service requested in connect
    descriptor


    Enter user-name:
    ```

    キャンセル

  • 2018/07/10 12:14

    ダメ元でOracle EXをshutdown, startup してみては?
    それでもダメならお手上げです。

    キャンセル

  • 2018/07/10 12:29

    再起動は、サーバーごと何度か試しました。
    そもそもsysで接続できませんので、sqlplusでの再起動が実行できないという状況です。
    追記いただいた内容の実行結果は下記の通りです。

    ```
    # lsnrctl stop

    LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 10-JUL-2018 03:23:28

    Copyright (c) 1991, 2011, Oracle. All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
    The command completed successfully

    # lsnrctl status

    LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 10-JUL-2018 03:23:47

    Copyright (c) 1991, 2011, Oracle. All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    Linux Error: 2: No such file or directory
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[ホスト名])(PORT=1521)))
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    Linux Error: 111: Connection refused
    ```

    キャンセル

  • 2018/07/10 13:01

    Tera Term でDB Serverに接続し、
    sqlplus / as sysdba
    でsysスキーマに接続できます。
    shutdown
    しばらく時間がかかる
    startup
    で再起動

    shutdown
    しないで電源レベルで再起動するとDBが壊れる可能性が大きいです。

    キャンセル

  • 2018/07/10 13:08

    何度も迅速な回答ありがとうございます。環境はDockerコンテナなので、電源レベルの再起動というかコンテナのrestartなんかで再起動しています。

    ```
    # sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.2.0 Production on Tue Jul 10 04:05:05 2018

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

    ERROR:
    ORA-12547: TNS:lost contact
    ```

    ```
    # sqlplus /nolog

    SQL*Plus: Release 11.2.0.2.0 Production on Tue Jul 10 04:05:20 2018

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

    SQL> conn / as sysdba
    ERROR:
    ORA-12547: TNS:lost contact
    ```

    キャンセル

  • 2018/07/10 13:23

    Dockerって移動でOraclleをshutdownしてくれるのかはわたしは知りません。
    たぶん、shutdownはしてくれないのでは?
    lsnrctl status
    でリスナーが起動しているか確認し、動いていなかったら起動してから
    sqlplusを起動します。

    キャンセル

  • 2018/07/10 13:28

    何度もすみません。下記はlistenerは起動しているという理解なのですが、いかがですか?

    ```
    # lsnrctl status

    LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 10-JUL-2018 04:24:49

    Copyright (c) 1991, 2011, Oracle. All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
    STATUS of the LISTENER
    ------------------------
    Alias LISTENER
    Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production
    Start Date 10-JUL-2018 03:26:12
    Uptime 0 days 0 hr. 58 min. 37 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Default Service XE
    Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
    Listener Log File /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/logiex01db/listener/alert/log.xml
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[ホスト名])(PORT=1521)))
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    ```

    キャンセル

  • 2018/07/10 13:30

    はい、起動しています。
    >Instance "PLSExtProc", status UNKNOWN, has 1
    UNKNOWN というのが気にはなります。
    Listener Log File /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/logiex01db/listener/alert/log.xml
    がログファイルのパスです。

    キャンセル

  • 2018/07/10 13:36

    基礎知識不足で申し訳ないです。。。
    下記の通り、該当パスにlog.xmlも吐き出されていません。

    ```
    # ls -al /u01/app/oracle/product/11.2.0/xe/log/diag/
    total 12
    drwxr-xr-x 2 oracle dba 4096 Jul 9 06:04 .
    drwxr-xr-t 1 oracle dba 4096 Jul 9 06:04 ..
    -rw-r----- 1 oracle dba 15 Jul 9 06:05 adrci_dir.mif
    ```

    キャンセル

  • 2018/07/10 15:23

    Oracle XEのインストールが途中で失敗しているのかも?

    どうやらお使いのバージョンはDockerに対応していないのかもしれません。
    https://www.publickey1.jp/blog/17/docker_store_oracle_database.html

    キャンセル

  • 2018/07/10 15:48

    Oracle11.2.0 Standard Edition を買いたいがDockerに対応しているか、って問合せてみては?
    https://www.oracle.com/jp/corporate/contact/index.html
    正直に Oracle EX だ言うと取り合ってくれない可能性大ですので、ご注意を。

    キャンセル

  • 2018/07/10 20:24

    情報ありがとうございます。docker hubに落ちているイメージは公式のものではないので、挙動については保証されないのかなと思います。とりあえず、別のイメージを落としたところ、端末間でコピーしても接続だけはできましたので、これで続けてみようと思います。大変勉強になりました。ありがとうございました。
    ※昨日今日でlsnrctlを300回ぐらいタイプしたような気がしますw

    キャンセル

同じタグがついた質問を見る

  • Docker

    805questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • Oracle

    618questions

    Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

  • Oracle Database 11g

    201questions

    Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

  • Oracle Database

    99questions

    Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。