Oracle 12c をCent OS 7 へインストールする

Oracle

今回はOracle 12cをCent OS 7 へインストールします。

OracleのインストールはOUI(Oracle Universal Installer)というGUIソフトを使ってインストールするのが一般的です。

また、OUIでのインストール作業の最後でレスポンスファイルを生成できるので、それを保存しておけば、ほかの環境でそれを用いてサイレントインストールを行うこともできます。(RAC構成などの場合に便利)

事前作業

Oracleのインストールには事前に色々と準備をする必要があります。

確認 詳しくは公式ページをご覧ください。

また、以下のような条件は事前に満たすことを確認してください。(仮想マシンでいまから検証環境を作る人は条件を満たすように構成してください。)

ソフトウェアインストール領域:最低6.4GB

メモリ:2GB以上

また、Oracle 12cのインストーラはこちらで入手します。(Linux x86-64をダウンロードしてください)

適当なフォルダで展開しておきましょう。(unzipが必要)

1.前提パッケージのインストール

前提パッケージのインストールを行います。公式ページにもありますが、とりあえずyumでインストールしてしまいましょう。

yum -y install binutils compat-libcap1 gcc gcc-c++ gli bc glibc.i686 glibc-devel glibc.i686 ksh libaio libaio.i686 libaio-devel libaio- devel.i686 libgcc libgcc.i686 libstdc++ libstdc++l7.i686 libstdc++-devel libstdc ++-devel.i686 compat-libstdc++-33 compat-libstdc++-33.i686 libXi libXi.i686 libX tst libXtst.i686 make sysstat

2.swap領域の確保

swap領域を確保します。

手順については割愛しますが、以下のようになっている必要があります。

表:Linux のスワップ領域要件

RAM スワップ領域
1から2GB RAMのサイズの1.5倍
2から16GB RAMのサイズと同じ
16GB超 16GB

3. kernelパラメータの編集

/etc/sysctl.confにviで以下を追加します。

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
fs.aio-max-nr = 1048576
fs.file-max = 6815744

最低これらの記載が必要ですが、RHEL7(CentOS7も?)では透過的なHugePagesの無効化を行う必要があります。

Red Hat Enterprise Linux 7 で transparent hugepages (THP) を無効にする

4.ユーザとグループの作成

インストールユーザとしてoracleを作成します。

まずユーザーを作成します。

# useradd -u 1200 -g oinstall -d /home/oracle oracle # passwd oracle

そして.bash_profileに以下を追記します。

#for OracleDatabase
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=Japanese_Japan.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH

export PATH

次にpamの編集です。/etc/pam.d/loginに以下を追記します。

# vi /etc/pam.d/login

session    required     pam_limits.so

また/etc/security/limits.confに以下を追加します。

# vi /etc/security/limits.conf
oracle  soft  nproc   2047
oracle  hard  nproc   16384
oracle  soft  nofile  1024
oracle  hard  nofile  65536
oracle  soft  stack   10240
oracle  hard  stack   32768

その他のグループを追加して、oracleをグループに加えます。

groupadd -g 1101 oper
groupadd -g 1102 backupdba
groupadd -g 1103 dgdba
groupadd -g 1104 kmdba
usermod -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba oracle

5.ディレクトリ作成

インストールに必要なディレクトリを作成し、パーミッションとオーナーを変更しておきます。

mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app

6.GNOME Desktopインストール

Cent OS 7 を最小限の構成でインストールしている場合は、OracleインストールのためにGnome Desktopをインストールします。

yum groupinstall "GNOME Desktop"

また、日本語表示に対応させるために、/usr/bin/startx に以下を追加します。

vi /usr/bin/startx
LANG=ja_JP.UTF-8

OUIでOracle 12c をインストール

ここまでがなんと事前作業です。

長かったですがいよいよOracle をインストールします。

Gnome Desktopがインストール後にGUIにoracleでログインします。

ランレベルを変更してもよいですが、単純にoracleでログインした後に、startxと打てばGUIが起動します。

ログインしたら「アプリケーション」-「お気に入り」から「端末」をクリックします。

インストーラを展開したフォルダに移動し、runInstallerを起動します。

OUI画面が起動します。今回は12cなので難なく起動していますが、11gだとここで文字化けが発生したりします・・・

その対処法は別の記事に書くとして、先に進めます。

「電子メール」を空白、「セキュリティ・アップデートをMy Oracle Support経由で受け取ります」のチェックを外し「次へ」をクリック。

警告が表示されますが無視して「はい」をクリック

今回は、リスナーやインスタンスの構成は別で行いたいので、「データベース・ソフトウェアのみインストール」を選択し「次へ」をクリック

「単一インスタンス・データベースのインストール」にチェックを入れ、「次へ」をクリック

「Standard Edition 2」を選択し、「次へ」をクリック

oracleユーザの環境変数に設定しているので、何も変更せず「次へ」をクリック

ここも特に変更せずに「次へ」をクリック

ここも変更せずに「次へ」をクリック

ここで、エラーが出てしまいました。実際の業務での構築は無視するわけにはいきませんが、今回は面倒くさいので「すべて無視」にチェックを入れ「次へ」をクリック

案の定警告ポップアップが表示されましたが強行します。「はい」をクリック

ここまで進んだらインストールできるのですが、次の検証で使うかもしれないので、レスポンスファイルを保存しておきます。

「レスポンス・ファイルの保存」をクリック

「保存」をクリックして保存しておきます

というわけで、「インストール」をクリックしてインストールを開始します。

インストールが開始されると、内部的にはmakeコマンドが走り、ファイルが配置されたりフォルダが作成されたりするので、後戻りするならここです。

進行状況95%のところで、ポップアップが表示されました。スクリプトの場所をどこかにメモしておき、「OK」をクリック。

先ほど無視してしまったので、なにやら警告が表示されました。後で直すことにして、「はい」をクリック

Oracle Databaseのインストールが成功しました と表示されたら「閉じる」をクリックしてOUIを閉じます。

事後スクリプト実行

インストールの最後に出てきたスクリプトを実行します。

rootでログインし、先ほどのディレクトリに移動して実行します。

[root@localhost oraInventory]# ./orainstRoot.sh 
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。

グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。

こちらのスクリプトはインストール時の警告を解消してくれるスクリプトのようです。

実はそもそも前提条件のところで、解決可能となっているところはあの時点で修正することもできます。

今度はベースディレクトリに移動して以下のようにスクリプトを実行

※こちらのスクリプトは必ず生成されます

[root@localhost dbhome_1]# ./root.sh 
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/12.2.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : 

Oracle Trace File Analyzer (TFA - User Mode) is available at :
    /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/bin/tfactl

OR

Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script :
    /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh

以上でインストール完了です。

まとめ

お疲れさまでした。

Oracleのインストールは割とOSの知識がある程度必要なように感じます。

Linux初心者の方にこそ勉強のためにOracleのインストールをやってみることをお勧めします。

Oracleの概要理解にオススメの書籍

Oracleの基礎的な概念を理解するのにオススメの書籍です。
Bronze用の対策本などでは解説されない、実際の動作イメージなどを重点的に解説していますので、初学者が読む1冊目として非常にオススメです。

この記事を書いた人

渋谷で働くよわよわエンジニア。TypeScript(Next.js/Node.js)/Golang/AWS/Flutterなど
LINE API Expert(2023/1~)

tokkuをフォローする
オススメ記事
在宅ワークが多くなって、デスクの配線周りに困っている方は、拡張デスクの導入がおすすめです。Windows/MacOS/Linuxの複数の機器をスッキリとデスク周りに収める事ができました!リモートからサーバーメンテを行うインフラエンジニアは必見です!
Oracle
tokkuをフォローする
インフラエンジニアがもがくブログ

コメント

タイトルとURLをコピーしました