質問編集履歴

2 追記2

monagano

monagano score 246

2018/11/13 12:11  投稿

oracle12c リモートからのDB接続方法
### 前提・実現したいこと
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)しようとすると、以下のエラーが発生します。
```cmd
>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は以下の通りです。
```listenerora
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初学者のため、見当違いなことを書いていたら申し訳ないです。
### 追記
```cmd
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
稼働時間                 0 日 2 時間 28 分 37 秒
トレース・レベル         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)  
```tnsnames  
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)  
```tnsnames  
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)  
   )  
 )  
```
  • Windows

    3092 questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

  • Oracle Database

    346 questions

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

1 情報を追記しました。

monagano

monagano score 246

2018/11/13 09:03  投稿

oracle12c リモートからのDB接続方法
### 前提・実現したいこと
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)しようとすると、以下のエラーが発生します。
```cmd
>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は以下の通りです。
```listenerora
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初学者のため、見当違いなことを書いていたら申し訳ないです。
oracle初学者のため、見当違いなことを書いていたら申し訳ないです。
### 追記
```cmd
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
稼働時間                 0 日 2 時間 28 分 37 秒
トレース・レベル         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件のハンドラがあります...
コマンドは正常に終了しました。
```
  • Windows

    3092 questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

  • Oracle Database

    346 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る