Oracle 12c をRHEL7.3にサイレントインストール
Oracleの構築はいろいろと面倒ですが、OEMがあればGUIでそこそこ簡単に構築できます。しかし、実際の業務サーバはGUIが使えない環境でせざるを得ないことが多く、その都度苦労するのもなんなんで、サイレントインストールの仕方をメモしておきます。
環境:VMWare上のRed Hat Enterprise Linux 7.3
OSのインストールオプション:最小(X-Windowはありません)
RHELのインストールは完了し、SELinuxやFirewalldは停止しているという前提です。
なお、Oracleはソフトウェア領域だけでもかなりのディスクを消費します。一時的にインストーラzipなども配置しますので、ルートパーティションに50GBくらいはあったほうがいいです。データのパーティションは、要件に合わせて別ディスクに領域を確保するのが普通です。
いつものごとく、赤字がコマンドです。
1.事前に必要なパッケージインストール
必要なパッケージはOracleのマニュアルにも記載はあるのですが、RHELやCentOSのバージョンによって細かいところは異なります。ここでは前提通り、RHEL7.3を最小インストールした前提で、記載します。このインストールはroot作業で行います。
yum -y install binutils compat-libcap1 gcc gcc-c++ ksh ibXtst libX11 libxcb libXi make sysstat zip unzip
2.カーネルメモリ設定変更
cd /etc
cp -p sysctl.conf sysctl.conf.org
vi sysctl.conf
以下の内容を追加します。
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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 -p
3.ユーザ・グループ追加
必要なグループを追加します。
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 backupdba
groupadd -g 54324 oper
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 racdba
oracleユーザを追加します。
useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba -d /home/oracle oracle
oracleユーザのパスワードを設定しておきましょう。
passwd oracle
4.ディレクトリ作成
インストール先のディレクトリ、DBデータを格納するディレクトリを準備しておきましょう。ここでは、/u01/app/以下にOracle本体を、/data以下にデータを格納する前提で記載しています。
mkdir -p /u01/app/oracle
chown oracle:oinstall /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01
mkdir /data
chown oracle.oinstall /data
5.ファイルディスクリプタ制限の設定
ファイルオープン数の上限を変更します。
cd /etc/security/
cp -p limits.conf limits.conf.org
vi 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
6.インストール
インストールは、上で作ったoracleユーザで実行します。
su - oracle
mkdir install
linuxx64_12201_database.zipをOracleサイトから入手し/home/oracle/install直下に配置し、展開します。
cd install
unzip linuxx64_12201_database.zip
インストール用のrspファイルを準備します。
cp -p database/response/db_install.rsp oracle_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=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=dba
DECLINE_SECURITY_UPDATES=true
編集したら、インストーラを起動。
database/runInstaller -ignoreSysPrereqs -waitforcompletion -silent -responseFile /home/oracle/install/oracle_install.rsp
インストールが完了したら、次はroot権限の後作業が待っています。
su -l
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.1.0/db_1/root.sh
これでインストールは完了です。次はDB構築。
7.DB構築
oracleで作業します。
su - oracle
vi ~/.bashrc
以下のようにシェル設定に環境変数を設定し、読み込んでおきます。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=${ORACLE_BASE}/product/12.1.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_SID=orcl
export NLS_LANG=Japanese_japan.ja16euctilde
export LC_ALL=ja_JP.utf8
source ~/.bashrc
データベース作成コマンドを実行します。パスワードは適当な文字列に変更してください。
dbca -silent -createDatabase -templateName New_Database.dbt -gdbName orcl -sid orcl -sysPassword パスワード -systemPassword パスワード -datafileDestination /data -recoveryAreaDestination $ORACLE_BASE/recovery_area -characterSet "JA16EUCTILDE" -nationalCharacterSet "AL16UTF16"
どえらい時間かかります。最速マシンでも1.5時間くらい。遅いマシンなら数時間かかるかも。
コマンドが正常に完了していたら、その時点ですでにインスタンス軌道までされています。試しに接続してみます。
sqlplus sys as sysdba
いったん停止しましょう。
SQL> shutdown immediate
起動しましょう。
SQL> startup
Total System Global Area 763363328 bytes
Fixed Size 8625368 bytes
Variable Size 595591976 bytes
Database Buffers 155189248 bytes
Redo Buffers 3956736 bytes
データベースがマウントされました。
データベースがオープンされました。
リスナも起動しましょう。
SQL> quit
lsnrctl start
これで、外からアクセスできる状態になります。
ではでは。今回はこれまで。