DB/Oracle/Instant Client

Top/DB/Oracle/Instant Client

目次

XE を立てたサーバにほかのマシンの SQL*Plus からさわれるようにする。SQL*Plus そのものは Oracle Instant Client っていうパッケージとして Oracle さんが公開してくれているので、ここではそのインストール方法を説明。


参照ドキュメント

SQL*Plus のユーザーズガイドとリファレンスの中に Instant Client の解説があるのでそこを参照。インストールの手順も書いてある。

インストール

インストーラでさくっと終わるかと思いきや意外とややこしかった。インストーラなんてなかった。

Windows 環境でのインストール

ダウンロードと展開

  1. 必要なファイルのダウンロード
    1. Instant Client のダウンロードページ から各 OS のページに進む
    2. instantclient-basic-*.zipinstantclient-sqlplus-*.zip の二つをダウンロードする
  2. 解凍する
    1. 好きなところに親ディレクトリをつくる
      • どこでもいいので例えば [c:\tools\sqlplus] とか
    2. ダウンロードした二つの zip ファイルの中身を親ディレクトリ内に解凍する

構成設定

  1. 環境変数の設定
    • 環境変数 PATH に SQL*Plus を放り込んだディレクトリ(ここでは [c:\tools\sqlplus\])を追加する

ネットサービス名の登録

  1. 適当な場所に tnsnames.ora をつくって保存する
    • 今回は [c:\tools\sqlplus\admin\tnsnames.ora] にした
    • 中身はこんなん。XE のサービス名は ORCL じゃなくて XE だった
      <net-service-name> =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = <ip-addr>)(PORT = 1521))
          (CONNECT_DATA =
            (SERVICE_NAME = XE)
          )
        )
      
  2. 環境変数の追加
    • 環境変数 TNS_ADMIN として tnsnames.ora のあるディレクトリを指定する。今回は [c:\tools\sqlplus\admin\]。

接続確認

  1. コマンドプロンプトから SQL*Plus を起動する
    sqlplus /nolog
    
    • この時点で起動できなければパスが通ってないってことなので再確認
  2. 接続確認
    -- ひとまず簡易接続で確認。別に sysdba じゃなくてもいいのよ
    conn sys@<ip-addr>:1521 as sysdba
    
    -- できたらネットサービス名で接続確認
    conn sys@<net-service-name> as sysdba
    

便利な情報

Linux 環境下で上下左右のカーソルやコマンド履歴を有効にする

Linux 環境で SQL*Plus を使っていてストレスがたまるのが、上下キーで履歴をたどれない上に左右キーも効かないという点。ストレスフルすぎてアレだったので調べたら、当然のことながら同志がいっぱいいて、解決策もあった。超便利。

概要

通常のシェルでカーソルキーとかコマンド履歴(Ctrl + R)とか使えるのは readline っていうものが動いてるからなんだけど、我らが SQL*Plus は readline に対応してないっていう話。

で、ありとあらゆるものを readline 対応にする超便利な rlwrap というラッパがあるのでそれを使うって話。

ダウンロードとインストール

リポジトリによっては yum で入る。入らない場合は rpm を探して持ってくるか、ソースからビルドする。

  1. yum で入れられたら入れる
    yum install rlwrap
    
  2. なかったらソースを持ってくる。面倒だったらぐぐればどこかに rpm があるはずだからそれぶちこんでもよい
    1. てきとうにここら からダウンロード
    2. 解凍してビルドしてインストールする
      -- 解凍
      tar zxvf rlwrap-0.37.tar.gz
      
      -- 移動
      cd rlwrap-0.37
      
      -- ビルドしてインストール
      ./configure
      make
      make install
      

使い方

実行したいコマンドの前に rlwrap をくっつけるだけ。

  • 実行方法の例
    rlwrap sqlplus /nolog
    

毎回これをやるのすら面倒だったらエイリアスをつくればさらに便利。

  • ~/.bashrc に
    alias sqlplus='rlwrap sqlplus'
    

こうするとシェルで使えるキーボードショートカットっぽいのはだいたい使える。超便利。


Last-modified: 2011-11-02 (水) 09:45:46