ablog

不器用で落着きのない技術者のメモ

Oracle Database 11gR2 を CentOS 5.4 にインストールしてみた

構成


以下、構築手順。

仮想マシンを作成する

CentOS 5.4 をインストールする

boot: <enter>
  • To begin testing the CD media before installation press OK... : Skip
  • What language would you like to use during the installation process: English
  • Select the appropriate keyboard for the system: Japanese
  • Installation requires partitioning of your hard drive...: Remove all partitions on selected drives and create default layout.
  • Review and modify partitioning layout: checked
Device Mount Point Type Size(MB)
/dev/sda1 /boot ext3 101
/dev/sda3 swap 2047
/dev/sda2 / ext3 18324
  • The GRUB boot loader will be installed on /dev/sda
Default Label Device
checked CentOS /dev/sda2
  • Network Device
Active on Boot Device IPv4/Netmsk IPv6/Prefix
checked eth0 192.168.45.102 Auto
  • Hostname
    • manually: centos54.ablog.jp
  • Miscellaneous Settings
  • Please click into the map to choose a region: Asia/Tokyo
  • System clock uses UTC: checked
  • Root Password: root123
  • Firewall: Disabled
  • SELinux Setting: Disabled
  • Enable Netowrk Time Protocol: checked
  • Create User
    • Username: neo
    • Password: matrix

Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86 をインストールする

ハードウェア要件の確認
  • 物理RAMが1024MB以上あることを確認する。
# grep MemTotal /proc/meminfo
MemTotal:      1035140 kB
  • スワップ領域が物理RAMのサイズの1.5倍以上であることを確認する。
# grep SwapTotal /proc/meminfo
SwapTotal:     2096472 kB
  • ディスクの空き容量を確認する。
    • /tmp に400MB以上の空き領域があることを確認する。
    • Oracleソフトウェアのインストール先に3.95GB以上の空き領域があることを確認する。
    • Oracleデータベースの作成先に1.7GB以上の空き領域があることを確認する。
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  2.6G   14G  16% /
/dev/sda1              99M   12M   83M  12% /boot
tmpfs                 506M     0  506M   0% /dev/shm
# grep "model name" /proc/cpuinfo
model name	: Intel(R) Core(TM)2 Duo CPU     L9400  @ 1.86GHz
# uname -m
i686
ソフトウェア要件の確認
# cat /proc/version 
Linux version 2.6.18-164.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Thu Sep 3 03:33:56 EDT 2009
# lsb_release -id
Distributor ID:	CentOS
Description:	CentOS release 5.4 (Final)
  • カーネルのバージョンが 2.6.18-8 以上であることを確認する。
# uname -r
2.6.18-164.el5
  • SELinuxが無効(Disabled)であることを確認する。
# getenforce
Disabled
  • 以下のパッケージがインストールされていることを確認する。
    • binutils-2.17.50.0.6
    • compat-libstdc++-33-3.2.3
    • elfutils-libelf-0.125
    • elfutils-libelf-devel-0.125
    • elfutils-libelf-devel-static-0.125
    • gcc-4.1.2
    • gcc-c++-4.1.2
    • glibc-2.5-24
    • glibc-common-2.5
    • glibc-devel-2.5
    • glibc-headers-2.5
    • kernel-headers-2.6.18
    • ksh-20060214
    • libaio-0.3.106
    • libaio-devel-0.3.106
    • libgcc-4.1.2
    • libgomp-4.1.2
    • libstdc++-4.1.2
    • libstdc++-devel-4.1.2
    • make-3.81
    • sysstat-7.0.2
    • unixODBC-2.2.11
    • unixODBC-devel-2.2.11
# rpm -qa --queryformat "%{name}-%{version}-%{release}.%{arch}\n"|egrep "binutils|compat-libstdc++|elfutils-libelf|elfutils-libelf-devel|gcc|glibc|libaio|libgcc|libstdc++|make|sysstat|unixODBC|kernel-headers|ksh|libgomp|"|sort
  • rpm をインストールする。
# mount -r -t iso9660 /dev/cdrom /media
# cd /media/CentOS
# rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm 
# rpm -ivh elfutils-libelf-0.137-3.el5.i386.rpm
# rpm -ivh elfutils-libelf-devel-static-0.137-3.el5.i386.rpm elfutils-libelf-devel-0.137-3.el5.i386.rpm 
# rpm -ivh glibc-2.5-42.i386.rpm 
# rpm -ivh kernel-headers-2.6.18-164.el5.i386.rpm 
# rpm -ivh ksh-20080202-14.el5.i386.rpm 
# rpm -ivh libaio-devel-0.3.106-3.2.i386.rpm 
# rpm -ivh libgomp-4.4.0-6.el5.i386.rpm 
# rpm -ivh libstdc++-devel-4.1.2-46.el5.i386.rpm 
# rpm -ivh sysstat-7.0.2-3.el5.i386.rpm 
# rpm -ivh unixODBC-2.2.11-7.1.i386.rpm 
# rpm -ivh unixODBC-devel-2.2.11-7.1.i386.rpm 
# rpm -ivh glibc-headers-2.5-42.i386.rpm 
# rpm -ivh glibc-devel-2.5-42.i386.rpm
# rpm -ivh gcc-4.1.2-46.el5.i386.rpm 
# rpm -ivh gcc-c++-4.1.2-46.el5.i386.rpm 
# rpm -ivh pdksh-5.2.14-36.el5.i386.rpm 
# cd /; umount /media
  • oracle ユーザ・グループの作成
# groupadd -g 501 oinstall
# groupadd -g 502 dba
# groupadd -g 503 oper
# useradd -u 501 -g oinstall -G dba,oper oracle
# passwd oracle
  • oracle ユーザのシェルの制限の設定
# vi /etc/security/limits.conf
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
  • /etc/pam.d/login ファイルに以下の通り記述する。
# vi /etc/pam.d/login
session    required     pam_limits.so
  • /etc/profileに以下の指定を追記する。
# vi /etc/profile
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
umask 022
fi
# vi /etc/sysctl.conf
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 # 設定値を反映させる
# sysctl -a # 設定値が反映されたていることを確認する。
# mkdir -p /u01/app/oracle 
# chown -R oracle:oinstall /u01/app/oracle 
  • I/O スケジューラを deadline にする。
# vi /boot/grub/grub.conf
         kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet elevator=deadline
  • ディスプレイの解像度を変更する*1
    • root ユーザで gnome にログインする。
    • [System]-[Administration]-[Display]-[Hardware]-[Monitor Type]-[Generic LCD Display]-[LCD Panel 1024×768] を選択する。
Oracle Database をインストールする
  • oraInst.loc を作成する。
# vi /etc/oraInst.loc
inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall
# chown oracle:oinstall /etc/oraInst.loc
# chmod 664 /etc/oraInst.loc
# su - oracle
$ mkdir -p ~/software/oracle11gR2_linux # ← ここにインストーラをおく
$ cd ~/software/oracle11gR2_linux
$ ls|xargs -n1 unzip
  • レスポンス・ファイルを作成する
    • [Applications]-[Accessories]-[Terminal] でターミナルを開く。
$ export LANG=C
$ export NLS_LANG=American_America.JA16SJISTILDE
$ cd ~/software/oracle11gR2_linux/database
$ ./runInstaller
    • Email: 何も入力しない
    • I wish to receive security update via My Oracle Support.: チェックを外す
    • Select any of the following install options.: install database software only
    • Select the type of database installation you want to perform.: Single instance database installation
    • Select the language in which your production will run.: English, Japan
    • Which database edition do you want to install?: Enterprise Edition (3.95GB)
    • Oracle Base: /u01/app/oracle
    • Software Location: /u01/app/oracle/product/11.2.0/dbhome_1
    • Database Administrator(OSDBA) Group: dba
    • Database Operator(OSOPER) Group: oper
    • Perform Prerequisite Checks で以下が Fail するが、Ignore All をチェックして進む
      • Physical Memory
      • Swap Size
  • [Save Response File...] を選択する。
    • /home/oracle/software/oracle11gR2_linux/database/response/112010_ee.rsp に保存する。
  • サイレント・モードでインストールする
$ cd /home/oracle/software/oracle11gR2_linux/database
$ export LANG=C
$ export NLS_LANG=American_America.JA16SJISTILDE
$ ./runInstaller -ignoreSysPrereqs -silent -noconfig -responseFile /home/oracle/software/oracle11gR2_linux/database/response/112010_ee.rsp
  • サイレント・モードでインストールしようとしたら、以下のエラーが発生したので、
---# Begin Stacktrace #---------------------------
ID: oracle.install.commons.util.exception.DefaultErrorAdvisor:5766oracle.install.commons.base.driver.common.SetupDriverException: invalid stored block lengths
        at oracle.install.driver.oui.OUISetupDriver.setup(OUISetupDriver.java:467)
        at oracle.install.driver.oui.SetupJob.call(SetupJob.java:166)
        at oracle.install.driver.oui.SetupJob.call(SetupJob.java:47)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
        at java.util.concurrent.FutureTask.run(FutureTask.java:123)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)Caused by: oracle.sysman.oii.oiic.OiicInstallAPIException: invalid stored block lengths
        at oracle.sysman.oii.oiic.OiicAPIInstaller.doOperation(OiicAPIInstaller.java:1016)
        at oracle.sysman.oii.oiic.OiicAPIInstaller.doOperation(OiicAPIInstaller.java:936)
        at oracle.install.driver.oui.OUISetupDriver.setup(OUISetupDriver.java:456)
        ... 7 more
---# End Stacktrace #-----------------------------
  • 対話式でインストール
    • [Applications]-[Accessories]-[Terminal] でターミナルを開く。
$ cd /home/oracle/software/oracle11gR2_linux/database
$ export LANG=C
$ export NLS_LANG=American_America.JA16SJISTILDE
$ ./runInstaller
  • root.sh を実行する
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh 
Enter the full pathname of the local bin directory: [/usr/local/bin]: <enter>
  • oracle ユーザの .bash_profile を編集する。
$ vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export PATH=.:$ORACLE_HOME/bin:$PATH
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=.:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=American_America.JA16SJISTILDE
export ORACLE_SID=orcl
$ . ~/.bash_profile
データベースを作成する
$ dbca
  • Operations: Create Database
  • Database Templates: Custom Database
  • Database Identification
    • Global Database Name: orcl
    • SID: orcl
  • Management Options
    • Configure Enterprise Manager: チェックしない
  • Database Credentials
    • Use the same Administrative Password for All Accounts
      • Password: manager
  • Database File Locations
    • Storage Type: File System
    • Storage Locations: Use Database File Locations for All Database Files
  • Recovery Configuration
    • Specify Flash Recovery Area: チェックしない
    • Enable Archiving: チェックしない
  • Database Components: 全て選択(デフォルト)
  • Initial Parameters
    • Size-Block Size: 4096
    • Character Sets - Database Character Set: JA16SJISTILDE
  • Create Options
    • Create Database: チェックする
    • Save as a Database Template: チェックしない
    • Generate Database Creation Scripts: チェックする

*1:解像度を1024×768 以上にしないと OUI が正常に動作しない