VirtualBox : Installing Oracle Database 11g R2 on Enterprise Linux 5.5

20101123_vm-enterpriselinux55db11g_a000

หลังจากได้ลองลง Enterprise Linux บน VirtualBox เป็นที่เรียบร้องแล้วนั้น มาวันนี้จะทำการลง Oracle Database 11g R2 บน Enterprise Linux ใน VirtualBox ดู ส่วนขั้นตอนการติดตั้งก็จะคล้ายๆที่ทำการติดตั้งบนตัวอื่น มีแตกต่างกันนิดหน่อย โดยมีขั้นตอนดังนี้

  • Pre-Installing Oracle Database 11g R2
  • Installing Oracle Database 11g R2
  • Post-Installing Oracle Database 11g R2
  • Testing Oracle Database 11g R2

โดยมี Operating System Environment กับ Hardware Specification ดังนี้

Environment:

  • Enterprise Linux 5.5 on Oracle VM VirtualBox 3.2.10

Hardware Specification on VirtualBox:

  • CPU : Pentium Core 2 Duo 2 GHz
  • RAM : 2 GB
  • HDD : 500 GB

 

Pre-Installing Oracle Database 11g R2

ก่อนที่จะทำการติดตั้ง Oracle Database 11g R2 ได้นั้น ต้องมีการลง package เพิ่มเติมสำหรับ Enterprise Linux ที่จำเป็นในการติดตั้ง Oracle Database 11g R2 โดยมี package ที่ลงเพิ่มเติมคือ

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

ซึ่ง package ที่ต้องการจะมีอยู่ใน DVD ที่ใช้ติดตั้งอยู่แล้ว ให้เราทำการใส่แผ่น DVD เข้าไปในเครื่อง แล้วเปลี่ยน path เข้าไปในแผ่น DVD โดย “DVD Name” คือชื่อของแผ่น DVD แล้วใช้คำสั่ง rpm ในการติดตั้ง package ทั้งหมดตามที่ต้องการ

[root@odbs ~]# cd /media/"DVD Neme"/Server
[root@odbs ~]# rpm -Uvh binutils-2.*
[root@odbs ~]# rpm -Uvh compat-libstdc++-33*
[root@odbs ~]# rpm -Uvh compat-libstdc++-33*.i386.rpm
[root@odbs ~]# rpm -Uvh elfutils-libelf*
[root@odbs ~]# rpm -Uvh gcc-4.*
[root@odbs ~]# rpm -Uvh gcc-c++-4.*
[root@odbs ~]# rpm -Uvh glibc-2.*
[root@odbs ~]# rpm -Uvh glibc-common-2.*
[root@odbs ~]# rpm -Uvh glibc-devel-2.*
[root@odbs ~]# rpm -Uvh glibc-headers-2.*
[root@odbs ~]# rpm -Uvh ksh*
[root@odbs ~]# rpm -Uvh libaio-0.*
[root@odbs ~]# rpm -Uvh libaio-devel-0.*
[root@odbs ~]# rpm -Uvh libgomp-4.*
[root@odbs ~]# rpm -Uvh libgcc-4.*
[root@odbs ~]# rpm -Uvh libstdc++-4.*
[root@odbs ~]# rpm -Uvh libstdc++-devel-4.*
[root@odbs ~]# rpm -Uvh make-3.*
[root@odbs ~]# rpm -Uvh sysstat-7.*
[root@odbs ~]# rpm -Uvh unixODBC-2.*
[root@odbs ~]# rpm -Uvh unixODBC-devel-2.*

เมื่อลง package ที่จำเป็นสำหรับการติดตั้ง Oracle Database 11g แล้ว ต่อมาเราต้องสร้าง Oracle Groups and User Account

[root@odbs ~]# /usr/sbin/groupadd oinstall
[root@odbs ~]# /usr/sbin/groupadd dba
[root@odbs ~]# /usr/sbin/groupadd oper
[root@odbs ~]# /usr/sbin/useradd -g oinstall -G dba,oper oracle
[root@odbs ~]# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper)
[root@odbs ~]#

เมื่อสร้าง Oracle User Account แล้วเราก็ต้องตั้ง password สำหรับ Oracle User Account นั้นด้วย

[root@odbs ~]# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@odbs ~]#

สร้าง Directory ที่จะให้โปรแกรมที่จะติดตั้งลง

[root@odbs ~]# mkdir -p /u01/app/
[root@odbs ~]# chown -R oracle:oinstall /u01/app/
[root@odbs ~]# chmod -R 775 /u01/app/
[root@odbs ~]#

ให้ปรับเปลี่ยนและแก้ไขบาง Linux Kernel Parameters
ให้ไปเปิดไฟล์ /etc/sysctl.conf

[root@odbs ~]# vi /etc/sysctl.conf

แล้วเพิ่ม(ถ้ายังไม่มี)และแก้ไขบรรทัดคำสั่งตามนี้ในไฟล์ /etc/sysctl.conf

# Added for ORACLE DATABASE 11g R2
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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 = 1048586

เมื่อเพิ่มและทำการจัดเก็บเรียบร้อยแล้ว เราจำเป็นต้อง reboot ระบบหรืออาจจะใช้คำสั่ง “sysctl -p” เพื่อจะให้มีผล

[root@odbs ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586
[root@odbs ~]#

ปรับเปลี่ยนและแก้ไขบาง Shell Limits สำหรับ oracle User

ให้ไปเปิดไฟล์ /etc/security/limits.conf

[root@odbs ~]# vi /etc/security/limits.conf

แล้วเพิ่ม(ถ้ายังไม่มี)และแก้ไขบรรทัดคำสั่งตามนี้ในไฟล์ /etc/security/limits.conf

# Added for ORACLE DATABASE 11g R2
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

ให้ไปเปิดไฟล์ /etc/pam.d/login

[root@odbs ~]# vi /etc/pam.d/login

แล้วเพิ่ม(ถ้ายังไม่มี)และแก้ไขบรรทัดคำสั่งตามนี้ในไฟล์ /etc/pam.d/login

# Added for ORACLE DATABASE 11g R2
session required pam_limits.so

ให้ไปเปิดไฟล์ /etc/profile

[root@odbs ~]# vi /etc/profile

แล้วเพิ่ม(ถ้ายังไม่มี)และแก้ไขบรรทัดคำสั่งตามนี้ในไฟล์ /etc/profile

# Added for ORACLE DATABASE 11g R2
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

ให้ Login เป็น root แล้วใช้คำสั่งทำตามนี้

[root@odbs ~]# xhost odbs.indivizone.com
odbs.indivizone.com being added to access control list
[root@odbs ~]#

ก่อนที่จะไปยังขั้นตอนถัดไป เราจะกำหนดให้ oracle user สามารถ run คำสั่ง sudo ได้ โดยเริ่มจากคำสั่งนี้

[root@odbs ~]# su --login -c 'visudo'

ระบบจะเปิด vi editor ขึ้นมาให้ แล้วให้ไปเพิ่ม oracle ALL=(ALL) NOPASSWD: ALL ถัดจากบรรทัด root ALL=(ALL) ALL ดังข้างล่าง

...
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
oracle ALL=(ALL) NOPASSWD: ALL
...

เมื่อแก้ไขและเก็บข้อมูลเรียบร้อยออกมาแล้ว ให้ลองทดสอบดู

[root@odbs ~]# su - oracle
[oracle@odbs ~]$ sudo whoami
root
[oracle@odbs ~]$ whoami
oracle
[oracle@odbs ~]$ exit
logout
[root@odbs ~]#

ให้เปลี่ยน login user จาก root เป็น oracle user แล้วลองดูว่าใช้ shell อะไรอยู่

[oracle@odbs ~]$ echo $SHELL
/bin/bash
[oracle@odbs ~]$

ถ้าตามที่แสดงข้างบนให้เปิดไฟล์ .bash_profile

[oracle@odbs ~]$ vi .bash_profile

แล้วเพิ่มบรรทัดคำสั่งนี้ในไฟล์ .bash_profile ตามนี้

# Added for Oracle Database 11g R2
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_SID=e55db01; export ORACLE_SID

เมื่อแก้ไขและเก็บข้อมูลเรียบร้อยออกมาแล้ว ให้เราสร้าง(ถ้ายังไม่มี) Temp Directory ตามที่เราเพิ่มเข้าไปในไฟล์ .bash_profile

[oracle@odbs ~]$ sudo mkdir /tmp
[oracle@odbs ~]$ sudo chmod a+wr /tmp
[oracle@odbs ~]$

สุดท้ายก่อนที่จะไปยังขั้นตอนการติดตั้ง ให้เราทดสอบให้แน่ใจอีกครั้งด้วยคำสั่ง

[oracle@odbs ~]$ umask
0022
[oracle@odbs ~]$ env | more
HOSTNAME=odbs.indivizone.com
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
TMPDIR=/tmp
USER=oracle
...
ORACLE_SID=e55db01
ORACLE_BASE=/u01/app/oracle
PWD=/home/oracle
LANG=en_US.UTF-8
HOME=/home/oracle
TMP=/tmp
DISPLAY=:0.0
[oracle@odbs ~]$

ถ้าทุกอย่างเรียบร้อยแล้ว เราก็จะไปยังขั้นตอนถัดไป…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s