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

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

ただいまの
回答率

87.61%

oracle12c リモートからのDB接続方法

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,509

score 246

 前提・実現したいこと

192.168.1.AのPCに構成したoracle12cのDB(サービス名:orcl)に対して、
192.168.1.BのPCから接続したいです。

192.168.1.AのPCでtnspingを実行する際は問題なく接続できるのですが、
192.168.1.BのPCから接続(tnsping)しようとすると、以下のエラーが発生します。

>tnsping 192.168.1.A/orcl

TNS Ping Utility for 64-bit Windows: Version 18.0.0.0.0 - Production on 12-11月-2018 18:09:13

Copyright (c) 1997, 2018, Oracle.  All rights reserved.


パラメータ・ファイルを使用しました:
~~~\sqlnet.ora

エイリアスを解決するためにEZCONNECTアダプタを使用しました。
(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orcl))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.A)(PORT=1521)))に接続の試行中
TNS-12541: TNS: リスナーがありません。

192.168.1.Aのlistener.oraは以下の通りです。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:~~~~~)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:~~~~~")
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.A)(PORT = 1521))
  )

 試したこと

ファイアウォールの設定で、TCPの受信規則に1521番許可を追加しました。
192.168.1.Bから192.168.1.AへのPINGは通っています。

何か必要な情報がありましたら、ご指摘いただけると幸いです。

oracle初学者のため、見当違いなことを書いていたら申し訳ないです。

 追記

lsnrctl statusの結果を追記します。
C:\WINDOWS\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 13-11-2018 08:59:05

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.A)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for 64-bit Windows: Version 12.2.0.1.0 - Production
開始日                    13-11-2018 06:30:30
稼働時間                  02 時間 2837 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      C:\~~\network\admin\listener.ora
ログ・ファイル            C:\~~\log\diag\tnslsnr\N180822\listener\alert\log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.243)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=【PCのホスト名】)(PORT=5501))(Security=(my_wallet_directory=C:\~~\admin\xe\xdb_wallet))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"CLRExtProc"には、1件のインスタンスがあります。
  インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"xe"には、2件のインスタンスがあります。
  インスタンス"xe"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
  インスタンス"xe"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"xeXDB"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。

追記2

サーバ側とクライアント側それぞれのtnsnames.oraを追記いたします。

サーバ側(192.168.1.A)

XE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.A)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xe)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.A)(PORT = 1521))

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.A)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

クライアント側(192.168.1.B)

XE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.A)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xe)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.A)(PORT = 1521))

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.A)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

0

TNS-12541: TNS: リスナーがありません。 とこの中のリンクを参考に。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/11/13 12:07

    oracleはExpress Edtion(XE) ではないのですが、
    諸般の事情でサービス名をxeにしております。

    OSはWindows 10 x64 - Enterpriseとなります。
    tnsnames.oraを質問に追記いたします。

    他のマシン(Windows7 Enterprise 64bit)からtnspingしてみたところ、正しく接続できたため、サーバ側ではなく、クライアント側の問題であるであろうというところまで切り分けできました。

    キャンセル

  • 2018/11/14 10:38

    他のマシンはOracle Server? Oracle Client? その他のマシンからtnspingだけではなく、sqlplusで192.168.1.Aに接続できますか?他のマシンと192.168.1.Bのtnsnames.ora, listener.ora, sqlnet.ora を比較しては?
    >リスナーログ パス Oracle12C
    でググってリスナーログのエラーメッセージを確認してください。

    キャンセル

  • 2018/11/15 14:26

    お世話になります。回答ありがとうございます。ひとまず、1台のクライアントを除いて動作しており、
    リスナーログの確認を含め、原因解明に現状あまり時間を割くことができないため、
    一旦解決としてクローズさせていただきます。
    申し訳ありませんが、よろしくお願いいたします。

    キャンセル

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

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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