読者です 読者をやめる 読者になる 読者になる

min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

LinuxのSQL*PlusからWindowsのOracleサーバにアクセスする(Linux版 Instant Client を使う)

bash Linux SQL oracle

Windows2003上にOracleサーバ(10.2.0.4.0)がいる。クライアント機(fedora Linux)から、このサーバにsqlplusでアクセスしたい。

ーーー

今までは、VNCWindowsサーバに入って、そこからsqlplusを起動していた。

f:id:min117:20161015155804p:plain

これだと、VNCの環境のせいか、キーボードが英語版になってしまって使い物にならない(アットマークを入力が Shift+数字の2 とか)。

ーーー

不便なので、Linux上から直接sqlplusを起動したい。最終的にはこうなる。

f:id:min117:20161015160209p:plain

ーーー

やること

 LinuxSQL*Plusを使えるようにする。ただし、Oracleクライアントのフル機能だと(X Windowが必要だったりで)面倒なのでインストールしない。代わりに、Oracleが提供する Instant Client を使う。

ーーー

手順

OracleのサイトからLinux版の Instant Client をダウンロードする。

② Instant Clientをインストールする。

環境変数を設定する。

SQL*Plus を起動し、WindowsOracleサーバに接続する。

⑤ 次回から手軽に接続できるようにする。

ーーー

まずは OracleのサイトからLinux版の Instant Client をダウンロードする

Instant Client downloads for Linux x86-64

・ダウンロードするにはOracle開発者登録が必要。

・リンク切れの場合は、右上のSearch欄から「Instant Copy」で探せば見つかる。

f:id:min117:20161015161328p:plain

Linuxは64ビットだから、ダウンロードするのはたぶん「x86-64」だろう。違ったら、すぐ下にある「x86」をあとから試せばいいし。

f:id:min117:20161015161817p:plain

 

・バージョンはOracleサーバに合わせたほうがいいかも。今回は10.2.0.4.0を選んだ。

・ダウンロードするファイルは2つ。「Basic」と名の付いたものと、「sqlplus」と付いたもの。

・拡張子が「zip」と「rpm」とあるが、よく分からんので両方落としておく。

f:id:min117:20161015161951p:plain

インストール手順はサイトの下のほうに書いてあった。zipだと手作業でやるところを、rpmは全自動でやってくれるみたい。今回はrpmの手順でインストールする。

f:id:min117:20161015162452p:plain

ダウンロードできた。lsで確認。ファイルは4つあるけど、拡張子rpmの2つだけ使う。

f:id:min117:20161015162938p:plain

ーーー

次に ② Instant Clientをインストールする。念のため sudo -s してスーパーユーザーにしてから作業する。

$ sudo -s

# rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm

f:id:min117:20161015163233p:plain

# rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.x86_64.rpm

f:id:min117:20161015163320p:plain

インストールが完了すると /usr/lib/oracle/Oracleバージョン/client64/lib というフォルダができている。

f:id:min117:20161015163649p:plain

ーーー

続いて 環境変数を設定する。以下3つのコマンドを打てばいいだけ。

1つ目(LD_LIBRARY_PATHの設定)

export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.4/client64/lib:$LD_LIBRARY_PATH

2つ目(PATHの設定)

export PATH=$PATH:/usr/lib/oracle/10.2.0.4/client64/lib

3つ目(日本語の設定/UTF-8にする)

export NLS_LANG=JAPANESE_JAPAN.UTF8

ーーー

ここまできたら、もうsqlplusが使えるはずなので SQL*Plus を起動し、WindowsOracleサーバに接続する。

# sqlplus scott/tiger@192.168.1.100:1521/MYDB01

192.168.1.100 WindowsOracleサーバ)のアドレス

:1521 Oracleが使うポート(普通は1521のはず)

MYDB01 SID名

ーーー

無事に接続できた。日本語も正常に表示されている。

※ うまくいかないときは、たぶん環境変数の設定(赤文字)手順を飛ばしている。

f:id:min117:20161015164958p:plain

ーーー

最後に、⑤ 次回から手軽に接続できるようにする。毎回環境変数の設定(③)をするのは面倒なので、起動時に読み込まれるファイル(.bashrc)にexport文を記述を追加しておく。

f:id:min117:20161015163828p:plain

ついでに、よく使うコマンドもaliasきっておいた。

参考

インストールとアップグレード

d.hatena.ne.jp