Oracle Databaseに接続をする際に使用するのがtnsnames.oraです。
今回はOracle Databaseへの接続情報を設定するtnsnames.oraの場所、設定内容の説明、使用方法を紹介します。
tnsnames.oraとは
tnsnames.oraとは、Oracleへの接続情報を記載するファイルです。
一度作成しておけば、接続サービス名(後ほど説明します)のみで接続することができるので、設定ファイルを共通化できます。
tnsnames.oraの場所
まず最初にtnsnames.oraが存在する場所ですが、以下に置いてあります。
[oracle@ol77 ~]$ ls -l $ORACLE_HOME/network/admin/tnsnames.ora
-rw-r----- 1 oracle oinstall 572 Jul 6 22:46 /u01/app/oracle/product/19.0.3/dbhome_1/network/admin/tnsnames.ora
tnsnames.oraに記載する項目
基本的に記載する項目としては以下の通りです。
- ネットサービス名(これを使用してSQL*Plusやアプリケーションから接続する)
- 接続先ホスト名(IPアドレス)
- 接続先ポート番号
- 専用サーバ接続にするか、共有サーバ接続にするか
- 接続先サービス名
以下は記載内容のサンプルとなります。
HOGEPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol77)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hogepdb)
)
)
tnsnames.oraを使用した接続方法
SQL*Plusからtnsnames.oraを使用して接続する際は、以下のコマンドを実行します。
sqlplus <DBユーザ名>@<ネットサービス名>
[oracle@ol77 ~]$ sqlplus dekiruengineer@HOGEPDB
Enter password:
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
以下のエラーが出た際は、Database側でリスナーが起動されていないので、リスナーを起動してから再度接続してください。
ERROR:
ORA-12541: TNS:no listener
リスナーの起動方法は以下の記事で詳細に説明しますので、こちらを参照してください。
最後に
tnsnames.oraに複数のネットサービス名を登録しておけば、開発環境と本番環境などの接続切り替えが楽になりますので、ぜひ使ってみてください。