Ubuntu と Oracle Client

2015年8月2日

Ubuntu 14.04 に Oracle Client をインストールしてみよう

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

「Accept License Agreement」にチェックして、「Oracle Database 11g Release 2 Client (11.2.0.1.0) for Linux x86-64 」にある linux.x64_11gR2_client.zip をダウンロードします。 ※ ダウンロードには、無償のOracleプロファイルを取得してログインしておく必要があります。

Oracle Client をインストールして exp/imp, sqlplus コマンドを利用できるようにしていきます。以下の表記で $ はコマンドプロンプトです。

1. swap領域を作る(swap領域が無い場合)

$ sudo dd if=/dev/zero of=/swapfile bs=32M count 128
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ sudo swapon -s
※ 必要なら /etc/fstab に登録しておく

2. /bin/sh のを dash から bash に変更する

$ sudo dpkg-reconfigure dash
※ デフォルトのシェルを dash にしますか?みたいなメッセージに NO と答える

3. カーネルパラメータの調整

Oracleを利用する場合のシェアードメモリの調整など、クライアントだけなので必要ない気もするが、インストーラーが怒るとうざいので

$ vi /etc/sysctl.d/60-oracle.conf
# Oracle 11gR2 kernel parameters
fs.aio-max-nr=1048576
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
kernel.sem=250 32000 100 128
kernel.shmmax=2147483648

$ sudo service procps start

4. パッケージのインストール

Oracle Clientをインストールする際に必要なパッケージをインストールします。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install libaio1
$ sudo apt install libaio-dev
$ sudo apt install unixodbc
$ sudo apt install unixodbc-dev
$ sudo apt install expat
$ sudo apt install libexpat1-dev
$ sudo apt install sysstat
$ sudo apt install pdksh
$ sudo apt install autoconf
$ sudo apt install gcc-multilib
$ sudo apt install g++-multilib
$ sudo apt install unzip

5. ユーザーの作成とディレクトリの準備

Oracle Clientをインストールする際に必要なユーザーを作成します。パッケージをインストールするディレクトリは、好きなところで構いません。

$ sudo groupadd -g 1020 oracle
$ sudo useradd -u 1020 -g 1020 -s /sbin/nologin oracle
$ sudo mkdir /opt/oracle
$ sudo chown oracle:oracle /opt/oracle
$ sudo -u oracle mkdir /opt/oracle/src
$ cd /opt/oracle/src
$ sudo -u oracle cp /home/user/download/linux.x64_11gR2_client.zip .

6. パッケージの解凍と設定ファイル

ダウンロードしたパッケージの解凍とインストール用の設定ファイルを作成します。

$ cd /opt/oracle/src
$ ls
linux.x64_11gR2_client.zip
$ sudo -u oracle unzip linux.x64_11gR2_client.zip

$ cd client/responce
$ sudo -u oracle cp client_install.rsp client_install.rsp.org
$ sudo vi client_install.rsp
ORACLE_HOSTNAME=localhost.localdomain
UNIX_GROUP_NAME=oracle
INVENTORY_LOCATION=/home/oracle/inventory
SELECTED_LANGUAGES=ja, en
ORACLE_HOME=/opt/oracle/product/11.2
ORACLE_BASE=/opt/oracle
oracle.install.client.installType=Administrator
※ 編集した部分のみ記述

7. インストール

インストーラーを起動すると、バックグラウンドで処理が動きます。でも、標準出力にメッセージが表示さるので、終わるまで待ちましょう。

パッケージが Redhat 系 linux 向けなので、ちょっと強引ですが、コマンドやライブラリのシンボリックリンクを作ります。

$ sudo ln -s /usr/bin/basename /bin/basename
$ sudo ln -s /usr/bin/rpm /bin/rpm
$ sudo ln -s /usr/bin/awk /bin/awk

$ sudo mkdir /usr/lib64
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
$ sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
$ sudo ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a

$ sudo -u oracle ./runInstaller -silent -ignorePrereq -responseFile /opt/oracle/src/client/responce/client_install.rsp
※ Successfully Setup Software が表示されるまで待つ

$ sudo bash /opt/oracle/product/11.2/root.sh

8. 動作テスト

$ export ORACLE_HOME=/opt/oracle/product/11.2
$ export LD_LIBRARY_PATH=/opt/oracle/product/11.2/lib
$ export NLS_LANG=Japanese_Japan.UTF8

$ /opt/oracle/product/11.2/bin/sqlplus

誰がこんな情報を参考にしたいのだろうか?という記事を今回も投稿しました。