4章 Oracleインストール
それでは本章ではOracleインストールするために必要な知識を学んでいきます。
OracleをインストールするためにはOS操作の知識が必須です。
Oracleインストールについて
OSはLinuxをベースにご紹介していきます。
データベースとは違う分野となる箇所がありますが、
分からない部分はその他のサイトでも調べていただければと思います。
今回ご紹介するのはOracle12cの場合のインストールの流れです。
その他のバージョンではまた要件などが異なりますので詳しい情報は
Oracleのマニュアルを参照ください。
ではOracleを構築する為には以下の作業が必要です。
・OSの設定
・Oracleインストール
・データベース作成
OSの前提条件
Oracleをインストールする為のOSの前提条件があります。
細かい内容はマニュアルを参照ください。
Oracleインストールのマニュアル
ディスク領域の要件
まずはインストールする為に必要なディスク容量は以下の通りです。
| インストールタイプ | ディスク領域 
 | 
| Enterprise Edition | 6.4GB 
 | 
Standard Edition | 6.1GB 
 | Standard Edion One | 6.1GB 
 | Standard Edition 2 | 6.1GB 
 | 
インストールタイプでCPUのコア数や使用できる機能が異なります。
どのタイプでも空き領域が7GBあれば問題ないでしょう。
また一時ディレクトリのディスク領域(/tmp)は1GB必要です。
メモリ要件
サーバのメモリ要件は最小で1GB,推奨は2GB以上です。
またスワップ領域は以下の通りとなります。
| 物理メモリ | スワップ領域 
 | 
| 1-2GB | 物理メモリの1.5倍のサイズ 
 | 
| 2-16GB | 物理メモリと同様のサイズ 
 | 
| 16GB超 | 16GB 
 | 
OS要件
次にOracleでサポートされているLinuxのバージョンですが、
12cでは以下のOSバージョンがサポートされています。
・x86-64でサポートされるOracle Linux 7およびRed Hat Enterprise Linux 7
・x86-64でサポートされているOracle Linux 6およびRed Hat Enterprise Linux 6
・x86-64でサポートされているOracle Linux 5およびRed Hat Enterprise Linux 5
・x86-64でサポートされているSUSEのディストリビューション
Linux 7を使用する場合、Oracle Database 12cリリース1 (12.1.0.2)以降、
Oracle Linux 7およびRed Hat Enterprise Linux 7はLinux x86-64システムで
サポートされます。
パッケージ要件
OSの必要なパッケージはOSのバージョンごとに異なり、
今後変更になる可能性もありますので、
Oracleのマニュアルを参照ください。
Linux 6 x86 64bitでは次のパッケージ(またはそれ以降のバージョン)が
インストールされている必要があります。
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (i686)
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (i686)
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (i686)
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6 (i686)
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6 (i686)
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6 (i686)
libXext-1.1 (x86_64)
libXext-1.1 (i686)
libXtst-1.0.99.2 (x86_64)
libXtst-1.0.99.2 (i686)
libX11-1.3 (x86_64)
libX11-1.3 (i686)
libXau-1.0.5 (x86_64)
libXau-1.0.5 (i686)
libxcb-1.5 (x86_64)
libxcb-1.5 (i686)
libXi-1.3 (x86_64)
libXi-1.3 (i686)
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
上記パッケージをインストールする必要があります。
Linuxではrpmコマンドを使用して上記パッケージをインストールしたり、
インストールされているか確認できます。
  パッケージのインストール
  # rpm -ihv
パッケージの管理はrpmコマンドを使用します。
iオプションはインストールするときのオプションです。
hオプションはインストールの進捗情報を表示するオプションです。
vは詳細情報を表示するオプションです。
  インストール済みのパッケージ一覧
  # rpm -qa
対象のパッケージだけを検索したい場合は、パイプで対応します。
  インストール済みのパッケージ一覧から検索
  # rpm -qa | grep binutils
上記の場合、インストール済みのパッケージの中でbinutils
という文字列のパッケージのみ表示します。
パッケージはLinuxのインストールCDに入っていますので、
そこからインストールしてください。
Oracle用のディレクトリ作成
次にOracleで必要なディレクトリを作成していきます。
Oracleで必要なディレクトリは以下の通りです。
| ディレクトリタイプ | 説明 | 
| Oracleベース ディレクトリ
 | Oracle製品のベースとなる ディレクトリ
 | 
| Oracleインベントリ ディレクトリ
 | Oracle製品情報を 格納するディレクトリ
 | 
| Oracleホーム ディレクトリ
 | Oracle製品を 格納するディレクトリ
 | 
例えばOracleベースディレクトリは以下を使用します。
$ mkdir -p /u01/app/oracle
例えばOracleインベントリディレクトリは以下を使用します。
$ mkdir -p /u01/app/oraInventory
例えばOracleホームディレクトリは以下を使用します。
$ mkdir -p /u01/app/oracle/product/12.1.0/dbhome_1
また上記ディレクトリはOFA(Oracle Flexible Architecture)に
準拠したディレクトリ構成です。
Oracle Flexible Architecture(OFA)
OFAとはOracleが定めた命名規則です。
例えば上記の様にOracleベースディレクトリは/u01/app/oracleとし、
Oracleホームディレクトリは、/u01/app/oracle/product/12.1.0/dbhome_1
データファイルには.dbfという拡張子、制御ファイルは.ctl,
REDOログファイルは.logと命名規則を決めておくことで、
データベースの構成が統一されどんな人が見てもディレクトリの位置や、
ファイル名などでどんなファイルなのかを判別できるようになります。
詳しいOFAの情報は以下のサイトを参照ください。
Oracle Flexible Architectureのマニュアル
OSユーザ、グループの作成
各ディレクトリを決めたら、Oracleが使用するOSユーザ,グループを
作成していきます。
OSユーザはoracleユーザを作成します。
次にOSグループの作成です。
現在セキュリティ上、一人のユーザに対し全ての権限を
与えることは危険という理由で、各タスクごとのグループがあります。
権限を細分化する場合は、各グループを複数ユーザに付与しますが、
最低限必要なグループはoinstall,dbaです。
OSグループのマニュアル
oinstallグループはOracleインベントリの所有者、
dbaグループはOracle操作を行う為の管理者権限です。
ユーザ作成の例を以下に示します。
  OSグループの作成
  # groupadd dba
  # groupadd oinstall
  
上記例ではgroupaddコマンドでdbaグループとoinstallグループを作成しています。
 ユーザの作成
 # useradd -g oinstall -G dba oracle
 # passwd oracle
 
上記例ではuseraddコマンドでoracleユーザを作成しています。
プライマリグループはoinstallでセカンダリグループにdbaを設定しています。
カーネルパラメータの設定
次にカーネルパラメータの設定です。
カーネルパラメータとはOSの動作を制御するパラメータです。
OS上でOracleを正常に動作するよう、カーネルパラメータを設定します。
実際には本番環境の構成から適切な値を設定する必要がありますが、以下の設定値を設定していれば、そのまま運用が可能です。
  # vi /etc/sysctl.conf
  fs.aio-max-nr = 1048576
  fs.file-max = 6815744
  kernel.shmall = 2097152     物理メモリー・サイズ(ページ数)の40%
  kernel.shmmax = 4294967295  物理メモリー・サイズの半分(バイト)
  kernel.shmmni = 4096
  kernel.sem = 250 32000 100 128
  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 = 1048576
  
上記を追加後、設定値を再読み込みさせます。
環境変数の設定
次にOracleの環境変数を設定します。
環境変数の設定は必須ではありませんが、
設定しておくと作業時に楽になります。
Oracleで設定可能な環境変数は以下の通りです。
| ORACLE_SID | Oracleインスタンス名を設定 
 | 
| ORACLE_BASE | Oracleベースのディレクトリを設定 
 | 
| ORACLE_HOME | Oracle製品のインストールディレクトリを設定 
 | 
| NLS_LANG | データベース接続時に使用する言語や文字コードを設定 
 | 
| LD_LIBRARY_PATH | Oracleのライブラリが格納されるディレクトリを設定 
 | 
| PATH | Oracleで使用するコマンドが格納されているディレクトリを追加設定 
 | 
  # vi /home/oracle/.bash_profile
  
  ORACLE_SID=orcl
  ORACLE_BASE=/u01/app/oracle
  ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
  NLS_LANG=japanese_japan.JA16SJIS
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
  PATH=$PATH:$ORACLE_HOME/bin
  export ORACLE_SID ORACLE_BASE ORACLE_HOME
  export NLS_LANG LD_LIBRARY_PATH PATH
  
以上がOracleインストール前に行う事前作業となります。
今回は概要レベルの紹介となりますが、実際にインストールする際は、
マニュアルも参照の上実施してみてください。