Step by Step Oracle 10g R2 installation on Solaris 10

August 21, 2009

My Second blog…. 🙂

Thist post is about installation of Oracle 10g R2 on Solaris 10. If you wish to install Solaris 10 on VMware heres the link.
Having installed Oracle 10g and various other releases as a part of project implementations/upgrade on various environments thought it’d be a good idea to spread the knowledge :).
I have installed Oracle 10g R2 on the Solaris 10 VM I created last week(see my earliar post).

So.. Lets get started..


Database: Oracle Database 10g R2

Pre-Installation Tasks

1. Determine the physical RAM size:

# /usr/sbin/prtconf | grep "Memory size"

Memory size: 1024 Megabytes


2. To determine the size of the configured swap space, enter the following command:

# /usr/sbin/swap -s

total: 360448k bytes allocated + 72480k reserved = 432928k used, 1335996k available


3. Ensure /tmp has atleast 400MB, you can set different “temp” location by setting the environment variables “TMP” and “TMPDIR”

# df -k /tmp

4. Ensure there is enough disk space to install Oracle Software and Create starter database:

# df -h /ora10g
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c1t1d0s6      7.9G   8.0M   7.8G     1%    /ora10g

5. Determine the System Architecture

# isainfo -kv
64-bit amd64 kernel modules

6. Check Software Requirements

# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot \
 SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt
system      SUNWarc   Lint Libraries (usr)
system      SUNWbtool CCS tools bundled with SunOS
system      SUNWhea   SunOS Header Files
system      SUNWi15cs X11 ISO8859-15 Codeset Support
system      SUNWi1cs  X11 ISO8859-1 Codeset Support
system      SUNWi1of  ISO-8859-1 (Latin-1) Optional Fonts
system      SUNWlibm  Math & Microtasking Library Headers & Lint Files (Usr)
system      SUNWlibms Math & Microtasking Libraries (Usr)
system      SUNWsprot Solaris Bundled tools
system      SUNWtoo   Programming Tools
system      SUNWxwfnt X Window System platform required fonts

If you do not find any patches installed, use the following command to add the packages:

#pkgadd -d /cdrom/sol_10_1106_x86/Solaris_10/Product <Package Name>

7. Hostname / Domain Name Checks:

If you use DNS:

#cat /etc/nsswitch.conf | grep hosts

In this case I did not use DNS, so I’d do the following:

# hostname
# domainname
# cat /etc/hosts | grep `eval hostname`         orasun02        loghost

8. Creating Oracle User and Groups

  • Create Oracle Inventory Group(oinstall) 
     # /usr/sbin/groupadd oinstall
  • Create OSDBA group (dba)
    # /usr/sbin/groupadd dba
  • Create Project Group
    # projadd group.dba
    # projects -l group.dba
     projid : 101
     comment: ""
     users  : (none)
     groups : (none)
  • Add resources to project “group.dba”
    #projmod -sK "project.max-shm-memory=(privileged,2G,deny)" group.dba
    #projmod -sK "project.max-sem-ids=(privileged,100,deny)" group.dba
    #projmod -sK "project.max-shm-ids=(privileged,100,deny)" group.dba
    #projmod -sK "project.max-sem-nsems=(privileged,256,deny)" group.dba
  • Create “oracle” user
    #useradd -g oinstall -G dba -m -d /export/home/oracle -s /bin/ksh -K project=group.dba oracle
  • Set the password of the oracle user:
    # passwd -r files oracle
  • Verify user “nobody” exists:
    # id nobody
    uid=60001(nobody) gid=60001(nobody)

9. Creating Directories

#mkdir -p /ora10g/oracle/
#chown -Rh oracle:oinstall /ora10g/oracle
#chmod -R 755 /ora10g/oracle

10. Login to user “oracle” and edit “.profile” to set ORACLE_BASE,ORACLE_HOME,etc

# Oracle Settings
TMP=/tmp; export TMP
ORACLE_BASE=/ora10g/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME


  • Allow user “oracle” to use the display(Here I assume you’d be using Xterm like Xorg/XSun/vncserver/etc, so login as “root” and issue the following command:
    #/usr/openwin/bin/xhost +

    Ensure the display is working for user “oracle”

    # su - oracle
    $export DISPLAY


  • Unpack the Oracle 10g Software:
    #unzip -o
  • Invoke “runInstaller”
    # ./runInstaller
  • Select Installation Method, I have chosen “Advanced Installation” and click “Next” 02_runInstaller
  • 04_oracle_home_details

  • Select Installation Type, I have chosen “Enterprise Edition”, Click “Next” to proceed further 03_select_installation_type
  • Specify Oracle Home details, this is already picked up as we specified in .profile, confirm if its right , alternatively change as desired. Click “Next” to continue04_oracle_home_details
  • Now Oracle does Product Specific Pre-requisite Checks, if you see it failed with 2 warnings and if you notice we have not set the kernel parameters shown in the sceenshot. This is fine as in Solaris 10 the resources are managed through the resource control, as we have configured in step 8. 05_product_specific_checks
  • Select Configuration Option, Choose radio button “Create Database” and click “Next”06_select_config_operations
  • Select Database Configuration , choose “General Purpose Database” and click “Next”07_select_db_configuration
  • Specify Database Configuration Options,  the screen look similar to as below screenshot, and click “Next”08_specify_db_conf
  • Select Database Management Option, click “Next”09_db_management_option
  • Specify database storage option, should like the screenshot below, click “Next” to continue10_storage_option
  • I have chosen not to enable automated backups, Click “Next”11_backup_and_recovery_option
  • Specify Database Schema Passwords and click “Next”12_schema_pwd
  • Finally.. click “Install” to start the installation.13_install
  • After the installation finishes and starter database is created, Execute the configuration scripts, show in the below screenshot14_exec_conf_script

    From the terminal execute the “” as user “root”:

    # /ora10g/oracle/product/10.2.0/db_1/
    Running Oracle10 script...
    The following environment variables are set as:
        ORACLE_OWNER= oracle
        ORACLE_HOME=  /ora10g/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 ...
    Entries will be added to the /var/opt/oracle/oratab file as needed by
    Database Configuration Assistant when a database is created
    Finished running generic part of script.
    Now product-specific root actions will be performed.

    Then go back to Oracle Universal Installer screen and click “OK”

  • Thats it , its the end of installation and your database should be up and running.15_end_of_installation
  • Lets login to the Oracle Enterprise Manager 10g16_oem

8 Responses to “Step by Step Oracle 10g R2 installation on Solaris 10”

  1. Rizwan Wangde Says:

    Gr8 post !!!

  2. Dawoodh Says:

    Zakki, everything was fine until I tried creating the user; at which point I got the following error: “UX: useradd: ERROR: Inconsistent password files. See pwconv(1M)”. I checked /etc/passwd and /etc/shadow and they both have the same number of entries and the same usernames. I tried running the command “pwconv”, but to no avail. At this point, I’m running out of ideas…….please help……..

    • Zakki Ahmed Says:


      did u try:

      wc -l /etc/passwd /etc/shadow

      • Dawoodh Says:

        yes indeed…….there are 17 entries each totalling 34……

        /etc/passwd entries:

        lp:x:71:8:Line Printer Admin:/usr/spool/lp:
        uucp:x:5:5:uucp Admin:/usr/lib/uucp:
        nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
        smmsp:x:25:25:SendMail Message Submission Program:/:
        listen:x:37:4:Network Admin:/usr/net/nls:
        gdm:x:50:50:GDM Reserved UID:/:
        webservd:x:80:80:WebServer Reserved UID:/:
        postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh
        svctag:x:95:12:Service Tag UID:/:
        nobody:x:60001:60001:NFS Anonymous Access User:/:
        noaccess:x:60002:60002:No Access User:/:
        nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:

        /etc/shadow entries:


  3. samir Says:

    i used your blog for intallation of oracle 10g on sun
    and everthing goes successfully nothing wrong a single things

    one thing i would like to ask you how to start and shtudown database script can you tell me

    thanks a lot with anticipation


  4. Ghulam Says:

    Hi Zakki,

    I got to create a DR server and ftp archlog files to the DR machine regularly. Doing so I need an additional oracle (OSDBA group) account to ftp the files. The Current oracle user frequently breaks the FTP connection. I thought this would be nice idea to create another oracle account on DR machine and use this to FTP logfile from live.

    Any idea?

    • Zakki Ahmed Says:


      Are you using Dataguard or just are you sending the logs and applying the manually? If you are sending logs using ftp and applying them manually, you can create a shell script to ftp the files across and then later matching the checksum, if the checksum fails then reinitiate the ftp of that file.

      If its dataguard you need not worry, Oracle will take care of the gaps itself.

      Hope the above helps.



  5. Srinivas Tammali Says:

    Great Post, thanks a ton for the step by step instructions…. got my test ORACLE INSTANCE up and running…..

Leave a Reply

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

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

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s

%d bloggers like this: