Instalasi Oracle 10G di CentOS 5.3


Pengantar

Oracle sebenarnya hanya mendukung beberapa distribusi Linux. Untuk versi 10G, distribusi yang didukung adalah RHEL (RedHat Enterprise Linux), Asianux, SuSE Enterprise, serta Oracle Unbreakable Linux. Posting ini akan menguraikan langkah-langkah instalasi pada CentOS. CentOS adalah sistem operasi yang merupakan turunan dari RHEL. CentOS mempunyai tingkat kompatibiltas 100% dengan UOP (Upstream OS Provider — RHEL). Untuk keperluan instalasi ini akan digunakan versi 5.3 yang berasal dari UOP RHEL 5.3.0.

Instalasi CentOS 5.3

Instalasi CentOS 5.3 tidak dibahas disini tetapi disini hanya akan diuraikan bahwa pada saat instalasi, paket software yang diinstall adalah sebagai berikut:

  • Applications – Editors, Graphical Internet, Text-Based Internet
  • Development – Development Libraries, Development Tools, Legacy Software Development, X Software Development
  • Base System – Administration Tools, Base, Legacy Software Support, System Tools, X Window System.

Setelah selesai instalasi, masih harus diinstal paket libXp-*. Paket-paket tersebut (libXp dan libXp-devel) terdapat pada DVD installer dari CentOS 5.3.

Pada saat instalasi CentOS 5.3, diasumsikan Firewall diaktifkan dengan Trusted Service adalah ssh dan SELINUX diaktifkan.

Membuat Group dan User

Group yang diperlukan adalah dba dan oinstall. User yang akan memiliki instalasi ini adalah oracle dan merupakan anggota group oinstall (group utama) dan dba (group tambahan).

# groupadd dba
# groupadd oinstall
# useradd -g oinstall -d /home/oracle -G dba oracle
# passwd oracle

Konfigurasi Sistem

Edit /etc/sysctl.conf. Isi asli adalah sebagai berikut:

[root@localhost etc]# cat sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456
[root@localhost etc]#

Tambahkan baris-baris berikut di bagian bawah:

fs.file-max=65536
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
net.ipv4.ip_local_port_range=1024 65000

Load lagi nilai-nilai yang telah ditetapkan di atas:

# sysctl -p

Edit /etc/security/limits.conf. Tambahkan baris-baris berikut:

*               soft    nproc   2047
*               hard    nproc   16384
*               soft    nofile  1024
*               hard    nofile  65536

Edit /etc/pam.d/login. Tambahkan:

session    required     /lib/security/pam_limits.so

Disable SELINUX dengan mengedit /etc/selinux/config sebagai berikut:

SELINUX=disabled

Ganti /etc/redhat-release dengan isi sebagai berikut:

redhat-4

Tambahkan baris-baris berikut ini di /etc/profile:

if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
     ulimit -p 16384
     ulimit -n 65536
   else
     ulimit -u 16384 -n 65536
   fi
fi

Buat Direktori

Dengan asumsi sesuai ketentuan dari Oracle untuk instalasi berbagai software oracle, oracle akan diinstall di /u01:

# mkdir -p /u01/app/oracle/product/10.2.0/db_1
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01

Login sebagai user oracle, kemudian ubah $HOME/.bash_profile hingga menjadi seperti berikut ini:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi

# User specific environment and startup programs
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$HOME/bin:$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

INSTALASI ORACLE DENGAN REMOTE X-SERVER
IP klien: 192.168.1.x
IP server: 192.168.1.xx

1. Menjalankan remote x-windows, dengan menggunakan Cygwin
2. Tambahkan pada xhost, alamat IP server database Oracle yang akan diremote X
# xhost + 192.168.1.x
3. Buat koneksi ssh ke remote server, dan tambahkan argument DISPLAY dengan mengarhkannya pada IP komputer yang meremotenya
pada environment server database
# export DISPLAY=192.168.1.xx:0.0

jalankan aplkasi xclock untuk mengetahui apakah remote X sudah berjalan baik.
# xclock
4. Pada direktori instalasi di server, mulai jalankan instaler oracle. Sertakan parameter -ignoreSysPreReqs untuk mem-bypass pengecekan siste operasi yang didukung oleh default instlasi oracle. (Tidak tersedia Oracle for Centos, namun karena Centos merupakan keluarga RedHat maka oracle bisa berjalan di platform Centos)
# ./runInstaller -ignoreSysPreReqs

Kadang, kalian akan menemukan error berikut saat menjalankan perintah instalasi diatas. Contoh kasusnya:
——————————
Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-11-25_12-28-01PM/jre/1.4.2/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory occurred..

java.lang.UnsatisfiedLinkError: /tmp/OraInstall2008-11-25_12-28-01PM/jre/1.4.2/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
——————————

Dari artikel yang saya temui, kita bisa mencari tahu komponen atau library apa yang belum tersedia di server sehingga menyebabkan instalasi Oracle menjadi gagal dan memunculkan pesan seperti ditunjukkan. Kita bisa menggunakan perintah ldd pada log yang ditayangkan.

ldd /tmp/OraInstall2008-11-25_12-05-26PM/jre/1.4.2/lib/i386/libawt.so

Berikut contoh isi pesan yang terdapat pada log diatas.

linux-gate.so.1 =>  (0xffffe000)
libmlib_image.so => not found
libjvm.so => not found
libXp.so.6 => /usr/lib/libXp.so.6 (0xf7c8c000)
libXt.so.6 => not found
libXext.so.6 => /usr/lib/libXext.so.6 (0xf7c7b000)
libXtst.so.6 => not found
libX11.so.6 => /usr/lib/libX11.so.6 (0xf7b78000)
libm.so.6 => /lib/libm.so.6 (0xf7b51000)
libdl.so.2 => /lib/libdl.so.2 (0xf7b4d000)
libjava.so => not found
libc.so.6 => /lib/libc.so.6 (0xf7a09000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xf7a06000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf7a00000)
/lib/ld-linux.so.2 (0xf7fa6000)

Lakukan instalasi pada paket library yang tidak diketemukan pada sistem operasi server. Misal kita akan menambahkan libXt dan libXtst maka eksekusi:

yum install libXt  libXtst

Cek kembali isian dari file log jika proses instalasi masih belum bisa dilakukan (dengan kata lain, jendela instalasi oracle belum nampak di layar komputer).

Menjalankan Installer

Login sebagai user oracle dan masuk ke direktori database (asumsi: installer Oracle 10G diekstrak pada direktori database). Pada direktori tersebut terdapat script executable runInstaller, jalankan script tersebut:

$ ./runInstaller

Kemudian ikuti step-step yang terdapat pada layar.

Select Installation Method

Pilih Basic Installation, kemudian isikan:

  • Oracle Home Location: “/u01/app/oracle/product/10.2.0/db_1″
  • Installation Type: “Enterprise Edition 1.3 GB”
  • UNIX DBA Group: “dba”
  • Centang pada “Create Starter Database”, isikan Global Database Name (”orcl” — sesuai dengan environment variable ORACLE_SID pada .bash_profile). Isikan juga passwordnya

Specify Inventory directory and credentials

Isikan sesuai default

Product-Specific Prerequisite Checks

Pada posisi ini, Oracle akan memeriksa system kita. Jika terdapat ketidaksesuaian maka akan diberikan peringatan. Perbaiki jika masih terdapat peringatan.

Summary

Perhatikan hasil yang akan diinstall. Jika masih terdapat kekurangan, klik pada “Back”. Jika sudah sesuai, pilih pada “Install”

Pembuatan database dengan DBCA

Setelah selesai install, secara otomatis Oracle akan membuat database sesuai spesifikasi kita di depan. Setelah selesai, akan diberitahukan “Database Information” berikut ini:

  • Global Database Name: orcl
  • System Identifier (SID): orcl
  • Server Parameter Filename: /u01/app/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora
  • Database control URL: http://localhost:1158/em

Klik pada “OK”.

Execute Configuration Script

[root@localhost ~]# cd /u01/app/oracle/oraInventory/
[root@localhost oraInventory]# ./orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete
[root@localhost ~]# cd /u01/app/oracle/product/10.2.0/db_1
[root@localhost db_1]# ./root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
[root@localhost db_1]#

Instalasi Selesai

Oracle memberikan pesan berikut ini:

The following J2EE Applications have been deployed and are accessible at the URLs listed below.

iSQL*Plus URL:
http://localhost.localdomain:5561/isqlplus

iSQL*Plus DBA URL:
http://localhost.localdomain:5561/isqlplus/dba

Enterprise Manager 10g Database Control URL:
http://localhost.localdomain:1158/em

Edit /etc/oratab berikut ini:

#
# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
orcl:/u01/app/oracle/product/10.2.0/db_1:Y

Selesai

Pada titik ini, instalasi Oracle telah selesai.

Mengaktifkan Database

Setelah login sebagai user oracle, jalankan perintah berikut:

[oracle@localhost database]$ oraenv
ORACLE_SID = [orcl] ?
[oracle@localhost database]$ dbstart
Processing Database instance "orcl": log file /u01/app/oracle/product/10.2.0/db_1/startup.log
[oracle@localhost database]$

Jika dilihat proses pada server dengan perintah ps aux, akan terdapat baris-baris berikut ini:

...
 9891 pts/3    Ss+    0:00 bash
12694 ?        Ssl    0:00 /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTE
12942 ?        S      0:00 [pdflush]
13985 pts/1    S      0:00 /u01/app/oracle/product/10.2.0/db_1/perl/bin/perl /u0
14010 pts/1    Sl     0:30 /u01/app/oracle/product/10.2.0/db_1/jdk/bin/java -ser
15588 pts/1    Sl     0:01 /u01/app/oracle/product/10.2.0/db_1/bin/emagent
16134 ?        S      0:00 [pdflush]
16158 pts/1    Sl     0:05 /u01/app/oracle/product/10.2.0/db_1/jdk/bin/java -Dja
16854 ?        Ss     0:00 ora_pmon_orcl
16856 ?        Ss     0:00 ora_psp0_orcl
16858 ?        Ss     0:00 ora_mman_orcl
16860 ?        Ss     0:00 ora_dbw0_orcl
16862 ?        Ss     0:00 ora_lgwr_orcl
16864 ?        Ss     0:00 ora_ckpt_orcl
16866 ?        Ss     0:00 ora_smon_orcl
16868 ?        Ss     0:00 ora_reco_orcl
16870 ?        Ss     0:00 ora_cjq0_orcl
16872 ?        Ds     0:00 ora_mmon_orcl
16874 ?        Ss     0:00 ora_mmnl_orcl
16876 ?        Ss     0:00 ora_d000_orcl
16878 ?        Ss     0:00 ora_s000_orcl
16885 ?        Ss     0:00 ora_p000_orcl
16887 ?        Ss     0:00 ora_p001_orcl
16891 ?        Ss     0:00 ora_qmnc_orcl
16913 ?        Ss     0:00 oracleorcl (LOCAL=NO)
16917 ?        Ds     0:00 oracleorcl (LOCAL=NO)
...

Pada posisi tersebut, database Oracle 10G telah berjalan pada CentOS 5.3.

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