仮想マシンで作ってみた。
cpuは1cpu/1coreでメモリーは8GBとして、HDDはOSに1台(16GB)、
ORACLEのシステムに1台(8GB)、ORACLEのデータに2台(16GB)を用意してみた。
OS部分のHDDは/bootに512MB、スワップに8GB、残り7.6GBを/(root)に割り当てた。
ホスト名は o.chaperone.jp として固定IPを付与している。
OSはCentOS6で「CentOS-6.4-x86_64-minimal.iso」を使用。

X環境なしで作ってます。
目的のORACLEのSIDはAERSとして、
ORACLE_BASEは/opt/oracle
ORACLE_HOMEは/opt/oracle/product/11.2/dbhome_1とする
minimalでOS環境を作った後、selinuxは「SELINUX=disabled」として、iptablesは停止。
[root@o ~]# vi /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
[root@o ~]# chkconfig iptables off
[root@o ~]# chkconfig ip6tables off
[root@o ~]#
[root@o ~]# fdisk /dev/sd[bcd] *パーティション作成
[root@o ~]# mkfs /dev/sd[bcd]1 *フォーマット
[root@o ~]# vi /etc/fstab
(中略)
/dev/sdb1 /opt ext4 defaults 0 0
/dev/sdc1 /o1 ext4 defaults 0 0
/dev/sdd1 /o2 ext4 defaults 0 0
[root@o ~]# mkdir /o1 /o2; mount -a
[root@o ~]# yum update; reboot *一旦再起動ORACLEを稼働させるユーザ・グループの作成。groupadd、guseraddのオプション-rはsystem accountとして作成させるため。あまり意味はない。
[root@o ~]# groupadd -r oinstall
[root@o ~]# groupadd -r dba
[root@o ~]# groupadd -r oracle
[root@o ~]# groupadd -r oper
[root@o ~]# useradd -r -g oinstall -G dba,oper -d /home/oracle -m oracle
[root@o ~]# vi ~oracle/.bash_profile *環境変数を追加
(中略)
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/11.2/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_UNQNAME=AERS *OracleEnterpriseManager向け
[root@o ~]# mkdir /opt/oracle; chown oracle:oinstall /opt/oracle; chmod -R 755 /opt/oracle*注意:ユーザoracleのホームディレクトリ(/home/oracle)とは違う場所にoracleアプリケーションをインストールします
今回はダウンロードした評価版。zipファイル2枚組。これを/opt/srcに配置させ、解凍
[root@o ~]# mkdir /opt/src
[root@o ~]# (copy linux.x64_11gR2_database_1[2]of2.zip to /opt/src)
[root@o ~]# ls /opt/src
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
[root@o ~]# cd /opt/src
[root@o src]# unzip -q linux.x64_11gR2_database_1of2.zip *yum install unzipが必要だった
[root@o src]# unzip -q linux.x64_11gR2_database_2of2.zip
[root@o src]# rm linux.x64_11gR2_database_*
[root@o src]# ls
database
[root@o src]# chown -R oracle:oinstall ./database[root@o ~]# cat <<__EOF__> /etc/oraInst.loc
inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall
__EOF__
[root@o ~]#
[root@o ~]# chown oracle:oinstall /etc/oraInst.loc
[root@o ~]# chmod 664 /etc/oraInst.loc[root@o ~]# mkdir -p /o1/oradata; chown oracle:oinstall /o1/oradata
[root@o ~]# mkdir -p /o2/oradata; chown oracle:oinstall /o2/oradata[root@o ~]# yum groupinstall "Development tools"
[root@o ~]# yum install compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static libaio-devel \
sysstat unixODBC unixODBC-devel \
libaio.i686 libaio-devel.i686 glibc.i686 compat-libstdc++-33.i686 libgcc.i686 \
libstdc++.i686 unixODBC.i686 unixODBC-devel.i686 wget
[root@o ~]#あとkshのpdkshが必要なのだがcentos6では提供されていない。なので、rpm rebuldにて作成
[root@o ~]# wget http://vault.centos.org/5.9/os/SRPMS/pdksh-5.2.14-37.el5_8.1.src.rpm
[root@o ~]# rpmbuild --rebuild pdksh-5.2.14-37.el5_8.1.src.rpm
[root@o ~]# yum localinstall rpmbuild/RPMS/x86_64/pdksh-5.2.14-37.el6.1.x86_64.rpmoracleユーザのリソース制限を調整として、/etc/security/limits.confに下記を追加
[root@o ~]# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536kernelパラメータの調整として、/etc/sysctl.confに下記を追加
[root@o ~]# vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128 *「semmsl semmns semopm semmni」の順。従来値 kernel.sem = 250 32000 32 128
fs.file-max = 6815744 *従来値 fs.file-max = 798843 (798,843 から 6,815,744 へ)
net.ipv4.ip_local_port_range = 9000 65500 *使えるport範囲。従来値 net.ipv4.ip_local_port_range = 32768 61000
net.core.rmem_default = 262144 *受信ソケットバッファの既定サイズ 従来値 net.core.rmem_default = 229376
net.core.rmem_max = 4194304 *受信ソケットバッファの最大サイズ 従来値 net.core.rmem_max = 229376
net.core.wmem_default = 262144 *送信ソケットバッファの既定サイズ 従来値 net.core.wmem_default = 229376
net.core.wmem_max = 1048576 *送信ソケットバッファの最大サイズ 従来値 net.core.wmem_max = 229376
fs.aio-max-nr = 1048576 *非同期IOの最大値 従来値 fs.aio-max-nr = 65536ここはX環境、GUI環境なしでORACLEのインストールを試みている。っで、GUIなしにインストールするには
GUI画面内で問われる値を予め書いたレスポンスファイルを用意して、コマンドラインでインストールする形になる。
[root@o ~]# su - oracle
[oracle@o ~]$ cp /opt/src/database/response/*.rsp /tmp
[oracle@o ~]$ vi /tmp/db_install.rsp/tmp/db_install.rspファイルの調整箇所
oracle.install.option=INSTALL_DB_SWONLY *ORACLEアプリケーションのみのインストールします
ORACLE_HOSTNAME=o.chaperone.jp
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
SELECTED_LANGUAGES=ja,en
ORACLE_HOME=/opt/oracle/product/11.2/dbhome_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=SE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents= *不要なコンポーネントは削除
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
[root@o ~]# su - oracle
[oracle@o ~]$ /opt/src/database/runInstaller -silent -responseFile /tmp/db_install.rsp実行後すぐにプロンプトが返ってくるので失敗かな?っと思うのだが、間もなく
/opt/oracle/oraInventory/logs/にあるログを見てねと言われる。それを読むとインストール要件的に不足している箇所を知らせてくれる。これを読んで再調整すればいいのかと。だが、libaioでi386版を入れてねと言われるのだが、i686として32bit版は入れている。実際のファイルを読んで確認しているのではなく、yumのコンテンツカタログを見ているのかも。。。
ともあれ、最終的には下記のような指示がでる。
次の構成スクリプトは、rootユーザーとして実行する必要があります。
#!/bin/sh
#実行するrootスクリプト
/opt/oracle/product/11.2/dbhome_1/root.sh
構成スクリプトを実行するには、次のようにします:
1. ターミナル・ウィンドウを開きます
2. rootとしてログインします
3. スクリプトを実行します
4. このウィンドウに戻り、[Enter]キーを押して続行します
Successfully Setup Software.この文書の通り、rootでスクリプトを実行してインストール作業は完了。
[root@o ~]# /opt/oracle/product/11.2/dbhome_1/root.sh
Check /opt/oracle/product/11.2/dbhome_1/install/root_o.chaperone.jp_2013-08-24_11-25-56.log for the output of root script
[root@o ~]#次に、リスナー設定、およびインスタンスの作成になる。
netcaコマンドを使ってGUIから設定した方がいいかも。
一応コマンドラインからも設定ができてレスポンスファイル /tmp/netca.rsp を調整して、、が調整せず、そのままでも行ける。
[oracle@o ~]$ grep -i '=' /tmp/netca.rsp |grep -v '#'
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM"
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
[oracle@o ~]$
[oracle@o ~]$ ls -CF $ORACLE_HOME/network/admin/
samples/ shrept.lst
[oracle@o ~]$そして、netcaコマンドを使ってリスナー作成と共に実行。
[oracle@o ~]$ netca /silent /responsefile /tmp/netca.rsp *-silent -responsefileではなく/silent /responsefileであるとに留意
コマンドライン引数の解析:
パラメータ "silent" = true
パラメータ "responsefile" = /tmp/netca.rsp
コマンドライン引数の解析が終了しました。
Oracle Net Servicesの構成:
プロファイルの構成が完了しました。
Oracle Net Listenerの起動:
リスナーの制御の実行:
/opt/oracle/product/11.2/dbhome_1/bin/lsnrctl start LISTENER
リスナーの制御が完了しました。
リスナーの起動に成功しました。
リスナーの構成が完了しました。
Oracle Net Servicesの構成に成功しました。終了コードは次のとおりです。0
[oracle@o ~]$
[oracle@o ~]$ ls -CF $ORACLE_HOME/network/admin/
listener.ora samples/ shrept.lst sqlnet.ora
[oracle@o ~]$となる。
一方で、 listener.ora ファイルを直接書いて起動させてもOK
[oracle@o ~]$ cat <<__EOF__> $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=o)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))
)
__EOF__注意:listener.oraはインデントに注目。インデントが少ないとリスナーが起動しない
っでリスナーを動かす。
[oracle@o ~]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 24-AUG-2013 17:53:49
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /opt/oracle/product/11.2/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /opt/oracle/product/11.2/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/o/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=o.chaperone.jp)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=o)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 24-AUG-2013 17:53:50
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/11.2/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/o/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=o.chaperone.jp)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
The listener supports no services
The command completed successfully
[oracle@o ~]$最後にデータベースを作る訳であるが、簡単にdbcaでGUI画面からの方が楽。Xサーバが利用できるのなら、X画面を飛ばして実行すべきかも。
でも、やっぱりここではコマンドラインから実施を試みる。
調整するファイルはテンプレートファイルのみ。レスポンスファイル/tmp/dbca.rspも調整すべきかもしれないが、コマンドラインで指定可能なので使わなかった。
[oracle@o ~]$ cd $ORACLE_HOME/assistants/dbca/templates
[oracle@o templates]$ cp Data_Warehouse.dbc AERS.dbc
[oracle@o templates]$ vi AERS.dbcInitParamAttributes
InitParams
initParam | name="control_files" values="'/o1/oradata/AERS/control01.ctl','/o2/oradata/AERS/control02.ctl'"
StorageAttributes
DataFiles | Tablespace="SYSTEM" | /o1/oradata/AERS/system01.dbf
DataFiles | Tablespace="SYSAUX" | /o1/oradata/AERS/sysaux01.dbf
DataFiles | Tablespace="UNDOTBS1" | /o1/oradata/AERS/undotbs01.dbf
DataFiles | Tablespace="USERS" | /o1/oradata/AERS/users01.dbf
TempFiles | Tablespace="TEMP" | /o1/oradata/AERS/temp01.dbf
ControlfileAttributes | name="control01.ctl" | filepath="/o1/oradata/AERS/"
ControlfileAttributes | name="control02.ctl" | filepath="/o2/oradata/AERS/"
RedoLogGroupAttributes id=1
<member ordinal="0" memberName="redo01.log" filepath="/o1/oradata/AERS/"/>
<member ordinal="1" memberName="redo11.log" filepath="/o2/oradata/AERS/"/>
RedoLogGroupAttributes id=2
<member ordinal="0" memberName="redo02.log" filepath="/o1/oradata/AERS/"/>
<member ordinal="1" memberName="redo12.log" filepath="/o2/oradata/AERS/"/>
RedoLogGroupAttributes id=3
<member ordinal="0" memberName="redo03.log" filepath="/o1/oradata/AERS/"/>
<member ordinal="1" memberName="redo13.log" filepath="/o1/oradata/AERS/"/>そして、データベース作成へ
[oracle@o ~]$ dbca -silent -createDatabase -templateName AERS.dbc \
-gdbname AERS -sid AERS -responseFile NO_VALUE \
-characterSet AL32UTF8 -nationalCharacterSet AL16UTF16 \
-memoryPercentage 30 -emConfiguration LOCAL \
-sysPassword SYS \
-systemPassword SYSTEM \
-dbsnmpPassword DBSNMP \
-sysmanPassword SYSMAN
データベース・ファイルのコピー中
1%完了
3%完了
37%完了
Oracleインスタンスの作成および起動中
40%完了
45%完了
50%完了
55%完了
56%完了
60%完了
62%完了
データベース作成の完了
66%完了
70%完了
73%完了
85%完了
96%完了
100%完了
詳細はログ・ファイル"/opt/oracle/cfgtoollogs/dbca/AERS/AERS.log"を参照してください。
[oracle@o ~]$
[oracle@o ~]$ tail /opt/oracle/cfgtoollogs/dbca/AERS/AERS.log
DBCA_PROGRESS : 85%
DBCA_PROGRESS : 96%
DBCA_PROGRESS : 100%
データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください:
/opt/oracle/cfgtoollogs/dbca/AERS。
データベース情報:
グローバル・データベース名:AERS
システム識別子(SID):AERSDatabase ControlのURLはhttps://o.chaperone.jp:1158/emです
管理リポジトリは、Enterprise Managerデータが暗号化されるセキュア・モードで配置されています。
暗号化キーはファイル/opt/oracle/product/11.2/dbhome_1/o.chaperone.jp_AERS/sysman/config/emkey.oraに配置されています。
このファイルが失われると暗号化データを使用できなくなるため 、このファイルは必ずバックアップしてください。
[oracle@o ~]$まず、/etc/oratabを調整
[oracle@o ~]$ vi /etc/oratab
AERS:/opt/oracle/product/11.2/dbhome_1:Y
[oracle@o ~]$として、、、、あれぇ?起動スクリプトが見当たらない.....
/database/doc/server.112/e10839/strt_stp.htmにそれらしきことはあるのだが、、、基本databaseのみリスナーやOEMについて言及はない。
なので自作
[root@o ~]# vi /etc/init.d/oratab
#!/bin/bash
#
# dbora Startup script for the ORACLE database
#
# chkconfig: 35 85 15
#
export ORACLE_HOME=/opt/oracle/product/11.2/dbhome_1
ORA_OWNER=oracle
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
start)
# Start the Oracle databases:
echo "start database"
su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
# Start emctl
echo ""
echo "start OEM"
su - $ORA_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/dbora
;;
stop)
# Stop the Oracle databases:
echo "stop database"
su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
# Stop emctl
echo ""
echo "stop OEM"
su - $ORA_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/dbora
;;
restart)
$0 stop
$0 start
;;
status)
if [ -f /var/lock/subsys/dbora ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "usage: dbora {start|stop|restart|status}"
exit 1
esac
exit 0
[root@o ~]#
[root@o ~]# chmod 755 /etc/init.d/dbora
[root@o ~]# chkconfig --add dbora
[root@o ~]# chkconfig --list dbora
dbora 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@o ~]#っでためしに実行
[root@o ~]# /etc/init.d/dbora start
start database
Processing Database instance "AERS": log file /opt/oracle/product/11.2/dbhome_1/startup.log
start OEM
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://o.chaperone.jp:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control .......... started.
------------------------------------------------------------------
Logs are generated in directory /opt/oracle/product/11.2/dbhome_1/o.chaperone.jp_AERS/sysman/log
[root@o ~]#