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

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

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

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

Oracle Database 11g

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

Q&A

解決済

1回答

2512閲覧

oracle 11gのリモート接続について

bkprg

総合スコア16

Oracle Database

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

Oracle Database 11g

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

0グッド

0クリップ

投稿2021/11/12 02:46

編集2021/11/13 05:44

現在oracleの環境構築を行っています。
データベースを作成し、そこにリモート接続を行う下記のコマンドを実行すると、

sqlplus ユーザー名/パスワード@接続先

**************************************************
ORA-12170:TNS:接続タイムアウトが発生しました。
ユーザー名を入力してください
**************************************************
と表示されます。

ここでユーザー名、パスワードを入力すると接続はできるようになるなります。
接続ができるので、tsnames.oraファイルの記述ミスではないと思っております。
また、コマンド実行時のユーザー名、パスワードは間違っていないことも確認済みです。

しかし、DMPインポートコマンドなどを実行する際はTNSタイムアウトとなってしまいインポートができなくなってしまいます。

原因箇所と対応方法についてご教授頂ければと思います。

宜しくお願いいたします。

追記:
1521ポート開放の設定を追加で行いましたが変わらずです。

lsnrctl service の実行結果はキャプチャ貼りました。

お願いいたします。

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

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

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

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

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

bkprg

2021/11/12 04:04

ありがとうございます。 ポートが解放されていなかったので設定しましたが、状況は変わりません。
bkprg

2021/11/12 04:55

実行結果のキャプチャを貼りました。 特にリスナーの方には問題がないように見えますが・・・
bkprg

2021/11/12 05:51

ありがとうございます。 クライアントも接続先も同じなので、ホスト名はlocalhostとしてtnsping実行してよろしいでしょうか?
KOZ6.0

2021/11/12 05:55

ホスト名は、「sqlplus ユーザー名/パスワード@接続先」で指定した接続先です。
bkprg

2021/11/12 05:57

ありがとうございます。 実行したところタイムアウトになりました。
KOZ6.0

2021/11/12 06:05

ということは、tnsnames.ora の定義がまちがっているとしか思えないです。
bkprg

2021/11/12 06:09

ありがとうございます。 tnsnames.ora内のhostはリモート接続時のコマンドで指定している@以降と同じ物になりますか? 初歩的な質問で申し訳ございません。
KOZ6.0

2021/11/12 06:38 編集

https://www.shift-the-oracle.com/oracle-net/tnsnames.html host= のあとは、サーバー名、もしくは IP アドレスです。 サーバー名を指定する場合は、それが名前解決できなければなりません。 FGSD-16G-A02151~ になっていれば問題ありません。
bkprg

2021/11/12 06:47

接続元も接続先も同じであればlocalhostでも問題ないでしょうか? それでもつながらないのですがね…
KOZ6.0

2021/11/12 06:51

リスナーが localhost を Listen していませんので localhost ではダメです。
bkprg

2021/11/12 08:58

ホスト名をFGSD-16G-A02151~ としても状況が変わらないです・・・
KOZ6.0

2021/11/12 09:16

ホスト名を ip アドレスに変えてもだめですか? netstat -a でリッスンしているポートの一覧が出てきます。 tcp 1521 ポートをリッスンしている ip アドレスを確認してみてください。 その ip アドレスで接続できないならポート解放がうまくいっていないことになります。 PC を再起動してみてください。
bkprg

2021/11/12 09:24

すみません。 tnsname.ora内で指定しているDB名を修正してリモート接続ができるようになりました。 こちらでいただいていた環境構築手順の書き方をそのままコピーしていたのですが、それがどうやら間違っていたようです。 インポートを行うバッチももらっていたのですが、そちらで指定しているDB名も変更したところインポートも走りました。 色々と教えていただきまして本当にありがとうございました。 oracleは初めて触りましたので大変勉強になりました。
KOZ6.0

2021/11/12 10:29

できれば、どこが違ったかを回答に書いてクローズしてください。
guest

回答1

0

自己解決

自己解決しましたので記載いたします。

  • tnsname.ora内のhostが間違っていた

記述方法がわからなかったため、「tnsping 接続先DB名」で実行した結果返ってきた値のhost名を指定しました

  • tnsname.ora内のDB名の記載が間違っていた

DB作成時にグローバル・データベース名とSIDが異なっていたが、tnsname.ora内で定義する際、SIDで定義し、パラメータ内のSERVICE_NAMEはグローバル・データベース名で指定するよう変更した。
※接続ができないときっ記述は定義する際の名前もデータベース名となっていた。

  • リモート接続実行時の接続DB名の記載方法が間違っていた。

SIDで指定して接続できました。

データインポートを行うバッチ内でもDB名の指定がグローバル・データベース名だったため修正を行いました。

上記の対応を行いTNSタイムアウトのエラーが発生せず、正しく接続やインポートができるようになりました。

※客先の端末で行っていた操作なので、実際のキャプチャなどを貼れずに申し訳ございません。
質問に追記した際に貼ったキャプチャ模索j

https://www.sql-dbtips.com/tns/tnsnames/

投稿2021/11/13 05:25

bkprg

総合スコア16

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問