Engineering Note

プログラミングなどの技術的なメモ

Oracle Database 12c Release 2(12.2.0.1)のサイレントインストール

oracle 12c

本記事は、Oracle Database 12c Release 2(12.2.0.1.0)をCentOS7(もしくはRHEL7)にサイレントインストールをするためのメモになります。

環境によってはGUIが用意されていない場合もあり、その際はCUIのみでインストールする必要が生じます。

  

 

事前準備

環境については以下構成で実施します。

 

また以下のOracle公式サイトから今回インストールする12c R2をダウンロードします。

(ダウンロードするには事前にOracleアカウントの作成が必要になります)

 

Oracle Database ソフトウェア・ダウンロード

 

インストール手順

必要なパッケージのインストール

まずはインストールに必要なパッケージのインストールを行います。

なお、以下からの作業はrootユーザで実施します。

 

 > yum -y install \
 binutils \
 compat-libcap1 \
 compat-libstdc++-33.i686 \
 compat-libstdc++-33 \
 gcc-c++ \
 glibc.i686 \
 glibc \
 glibc-devel.i686 \
 glibc-devel \
 ksh \
 libaio.i686 \
 libaio \
 libaio-devel.i686 \
 libaio-devel \
 libgcc.i686 \
 libgcc \
 libstdc++.i686 \
 libstdc++ \
 libstdc++-devel.i686 \
 libstdc++-devel \
 libxcb.i686 \
 libxcb \
 libX11.i686 \
 libX11 \
 libXau.i686 \
 libXau \
 libXi.i686 \
 libXi \
 libXtst.i686 \
 libXtst \
 make \
 net-tools \
 smartmontools \
 sysstat
 unzip

 

カーネルパラメータの設定

Oracle公式の「インストレーション・ガイドfor Linux」では、カーネルパラメータ値を以下のように設定するように記載されています。

 

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

 

以下のコマンドで現在の設定値を確認します。

 

 > sysctl -a | grep [param_name]

 

上記で確認した結果、差異があった個所を以下のsysctl.confに追記します。

 

 # /etc/sysctl.conf
 fs.file-max = 6815744
 fs.aio-max-nr = 1048576
 net.ipv4.ip_local_port_range = 9000    65500
 net.core.rmem_max = 4194304
 net.core.rmem_default = 262144
 net.core.wmem_max = 1048576
 net.core.wmem_default = 262144

 

以下のコマンドでsysctl.confを再読み込みします

 

 > /sbin/sysctl -p

 

リロードが完了したら上記で行った手順で、再度設定値が反映されているか確認をします。

 

 

Oracle Databaseのグループ作成 

オペレーションに必要なグループを作成します。

 

 > groupadd -g 54321 oinstall
 > groupadd -g 54322 dba
 > groupadd -g 54323 oper
 > groupadd -g 54324 backupdba
 > groupadd -g 54325 dgdba
 > groupadd -g 54326 kmdba
 > groupadd -g 54327 racdba

 

Oracle Databaseのユーザ作成

オペレーションに必要なユーザを作成し、同時にパスワードも設定します。

 

 > useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba -d /home/oracle oracle
 > passwd oracle
 > [Enter password]

 

インストール・ディレクトリの作成

今回のインストール先のディレクトリを作成し、同時にパーミッションを設定します。

 

 > mkdir -p /opt/app/oracle
 > chown oracle:oinstall /opt/app/oracle
 > chmod -R 775 /opt/app/oracle

 

インストール・インベントリの準備

今回のインストールに使用するインベントリを作成し、同時にパーミッションを設定します。

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

 

リソース制限の設定

Oracle公式の「インストレーション・ガイドfor Linux」では、リソース制限の推奨値を以下のように設定するように記載されています。

以下のlimits.confに以下を追記します。

 

 # /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

 

ダウンロードファイルの配置

上記でダウンロードしたzipファイルをWinSCPなどで/home/oracle直下に配置し、unzipコマンドで解凍します。

 

 > cd /home/oracle
 > unzip linuxx64_12201_database.zip

 

上記を実行すると、/home/oracle直下にdatabaseというフォルダが作成されます。

 

インストールレスポンスファイルの作成

サイレントインストールに必要なレスポンスファイルを作成します。

既存のレスポンスファイルのバックアップを作成した後に、以下のようにファイルを書き換えます。

 > cp database/response/db_install.rsp database/response/db_install.rsp.org
 > vi database/response/db_install.rsp
 # database/response/db_install.rspの書き換え
 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
 oracle.install.option=INSTALL_DB_SWONLY
 UNIX_GROUP_NAME=oinstall
 INVENTORY_LOCATION=/opt/app/oraInventory
 SELECTED_LANGUAGES=ja,en
 ORACLE_HOME=/opt/app/oracle/product/12.2.0.1/dbhome_1
 ORACLE_BASE=/opt/app/oracle
 oracle.install.db.InstallEdition=EE
 oracle.install.db.DBA_GROUP=dba
 oracle.install.db.OPER_GROUP=oper
 oracle.install.db.BACKUPDBA_GROUP=backupdba
 oracle.install.db.DGDBA_GROUP=dgdba
 oracle.install.db.KMDBA_GROUP=kmdba
 oracle.install.db.OSRACDBA_GROUP=racdba
 DECLINE_SECURITY_UPDATES=true
 COLLECTOR_SUPPORTHUB_URL=AL32UTF8

 

oracleユーザでサイレントインストールを実行

oracleユーザに切り替えて以下コマンドでインストールを開始します。

 

 > su oracle
 > /home/oracle/database/runInstaller -ignoreSysPrereqs -waitforcompletion -silent -responseFile /home/oracle/database/response/db_install.rsp
 
 Oracle Universal Installerを起動中です...

 一時領域の確認中: 500MBを超えている必要があります.   実際 21405MB    問題なし
 スワップ領域の確認中: 150MBを超えている必要があります.   実際 2047MB    問題なし
 Oracle Universal Installerの起動を準備中 /tmp/OraInstall2020-03-13_09-40-04PM. お待ちください...[WARNING] [INS-13014] ターゲット環境は、いくつかのオプションの要件を満たしていません。
    原因: 一部のオプションの前提条件が満たされていません。詳細はログを参照してください。installActions2020-03-13_09-40-04PM.log
    アクション: ログから失敗した前提条件チェックのリストを確認します: installActions2020-03-13_09-40-04PM.log。次に、ログ・ファイルまたはインストレーション・マニュアルのいずれかから、前提条件を満たす適切な構成を見つけ、手動で修正してください。
 このインストール・セッションのログは次の場所にあります:
 /opt/app/oraInventory/logs/installActions2020-03-13_09-40-04PM.log
 Oracle Database 12cのインストールが成功しました。 
 詳細は'/opt/app/oraInventory/logs/silentInstall2020-03-13_09-40-04PM.log'を確認してください。

 rootユーザーとして次のスクリプトを実行します:
         1. /opt/app/oraInventory/orainstRoot.sh
         2. /opt/app/oracle/product/12.2.0.1/dbhome_1/root.sh

 Successfully Setup Software.

 

結構時間を要した後、上記のSuccessfully Setup Software.が表示されれば問題ありません。

 

rootユーザで2つのシェルスクリプトを実行

インストールが完了したら、rootユーザで以下のシェルスクリプトを実行します。

 # 上記の流れならexitでrootに戻る
 > /opt/app/oraInventory/orainstRoot.sh
 > /opt/app/oracle/product/12.2.0.1/dbhome_1/root.sh

 

環境変数の設定

oracleユーザでsqlplusコマンド、dbcaコマンドやlsnrctlコマンドを利用するために環境変数を設定しておきます。

 

 > su oracle
 > vi ~/.bash_profile
 # bash_profileに以下を追記
 export ORACLE_BASE=/opt/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/dbhome_1
 export ORACLE_SID=orcl
 export PATH=$ORACLE_HOME/bin:$PATH
 export LANG=ja_JP.UTF-8
 export NLS_LANG=Japanese_Japan.AL32UTF8

 

以下コマンドでbash_profileを再読み込みします

 

 > source ~/.bash_profile

 

これで一通りのインストール作業が完了しました。

 

最後に

今回はOracle Database 12c Release 2のサイレントインストール方法について学びました。

次回はサイレントモードでのデータベースの作成方法について学んでいきます。