Month: October 2008

Oracle DB 10.2g installation on Ubuntu Linux

Oracle DB 10.2g installation on Ubuntu Linux

Introduction –

Oracle Database is widely used commercial Database on Unix/Linux and Windows platform….
This article explain the step by step installation of Oracle 10g Release 2.0 on Ubuntu 8.04111!!
Please refer the Oracle installation guide for System requirement…

1] Hardware requirement –

RAM – minimum 1024 MB of physical memory
Disk space -1.5 GB  to 3.5 GB of disk space, depends on the installation…
Minimum 400 MB of disk space in the /tmp directory

arunsb@arun:~$ free  -m
arunsb@arun:~$ df -h
arunsb@arun:~$ df -h /tmp

2] Software dependency –

Make sure that following packages are installed on your system!!

make-3.8
gcc-4.2
libdb4.2
libdb4.2++-dev
libstdc++6
libstdc++6-4.2-dev
libmotif-dev
libmotif3

root@arun:~# apt-get install  build-essential libc6-dev  libmotif-dev  libmotif3
root@arun:~# apt-get install  xauth libxp6 libxt6 libxtst6 libaio1  glibc-source
root@arun:~# apt-get install  rpm

root@arun:~# ln -s /usr/bin/awk   /bin/awk
root@arun:~# ln -s /usr/bin/basename     /bin/basename
root@arun:~# ln -s /usr/bin/rpm    /bin/rpm

root@arun:~# dpkg -l

3] Operating System Groups and Users for Oracle –

* oinstall – Oracle Inventory group
* dba       – The OS DBA group
* oracle   – Oracle software owner  (in mycase arunsb is oracle user)

root@arun:~# id oracle
id: oracle: No such user
root@arun:~#
root@arun:~# grep oinstall /etc/group
root@arun:~# grep dba  /etc/group

NOTE – “oinstall” should be primary group of oracle user. It is not necessary to use “oracle” as username, you can name but make sure that the “oinstall” is primary group of that user!!

root@arun:~# addgroup oinstall
Adding group ‘oinstall’ (GID 1001) …
Done.
root@arun:~#

root@arun:~# addgroup  dba
Adding group `dba’ (GID 1002) …
Done.
root@arun:~#

root@arun:~# addgroup nobody
Adding group `nobody’ (GID 1000) …
Done.
root@arun:~#

root@arun:~# useradd -g oinstall -G dba   arunsb
root@arun:~#

root@arun:~# id arunsb
uid=1000(arunsb) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
root@arun:~#

*** other setting –

root@arun:~# echo “Red Hat Linux release 3.0 (drupal)” > /etc/redhat-release

root@arun:~# cat /etc/redhat-release
Red Hat Linux release 3.0 (drupal)
root@arun:~#

4] Configure Kernel Parameters –

Add following kernel variable value as shown below in sysctl.conf file, then run command “sysctl -p” to update the setting…
root@arun:~# tail -n 16  /etc/sysctl.conf
###############################
## Adding setting for oracle 10g

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

##############################
root@arun:~#

* Use below command to set above kernel variables…

root@arun:~# sysctl -p

5] Oracle user profile and envirnoment –

Update /etc/security/limits.conf file as shown below….

root@arun:~# vi /etc/security/limits.conf
root@arun:~# tail  /etc/security/limits.conf
#######################
## Added for arunsb (oracle user)

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

#######################
#
root@arun:~#

Add following setting in /etc/pam.d/login file
root@arun:~# vi /etc/pam.d/login

###################################
# oracle user –
session    required   pam_limits.so
###################################

** set envirnoment variables in user profile file “/home/arunsb/.bashrc”  as shown below

arunsb@arun:~$ tail  /home/arunsb/.bashrc
###########################
# Setting for Oracle 10g
export DISPLAY=”:0.0″
export ORACLE_OWNER=arunsb
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/product/10.2.0/db_1
export ORACLE_HOSTNAME=arun.mylaptop.com
PATH=$PATH:/u01/app/product/10.2.0/db_1/bin

##########################
#
arunsb@arun:~$

6] Oracle inventory and installation setting –

you need to create oralce Inventory director where Oracle stores all information about oralce software installed on your system. Also use same direcory
for oracle installation make sure to set proper path in  user profile file ie .barshrc

root@arun:~# mkdir -p  /u01/app/oraInventory
root@arun:~# ls -ld /u01/app/oraInventory
drwxr-xr-x 2 root root 4096 2008-11-23 22:57 /u01/app/oraInventory
root@arun:~# chown arunsb:oinstall -R /u01/app/oraInventory
root@arun:~# ls -ld /u01/app/oraInventory
drwxr-xr-x 2 arunsb oinstall 4096 2008-11-23 22:57 /u01/app/oraInventory
root@arun:~#

arunsb@arun:~$ mkdir -p /u01/app/product/10.2.0/db_1

7] It’s  time to install Oracle –

arunsb@arun:/root/oracle-setup/oracle_server-10g$ ./runInstaller
Starting Oracle Universal Installer…

In between installation you need to run following shell scripts as root user…..

root@arun:~# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory to 770.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete
root@arun:~# /u01/app/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script…

The following environment variables are set as:
ORACLE_OWNER= arunsb
ORACLE_HOME=  /u01/app/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@arun:~#

8] Errors during installation –

NOTE – Installation failed many times with following ERRORs … please don’t forget to create soft link for awk , basename , rpm

Exception Name: MakefileException
Exception String: Error in invoking target ‘ntcontab.o’ of makefile

Exception Name: MakefileException
Exception String: Error in invoking target ‘utilities ctx_on’ of makefile

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

iSQL*Plus URL:
http://arun.mylaptop.com:5560/isqlplus
iSQL*Plus DBA URL:
http://arun.mylaptop.com:5560/isqlplus/dba
Oracle Enterprise manager URL
http://arun.mylaptop.com:5560/isqlplus/dba
=================================================

Thank you,
Arun Bagul

How to create, copy and burn or write ISO image

How to create, copy and burn or write ISO image

Introduction –

An ISO 9660 is file system for CD-ROM media. Which is published (defined) by the International Organization for Standardization (ISO). ISO image is an archive file (disk image) of an optical disc (like CD) using a conventional ISO 9660 format that is widely supported by many OS and software.

1] How copy  data from ISO image –

I just downloaded opensolaris ISO  image. and wanted copy data from iso image.

step 1) I downloaded the image in /opensolaris  directory

root@arun:/opensolaris# ls -l
total 700768
-rw-r–r– 1 root root 716881920 2008-08-26 06:21 opensolaris-200805.iso
root@arun:/opensolaris#

step 2) mount the ISO image  as  shown below –

root@arun:/opensolaris# mount -o  loop  /opensolaris/opensolaris-200805.iso   /mnt/
root@arun:/opensolaris#

* Check mount point…

root@arun:/mnt# mount  | grep iso
/opensolaris/opensolaris-200805.iso on /mnt type iso9660 (rw,loop=/dev/loop0)
root@arun:/mnt#

step 3) Go to  mounted directory ie /mnt (in my case) –

root@arun:/opensolaris# cd /mnt/
root@arun:/mnt# ls
bin     boot  bootcd_microroot  COPYRIGHT  dev  devices  jack  LICENSE  mnt  platform  proc
reconfigure  root  solarismisc.zlib  solaris.zlib  system  tmp
root@arun:/mnt#

2] How to create ISO image –

a) using dd command  we can create iso image of CD

dd if=/dev/cdrom  of=/tmp/mycdimgage.iso

b) using mkisofs command we can create iso image of our data in any directories

** mkisofs command –

    -R, -rock                               Generate Rock Ridge directory information
    -o FILE, -output FILE             Set output ISO file name
    -l, -full-iso9660-filenames    Allow full 31 character filenames for ISO9660 names
    -max-iso9660-filenames      Allow 37 character filenames for ISO9660 names (violates ISO9660)
    -input-charset CHARSET      Local input character for file name conversion
    -output-charset CHARSET   Output character set for file name conversion

    root@arun:~# mkisofs  -input-charset utf-8  -R -o  /tmp/mycdimage.iso  /mnt/
    1.43% done, estimate finish Sun Oct 10 17:53:05 2008
    2.86% done, estimate finish Sun Oct 10 17:52:30 2008

    ….
    98.56% done, estimate finish Sun Oct 10 17:52:25 2008
    Total translation table size: 0
    Total rockridge attributes bytes: 22651
    Total directory bytes: 159744
    Path table size(bytes): 1024
    Max brk space used 21000
    350039 extents written (683 MB)
    root@arun:~#

    * checking the Size of ISO image of /mnt directory

    root@arun:~# du -sh /tmp/mycdimage.iso
    685M    /tmp/mycdimage.iso
    root@arun:~#

    3] How Burn (copy) ISO image to CD –

    cdrecord is the command line tool to burn or write  iso image file to CD

    ** cdrecord command –

      -v                       Verbose i.e show info while burning the disk
      -dev=0,0,0        Device number
      -multi                 Start multi session disk
      -data                  This option required for HP and Sony CD Writer only.
      -scanbus            scan the SCSI and IDE buses and exit
      -dummy             do everything with laser turned off
      -eject                  Ejects the CD when Done
      -speed=12                  Writing speed (12x )
      -msinfo                        retrieve multi-session info for genisoimage
      timeout=                     set the default SCSI command timeout to
      /tmp/mycdimage.iso   Name of iso image  which to be burned

      * How  to  get Device number ?

      root@arun:~# cdrecord -scanbus
      scsibus3:
      3,0,0   300) ‘MATSHITA’ ‘UJDA775 DVD/CDRW’ ‘1.00’ Removable CD-ROM
      ….
      root@arun:~#

      root@arun:~# cdrecord -dev=3,0,0 -multi -data -v -eject -speed=4 /tmp/mycdimage.iso

      NOTE – above device naming convention doesn’t work in Ubuntu use device  file directly…

      root@arun:~# cdrecord  -dev=/dev/cdrom  -multi -data -v -eject -speed=4 /tmp/mycdimage.iso

      TOC Type: 1 = CD-ROM
      scsidev: ‘/dev/cdrom’
      devname: ‘/dev/cdrom’
      scsibus: -2 target: -2 lun: -2
      Linux sg driver version: 3.5.27
      Wodim version: 1.1.6

      ….
      communication breaks or freezes immediately after that.
      FIFO size      : 12582912 = 12288 KB
      Track 01: data     0 MB         padsize:  242 KB
      Total size:        0 MB (00:04.02) = 302 sectors
      Lout start:        1 MB (00:06/02) = 302 sectors

      root@arun:~#

      ** Hey, just mount the CD and see

      NOTE – Brasero CD burning (http://www.gnome.org/projects/brasero/) – GNOME tool for writing/burning CD is included in Ubuntu 8.04!!

      Thank you,
      Arun Bagul