Oracle Instant Client for Linux を試してみる

2004-12-16 18:22
このエントリーをはてなブックマークに追加

Linux に Oracle データベースへのアクセス環境を構築するには、Oracle Client をインストールすればよいのですが、OracleInstaller は X Window 必須ですし、インストール用ユーザを作ったりなど、結構手間がかかります。そこで、Oracle が公開している 10g 用の Oracle Instant Client というパッケージを使って Oracle のデータベースへのアクセスが可能かどうか試してみました。

Oracle Instant Client はインストールが簡単で、自由にダウンロードできますし、開発用であれば無償で利用できます。今回使用したのはクライアントが RHEL 互換の WhiteBox Linux 3、サーバ側は Windows 2000 Server + Oracle 8i (8.1.7.4) です。

Oracle Instant Client のダウンロード

x86 Linux 用のパッケージをダウンロードします。ダウンロードには、OTN のアカウントが必要です。これは日本の OTN のアカウントとは別です。最低限必要なのは、Basic ですが、動作確認のために SQL*Plus のパッケージもインストールします。また、PHP などからアクセスするには SDK (devel) を使って PHP を再構築させる必要があります(次回執筆予定)。 JDBC ドライバはお好みでどうぞ。

  rpm -ivh oracle-instantclient-basic-10.1.0.3-1.i386.rpm \
           oracle-instantclient-sqlplus-10.1.0.3-1.i386.rpm \
           oracle-instantclient-devel-10.1.0.3-1.i386.rpm

これだけで Oracle Client が利用可能になります。tsnnames.ora の設定もありません。ずいぶん楽ですね。もちろんここのアプリケーションで Oracle データベースへのアクセス設定が必要になります。

SQL*Plus のエラー

いきなり PHP を構築する前に、SQL*Plus が使えるかどうか試します。SQL*Plus は sqlplus コマンドで実行できますが、最初は次のようなエラーが出てしまいました。

  # sqlplus
  sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

このエラーは、共有ライブラリが見つからないときに発生します。今回は libsqlplus.so が見つからないというエラーです。/usr/lib/oracle/10.1.0.3/client/lib/ の下に Oracle Instant Client 関連の共有ライブラリがあります。このファイルが見えるように LD_LIBRARY_PATH に追加します。

  $ export LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.3/client/

これで sqlplus コマンドを実行してもエラーは出なくなりました。

SQL*Plus でのアクセス

sqlplus コマンドは、次のようにパラメータを付けて実行します。

  $ sqlplus username/password@server.example.com:1521/sid

ただし、今回のように Linux (EUC)→ Windows (SJIS) の環境だと文字化けが発生してしまいます。これは環境変数で NLS_LANGJAPANESE_JAPAN.JA16EUC を指定すれば OK です。

  $ export NLS_LANG=JAPANESE_JAPAN.JA16EUC

もちろん、環境変数の設定は .bashrc などに書いておいた方が便利だと思います。

2 Comments

  1. 続・Oracle Instant Client を使って PHP をコンパイル

    以前、Oracle Instant Client を使って PHP をコンパイルという記事を書きました。これは、Red Hat Enterprise Linux (正確にはクローンの White Box でしたが)にて、PHP の Oracle 関数を利用できるように再構築する方法を書いたものです。 当時のバージョンでは、Ora…

    トラックバック by 津田ふみかの日記2005-05-6 20:42

  2. 貴重な情報に感謝いたします。
    私の環境では、DBサーバ(win2k,oracle9i)にAdvanced Securityオプションが設定されているため、linux clientにおいて暗号の設定等が必要と思われます。このあたり、どうしたらよいか御存じでしょうか?

    コメント by まつむら — 2006-01-27 22:26

Sorry, the comment form is closed at this time.

34 queries. HTML convert time: 0.069 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン