Debian GNU/Linux 8.3へのOracle Database 12cインストール
Last Change: 2016/04/03 07:54:37.
Debian Wikiの以下のページを参照してインストールしてみました。
https://wiki.debian.org/DataBase/Oracle
試行錯誤した部分などは記述を追加・変更しています。
ちなみにセットアップした環境は現状ではテスト用として使用しています。
Oracleソフトウェアの展開
# unzip linuxamd64_12102_database_1of2.zip -d /opt
# unzip linuxamd64_12102_database_2of2.zip -d /opt
ユーザ・グループの追加
# addgroup --system oinstall
# addgroup --system dba
# adduser --system --ingroup oinstall --shell /bin/bash oracle
# adduser oracle dba
# passwd oracle
カーネルパラメータの設定
以下の内容の/etc/sysctl.d/local-oracle.confを追加する。
fs.file-max = 65536
fs.aio-max-nr = 1048576
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
kernel.shmall = 2097152
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 1024 65000
vm.hugetlb_shm_group = 111
vm.nr_hugepages = 64
以下のコマンドで設定を反映する。
# sysctl -p /etc/sysctl.d/local-oracle.conf
セキュリティ関連の設定
以下の内容の/etc/security/limits.d/local-oracle.confを追加する。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
必要パッケージのインストール
Oracleのインストールに必要なライブラリ・ツール類をインストールする。
以下は実際一行。
# apt-get install build-essential binutils libcap-dev gcc g++
libc6-dev ksh libaio-dev make libxi-dev libxtst-dev
libxau-dev libxcb1-dev sysstat rpm xauth
インストーラ向けのハック
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/basename /bin/basename
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
インストール先フォルダの権限設定
# mkdir -p /opt/oracle/product/12.1.0
# mkdir -p /opt/oraInventory
# chown -R oracle:dba /opt/oracle/
# chown -R oracle:dba /opt/oraInventory
インストーラの実行
oracleユーザでログインしなおしてインストールを実行する。
UTF-8日本語環境だと文字化けするので英語環境設定にして起動します。
言語設定が「English」のみになっているので「Japanese」を忘れずに追加すること。
$ LANG=C /opt/database/runInstaller -IgnoreSysPreReqs
Oracle baseを「/opt/oracle」に設定する。
設定の仕方はWindowsとほぼ同じ。
今回はAdvanced Installationを選択して「Install database software only」で実行しました。
リスナーの作成
netcaコマンドで設定する。
$ LANG=C /opt/oracle/product/12.1.0/dbhome_1/bin/netca
設定の仕方はWindowsとほぼ同じ。
インスタンスの作成
dbcaコマンドで作成する。
$ LANG=C /opt/oracle/product/12.1.0/dbhome_1/bin/dbca
Windowsのデフォルトと一緒にしたい場合は言語設定を「JA16SJISTILDE」に設定すること。
/etc/oratabの設定
作成したインスタンスの設定がデフォルトで「:N」になっているので、
dbshutコマンドとdbstartコマンドの対象となるように「:Y」に変更しておく。
orcl:/opt/oracle/product/12.1.0/dbhome_1:Y
systemdへサービス登録する(Oracleの自動開始・自動停止)
rootで以下の内容の/etc/systemd/system/oracle.serviceを作成する。
[Unit]
Description=Oracle 12c DataBase
[Service]
Type=forking
Environment="ORACLE_HOME=/opt/oracle/product/12.1.0/dbhome_1"
User=oracle
Group=dba
ExecStart=/opt/oracle/product/12.1.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/opt/oracle/product/12.1.0/dbhome_1/bin/dbshut $ORACLE_HOME
TimeoutSec=360
[Install]
WantedBy=multi-user.target
作成した内容を以下のコマンドで反映する。
# systemctl daemon-reload
# systemctl enable oracle
一旦終了
インスタンスを作った時点でインスタンスが起動しているのでsqlplusの確認ついでにインスタンスをシャットダウンします。
$ /opt/oracle/product/12.1.0/dbhome_1/bin/sqlplus / as sysdba
SQL> shutdown immediate
SQL> exit
Oracleの手動開始
systemd経由で開始できるか確認します。rootユーザになって以下のコマンドでOracleを手動開始。
# systemctl start oracle
Oracleの手動停止
systemd経由で停止できるか確認します。rootユーザになってOracleを手動停止。
# systemctl stop oracle
付録:環境変数の一覧
以下の環境変数設定をoracleユーザの~/.bashrcなどに書き込んでおくとコマンドが簡単に実行できて便利。
export ORACLE_HOSTNAME=localhost
export ORACLE_OWNER=oracle
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/12.1.0/dbhome_1
export ORACLE_UNQNAME=orcl
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu:/bin/lib:/lib/x86_64-linux-gnu/:/usr/lib64