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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Oracle Database

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

Oracle

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

Oracle Database 11g

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

Docker

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

Q&A

解決済

1回答

6683閲覧

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

koyossk

総合スコア9

Oracle Database

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

Oracle

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

Oracle Database 11g

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

Docker

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

0グッド

0クリップ

投稿2018/07/09 12:18

前提・実現したいこと

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ともに全く同じように記述されています。
同じようにハマられた方いたらと思い質問させていただきます。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sqlplus system/oracle@xe

で接続できますか?

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

さらに追記
lsnrctl stop

lsnrctl status

の内容も追記願います。

投稿2018/07/09 12:34

編集2018/07/10 03:12
Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koyossk

2018/07/09 23: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: ```
Orlofsky

2018/07/09 23:50

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

2018/07/09 23: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: ```
Orlofsky

2018/07/10 03:14

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

2018/07/10 03: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 ```
Orlofsky

2018/07/10 04:01

Tera Term でDB Serverに接続し、 sqlplus / as sysdba でsysスキーマに接続できます。 shutdown しばらく時間がかかる startup で再起動 shutdown しないで電源レベルで再起動するとDBが壊れる可能性が大きいです。
koyossk

2018/07/10 04: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 ```
Orlofsky

2018/07/10 04:23

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

2018/07/10 04: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 ```
Orlofsky

2018/07/10 04: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 がログファイルのパスです。
koyossk

2018/07/10 04: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 ```
koyossk

2018/07/10 11:24

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問