Windows2003上にOracleサーバ(10.2.0.4.0)がいる。クライアント機(fedora Linux)から、このサーバにsqlplusでアクセスしたい。
今までは、VNCでWindowsサーバに入って、そこからsqlplusを起動していた。
これだと、VNCの環境のせいか、キーボードが英語版になってしまって使い物にならない(アットマークを入力が Shift+数字の2 とか)。
不便なので、Linux上から直接sqlplusを起動したい。最終的にはこうなる。
やること
LinuxでSQL*Plusを使えるようにする。ただし、Oracleクライアントのフル機能だと(X Windowが必要だったりで)面倒なのでインストールしない。代わりに、Oracleが提供する Instant Client を使う。
手順
① OracleのサイトからLinux版の Instant Client をダウンロードする。
② Instant Clientをインストールする。
③ 環境変数を設定する。
④ SQL*Plus を起動し、WindowsのOracleサーバに接続する。
⑤ 次回から手軽に接続できるようにする。
まずは ① OracleのサイトからLinux版の Instant Client をダウンロードする。
Instant Client downloads for Linux x86-64
・ダウンロードするにはOracle開発者登録が必要。
・リンク切れの場合は、右上のSearch欄から「Instant Copy」で探せば見つかる。
Linuxは64ビットだから、ダウンロードするのはたぶん「x86-64」だろう。違ったら、すぐ下にある「x86」をあとから試せばいいし。
・バージョンはOracleサーバに合わせたほうがいいかも。今回は10.2.0.4.0を選んだ。
・ダウンロードするファイルは2つ。「Basic」と名の付いたものと、「sqlplus」と付いたもの。
・拡張子が「zip」と「rpm」とあるが、よく分からんので両方落としておく。
インストール手順はサイトの下のほうに書いてあった。zipだと手作業でやるところを、rpmは全自動でやってくれるみたい。今回はrpmの手順でインストールする。
ダウンロードできた。lsで確認。ファイルは4つあるけど、拡張子rpmの2つだけ使う。
次に ② Instant Clientをインストールする。念のため sudo -s してスーパーユーザーにしてから作業する。
$ sudo -s
# rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
# rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.x86_64.rpm
インストールが完了すると /usr/lib/oracle/Oracleバージョン/client64/lib というフォルダができている。
続いて ③ 環境変数を設定する。以下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 を起動し、WindowsのOracleサーバに接続する。
# sqlplus scott/tiger@192.168.1.100:1521/MYDB01
192.168.1.100 Windows(Oracleサーバ)のアドレス
:1521 Oracleが使うポート(普通は1521のはず)
MYDB01 SID名
無事に接続できた。日本語も正常に表示されている。
※ うまくいかないときは、たぶん環境変数の設定(赤文字)手順を飛ばしている。
最後に、⑤ 次回から手軽に接続できるようにする。毎回環境変数の設定(③)をするのは面倒なので、起動時に読み込まれるファイル(.bashrc)にexport文を記述を追加しておく。
ついでに、よく使うコマンドもaliasきっておいた。
参考