Oracle Database 12cR1 にクライアントから接続する

アイキャッチ

前回でデータベースが作成できたので、
今回はクライアントから接続できるようにしていきます。

▽前回記事はこちら www.reclog.net

tnsnames.ora作成方法

Oracleクライアントからデータベースに接続するには、tnsnames.oraというファイルが必要となります。
普段は直接エディタで作成するのですが、今回はリスナーを作成する時に使用したNETCA(Net Configuration Assistant)を使ってtnsnames.oraファイルを作成します。

www.reclog.net

NETCAを起動する

NETCA

プログラムリストからNet Configuration Assistantを選択して起動。
これはリスナーを作成した時に使ったツールです。

ローカル・ネット・サービス名構成
ようこそ実行処理選択

リスナー構成はデータベースのみ必要なものなので、クライアントではグレーアウトして使用不可になってます。
起動後の初期画面ではローカル・ネット・サービス名構成を選択して次へを選択します。
続けて、次の画面では実行処理の選択を行います。
構成済みのパラメータがない場合は追加しか選べないと思うので、それが選ばれている事を確認して次へ進みます。

データベース・サービス名
サービス名サーバーのtnsnames.ora

データベースに接続するためにはデータベースの識別情報であるサービス名が必要になります。
サービス名は通常データベース作成時に設定したデータベース名.ドメインになります。
忘れてしまった場合等、手っ取り早く設定するならサーバーのtnsnames.oraを参照すれば早いかと思います。
そのtnsnames.oraをクライアント環境に持ってくればいいんじゃないの?って話ですが、ここではあくまでNETCAの使用を前提とします。

プロトコルの設定とホスト名(IP)の設定
プロトコルの選択ホスト名の設定

次に設定するのはプロトコルとホスト名です。
プロトコルはTCP、ホスト名にはIPを設定しました。
また、hostsファイルに記述があればそれでも可です。

テスト実行
テストの実行選択接続失敗

NETCAでtnsnames.oraを作成するのに接続テストしないのは意味が無いと感じますし、接続テストは行ったほうが良いです。
最初に画面遷移時は初期ユーザー名とパスワードが違っていて接続に失敗するようです。ログインの変更ボタンを押して、ユーザー名とパスワードの設定を行います。

f:id:recrox:20180601004125j

接続が成功すると上記の画面が表示されます。
ちなみに、今回の設定のしている中で、かなりここで引っかかってしまいました。

ポートの開放

初歩的なのですが、サーバーのファイアウォール設定で1521を除外しておくのを忘れていたのが原因でした。
こんなことが無いように事前にファイアウォール設定はしっかり確認しましょう。
あとでファイアウォールの設定について別記事に書きたいと思います。

ネットサービス名と作成されるファイル
ネットサービス名クライアントのtnsnames.ora

最後にネット・サービス名を設定して完了となります。(この後にも画面はありますが設定項目は何もないので省略)
完了後には右画像のフォルダにtnsnames.oraが作成されます。

クライアントから接続確認

クライアントからの接続確認

テストで繋がることは確認できていますが、SQL*Plus等からの接続も確認します。
問題なくOracleデータベースに接続できることが確認できたので、これにてクライアントからデータベースに接続するための設定は完了となります。

直接tnsnames.oraを作成するのとどちらが良いのか?

自分が普段どちらの方法をとるかと言われたら、直接tnsnames.oraを作成すると思います。
理由はエディタで作業したほうが早いからで、イチから作成するのも手間ではないですし、既に出来上がってるtnsnamesがあるならほとんどコピペで済みます。
ただ、NETCAもウィザード形式で作成出来るのは利点だと思いますし、慣れるまではNETCAで、慣れたら直接弄るとかでいいんじゃないでしょうか。

参考情報

リファレンス
tnsnames.oraファイル内のローカル・ネーミング・パラメータ

余談

現在、毎度のことながら、ブログの構成や書き方を試行錯誤中です。
今回入れた区切り線はちょっと気に入った。