2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Debian GNU/Linux 8.3へのOracle Database 12cインストール

Last updated at Posted at 2016-04-02

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
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?