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

20101125_vm-enterpriselinux55client11g_a000

ที่ผ่านมาเราได้ทำการลงตัว Oracle Database ทั้งตัว Enterprise และตัว Express Edition บน Enterprise Linux ที่อยู่ใน VirtualBox แล้วนั้น สามารถใช้งานได้ไม่มีปัญหาอะไร มาในวันนี้จะมาลองลงตัว Oracle Client โดยจะใช้ตัวไฟล์ของ VirtualBox ร่วมกับ Oracle Database 10g Express Edition ว่าแล้วก็เริ่มกันเลย


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

Environment:

  • Enterprise Linux 5.5 on Oracle VM VirtualBox 3.2.10

Hardware Specification on Guest (Enterprise Linux):

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

 

Pre-Installing Oracle Client 11g R2

ก่อนที่จะทำการติดตั้ง Oracle Client 11g R2 ได้นั้น ต้องมีการลง package เพิ่มเติมสำหรับ Enterprise Linux ที่จำเป็นในการติดตั้ง Oracle Client 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@odbx ~]# cd /media/"DVD Neme"/Server
[root@odbx ~]# rpm -Uvh binutils-2.*
[root@odbx ~]# rpm -Uvh compat-libstdc++-33*
[root@odbx ~]# rpm -Uvh compat-libstdc++-33*.i386.rpm
[root@odbx ~]# rpm -Uvh elfutils-libelf*
[root@odbx ~]# rpm -Uvh gcc-4.*
[root@odbx ~]# rpm -Uvh gcc-c++-4.*
[root@odbx ~]# rpm -Uvh glibc-2.*
[root@odbx ~]# rpm -Uvh glibc-common-2.*
[root@odbx ~]# rpm -Uvh glibc-devel-2.*
[root@odbx ~]# rpm -Uvh glibc-headers-2.*
[root@odbx ~]# rpm -Uvh ksh*
[root@odbx ~]# rpm -Uvh libaio-0.*
[root@odbx ~]# rpm -Uvh libaio-devel-0.*
[root@odbx ~]# rpm -Uvh libgomp-4.*
[root@odbx ~]# rpm -Uvh libgcc-4.*
[root@odbx ~]# rpm -Uvh libstdc++-4.*
[root@odbx ~]# rpm -Uvh libstdc++-devel-4.*
[root@odbx ~]# rpm -Uvh make-3.*
[root@odbx ~]# rpm -Uvh sysstat-7.*
[root@odbx ~]# rpm -Uvh unixODBC-2.*
[root@odbx ~]# rpm -Uvh unixODBC-devel-2.*

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

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

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

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

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

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

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

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

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

# Added for ORACLE CLIENT 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@odbx ~]# /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@odbx ~]#

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

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

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

# Added for ORACLE CLIENT 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

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

[root@odbx ~]# 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@odbx ~]# su - oracle
[oracle@odbx ~]$ sudo whoami
root
[oracle@odbx ~]$ whoami
oracle
[oracle@odbx ~]$ exit
logout
[root@odbx ~]#

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

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

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

[oracle@odbx ~]$ vi .bash_profile

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

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

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

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

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

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