Silent Install of Oracle 11.2.0.3 on Solaris 11 x86

In this blog post, we are going to install Oracle 11.2.0.3 64-bit on Solaris 11 x86 using VMWare Workstation 9.

Solaris represents a popular alternative to Linux for many Oracle shops, especially since it offers some familiarity for System Admins and DBAs who were previously running Oracle on SPARC.

Time Required: 120 minutes

Class Materials:

  • An x86 64-bit computer with 4GB RAM and 10GB of hard disk space.
  • A minimum of a 1024×768 display with 256 colors.
  • VMWare Workstation 9 or better.
  • Whatever OS VMWare Workstation needs to run on. In my case I run it on Windows 7 Professional.
  • Oracle Solaris 11 11/11 Live install disc
  • Oracle Grid and Database software version 11.2.0.3.

Note that for Oracle, we need the 11.2.0.3 version of the software, not the 11.2.0.1 that is available from download.oracle.com.

Oracle 11.2.0.1 is not supported on Solaris 11. As far as I know you will need to get this from My Oracle Support, and you are looking for patch number 10404530 which will give you access to six zip files. You only need the first three zip files.

 

Part I – Create the Solaris VM.

Time Required: 10 mins.

First we need to create a Solaris 11 VM. I created a new VM using the VMWare Workstation wizard.

VMWare Workstation 9 does not recognize the Solaris 11 install ISO image as Solaris 64-bit so the Easy Installer option does not work. Instead you will have to step through the install process manually:

I created my VM with a single CPU, 4GB RAM and a single 40GB SCSI disks.

Using File -> New Virtual Machine launch the process to create a new VM:

Create a custom Workstation 9 VM:

Select the install media. In this example I am using the Solaris 11 Live install disc, which I have as an ISO.

As stated, Workstation 9 does not recognize the Solaris 11 Live CD media, so set it manually to Solaris 11.

At the next page, choose a name for your VM. I have chosen to call mine Solaris 11 64-bit with Oracle 11gR2 and ASM.

At the next page, set the processor count to 1.

At the next page, set the memory. I recommend at least 4GB. I have not tried less.

At the next page, set the network type to bridged. This will allow the first NIC to aquire an address from the same network as the host machine.

At the next page, set the disk controller to LSI Logic (Recommended).

At the next page, select Create a new virtual disk.

At the next page, select SCSI (Recommended).

Set the disk to 40GB and allow it to be split in multiple virtual files. It does not have to be fully provisioned.

At the last page, review your settings. If all looks well, press Finish to create the VM.

When the VM starts, the Solaris X86 OS will start to boot up. Select the first option Solaris 11 11/11 to start the install.

The next screen will ask for the keyboard, the default is 47 for US-English.

The default langauge is 3 for English.

The Solaris 11 x86 Live install disc now boots into a Gnome environment. This is contained entirely in memory, and gives the user the opportunity to explore a little before deciding to install the full OS.

If you are ready to proceed, double-click the Install Oracle Solaris icon in the top left of the screen.

The installer gives us the opportunity to review install notes. When you are ready, click Next.

At the Disk screen, select all defaults and click Next.

At the Time Zone screen, select the location closest to you. For some odd reason it defaults to GMT, but then adjusts the clock when you choose your location, requiring you to set it back to the actual time. Odd.

At the next screen we create our default user. This is the first user on the OS and will have root role privileges. Do NOT call this default user oracle or grid.

Choose something you will remember and do not forget the password you select.

You can also name your computer at this point.

The next screen allows you to review your choices before launching the install. When everything looks right, click Next.

The installer provides a progress bar as it installs.

Finally the installation is complete. Eject the install media from the virtual drive and reboot your VM.

 

Part II – Add Extra Hardware.

Time Required: 10 mins.

Now that we have Solaris 11 installed, we need to add some new hadrware to our VM.

Right click on your VM name in the VMWare Wortstation interface, and select Settings. Now click Add on the Hardware tab to add some new hardware to the VM.

Since we are going to be using ASM, we need another disk for ASM to use.

Select Hard Disk and click Next.

Select Create a new virtual disk and click Next.

Select SCSI (Recommended) and click Next.

At the next screen, specify the disk size at 5GB and select Split virtual disk into multiple files. It is not necessary to select Allocate all disk space now.

At the next screen, choose a name to call the virtual disk files. This will only be visible from the guest OS.

Next I added a second network adapter connected to my VMNet2 virtual network. The first NIC is a bridged adapter that uses the same network as my host laptop. As I move from site to site, that IP address will change.

The second NIC is tied to my virtual VMNet2 and allows for static IP addressing regardless of physical networks. My VMNet2 is defined with a subnet of 10.10.1.x.

Next I add a USB controller to my VM. I do this since I will stage the Oracle install media on an external USB drive to save disk space on the finished VM. If you do not plan to use USB devices with your VM you may skip this.

Finally I set the display to a fixed 1024×768 resolution. I have had a lot of problems with the Solaris Gnome desktop, and those problems seems to be exacerbated by the screen resolution changing. Setting a fixed resolution seems to help a little.

The final hadrware configuration should look something like this:

 

Part III – Configure VMWare Tools and Networking.

Time Required: 10 mins.

Now that we have created our Solaris 11 VM and added extra hardware to support Oracle 11.2.0.3, we can install the VMWare tools.

Power up the VM and log in as the default user you specified during the install process. Note that with Solaris 11, the root user is no longer a true user but a role. You can su to root from authorized accounts only.

Although it is possible to set root back to a real user, I am trying to stick to new preferred practices, so we will leave root as a role.

The first time you su to root from the default user, use the same password as you specified for the default user. Solaris will then inform you that the root password has expired and needs to be reset:

gruffdba@solaris:~$ su - 
Password: 
su: Password for user 'root' has expired
New Password: 
Re-enter new Password: 
su: password successfully changed for root
Oracle Corporation	SunOS 5.11	11.0	November 2011
root@solaris:~# 

 
Next I recommend you install the VMware Tools package as this will greatly improve the usability of your Solaris 11 VM.

Use the VMWare Workstation menu to select

VM -> Install VMWare Tools

Once the virtual DVD opens on the Gnome desktop, use a terminal window to gunzip the GZip’d VMWare tools file, then untar it and run the perl installer. Accept all defaults.

Next we should name our VM. The install process allowed us to select a name for our VM, but if we need to change it for any reason we can do so now.

In this example I am naming my VM rodolfo after one of the lead characters in La Boheme.

My virtual network domain is again hadesnet after the original network I created for Orpheus and Eurydice for the 11gR2 RAC on VMWare Workstation blog post last year.

# svccfg -s svc:/system/identity:node setprop config/nodename = "rodolfo.hadesnet"
# svcadm refresh svc:/system/identity:node
# svcadm restart svc:/system/identity:node

 
Next we need to configure our network. If you accepted all defaults during install, you will have DHCP enabled on NIC 1 and nothing on NIC 2.

In the following example, we are going to reconfigure Solaris to use DHCP on NIC 1 but have a static IP on NIC 2.

First let’s enable manual configuration:

root@rodolfo:~# netadm enable -p ncp defaultfixed
Enabling ncp 'DefaultFixed'

 
Next we are going to configure NIC 1, which Solaris sees as net0 to use DHCP:

root@rodolfo:~# ipadm delete-ip net0
root@rodolfo:~# ipadm create-ip net0
root@rodolfo:~# ipadm create-addr -T dhcp net0/addr

 
We will add the default gateway for my home network:

root@rodolfo:~# route -p add default 192.168.0.1
add net default: gateway 192.168.0.1: entry exists
add persistent net default: gateway 192.168.0.1

 
Now I will add the DNS server back to Net0

root@rodolfo:~# svccfg -s dns/client setprop config/nameserver = net_address: 192.168.0.1

 
Okay, that’s the bridged adapter done, now let’s configure the static IP on the VMNet2 NIC, which Solaris sees as Net1. In this example I am assigning a static IP of 10.10.1.200.

root@rodolfo:~# ipadm delete-ip net1
root@rodolfo:~# ipadm create-ip net1
root@rodolfo:~# ipadm create-addr -T static -a local=10.10.1.200/24 net1/addr

 
We can check to see how our network looks as follows:

root@rodolfo:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/addr         dhcp     ok           192.168.0.39/24
net1/addr         static   ok           10.10.1.200/24
lo0/v6            static   ok           ::1/128

root@rodolfo:~$ dladm show-phys -m
LINK                SLOT     ADDRESS            INUSE CLIENT
net0                primary  0:c:29:65:57:1d    yes  net0
net1                primary  0:c:29:65:57:27    yes  net1

 
Finally we must add our new host name to the /etc/hosts file. If we fail to do this, the Oracle database installer will fail with a spectacularly unhelpful error message.

Modify your /etc/hosts file as follows:

root@rodolfo:~# cat /etc/hosts
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# Internet host table
#
::1 rodolfo localhost 
127.0.0.1 localhost loghost 
10.10.1.200 rodolfo rodolfo.hadesnet

 
Now is a good time to reboot your VM to make sure all the changes have taken effect and are permanent.

 

Part IV – Adjust Kernel Settings and Create Oracle and Grid Users.

Time Required: 20 mins.

Before we can install the Oracle Grid Infrastructure or Database on our Solaris 11 system, we need to make some adjustments to the OS settings.

Even though Oracle touts Hardware and Software Engineered to Work Together, there is still alot of manual tweaking that has to be done to get two parts of their solution to play nice together.

First, Oracle Database 11.2.0.3 requires 4GB of swap space. By default Solaris 11 installs with 1GB. Oracle completely changed the process to adjust swap space in 11, so don’t try the old 10 method as it won’t work here.

Log in to the VM as root and use the following to increase the swap space:

root@rodolfo:/# zfs get volsize rpool/swap
NAME        PROPERTY  VALUE    SOURCE
rpool/swap  volsize   1G       local
root@rodolfo:/# zfs set volsize=4097m rpool/swap
root@rodolfo:/# zfs get volsize rpool/swap
NAME        PROPERTY  VALUE    SOURCE
rpool/swap  volsize   4.00G    local

 

You may wonder why we set the swap space to 4097MB when 4GB is 4096MB.

Indeed why not simply state 4GB? For some reason best known to others, whereas the installer states it needs swap at 4GB, it in fact needs about 317KB more than 4GB, resulting in an annoying but ignorable warning during install.

The extra 1MB here keeps the installer quiet.

Next we are going to make some adjustments to the networking for Oracle.

Create a file in the /etc/rc3.d directory as follows:

root@rodolfo:/export# vi /etc/rc3.d/S01oranetwork
#!/bin/sh
# added for Oracle 11gR2
/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000
/usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500
/usr/sbin/ndd -set /dev/tcp udp_smallest_anon_port 9000
/usr/sbin/ndd -set /dev/tcp udp_largest_anon_port 65500

 
Now set the permissions on the file so it is executed during startup:

root@rodolfo:~# chmod 744 /etc/rc3.d/S01oranetwork

 
Adjust file descriptor limits system wide by editing the /etc/system file:

root@rodolfo:~# vi /etc/system

# added for Oracle 11gR2
set rlim_fd_max = 65536
set rlim_fd_cur = 65536

 
Next we are going to create groups for our Oracle install:

groupadd -g 1000 oinstall
groupadd -g 1001 asmadmin
groupadd -g 1002 asmdba
groupadd -g 1003 asmoper
groupadd -g 1004 dba
groupadd -g 1005 oper

 
Now we can create two users; grid and oracle. Oracle is now advocating separating the Grid Infrastructure owner from the Oracle database owner.

useradd -u 500 -g oinstall -G asmoper,asmadmin,asmdba,dba -d /export/home/grid -m grid

useradd -u 501 -g oinstall -G oper,dba,asmdba -d /export/home/oracle -m oracle

 
Set passwords for the grid and oracle users with the passwd command. Remember Solaris 11 demands that passwords have at least one numeric:

root@rodolfo:~# passwd grid
New Password: 
Re-enter new Password: 
passwd: password successfully changed for grid

root@rodolfo:~# passwd oracle
New Password: 
Re-enter new Password: 
passwd: password successfully changed for oracle

 
Next we will create the directories where we will install the Grid Infrastructure and Oracle database. Since we now have two users for these purposes, they will no longer share a common Oracle Base as with installations on Linux or earlier versions of the database.

mkdir -p /u01/app/grid
mkdir -p /u01/app/grid/11gR2
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0.3/db_1

chmod -R 775 /u01
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle

 
With older releases of Solaris, kernel settings would be added to the /etc/system and would be host wide. With Solaris 10 and 11, we now use projects to set kernel parameters for individual users or even processes.

In the following example, we set the kernel parameters for our new grid and oracle users. As root execute the following:

projadd -U grid -K "project.max-shm-memory=(priv,6g,deny)" user.grid
projmod -sK "project.max-sem-nsems=(priv,512,deny)" user.grid
projmod -sK "project.max-sem-ids=(priv,128,deny)" user.grid
projmod -sK "project.max-shm-ids=(priv,128,deny)" user.grid
projmod -sK "process.max-file-descriptor=(priv,65536,deny)" user.grid

projadd -U oracle -K "project.max-shm-memory=(priv,6g,deny)" user.oracle
projmod -sK "project.max-sem-nsems=(priv,512,deny)" user.oracle
projmod -sK "project.max-sem-ids=(priv,128,deny)" user.oracle
projmod -sK "project.max-shm-ids=(priv,128,deny)" user.oracle
projmod -sK "process.max-file-descriptor=(priv,65536,deny)" user.oracle

 
Now we need to add some additional entries to the profile scripts of our new users.

Edit the file /export/home/grid/.profile and add the following:

umask 022

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/grid/11gR2
export ORACLE_SID=+ASM

export PATH=$PATH:/usr/sbin:/usr/X11/bin:/usr/dt/bin:/usr/openwin/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/ccs/bin:/usr/local/bin:/usr/local/sbin:$ORACLE_HOME/bin:.

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/dt/lib:$ORACLE_HOME/oracm/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export TEMP=/tmp
export TMPDIR=/tmp

ulimit -n 65536
ulimit -t unlimited
ulimit -f unlimited
ulimit -d unlimited
ulimit -s unlimited
ulimit -v unlimited

 
Next, edit the file /export/home/oracle/.profile and add the following:

umask 022

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.3/db_1
export ORACLE_SID=gctdev
export PATH=/usr/sbin:/bin:/usr/X11/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin:/usr/local/bin:$ORACLE_HOME/bin:/usr/local/bin:/home/oracle:.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib
export CLASSPATH=$ORACLE_HOME/jdbc:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib$ORACLE_HOME/network/jlib
export TEMP=/tmp
export TMPDIR=/tmp

ulimit -n 65536
ulimit -t unlimited
ulimit -f unlimited
ulimit -d unlimited
ulimit -s unlimited
ulimit -v unlimited

 
Now log into each account – grid and oracle – from the Solaris desktop. In each case you will be prompted to select the desktop environment. Select Gnome for both users.

 

Part V – Add Disk for ASM.

Time Required: 10 mins.

During our VM creation we added a second SCSI disk sized at 5GB that we will use to support ASM.

Before ASM can use it however, we must partition it. To do this we use the Solaris 11 format command. Log into your VM as the default user and then su to root:

root@rodolfo:~# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c4t0d0 
          /pci@0,0/pci15ad,1976@10/sd@0,0
       1. c4t1d0 
          /pci@0,0/pci15ad,1976@10/sd@1,0
Specify disk (enter its number): 

 
In the above example we can see two disks numbered 0 and 1.

Disk 0 is the 40GB SCSI disk where we installed Solaris. Disk 1 is the second disk we added for ASM. We can enter 1 to select the disk for partitioning.

Specify disk (enter its number): 1
selecting c4t1d0
[disk formatted]
No Solaris fdisk partition found.


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show disk ID
        volname    - set 8-character volume name
        !     - execute , then return
        quit
format>

 
The format utility reports that No Solaris fdisk partition found so this disk has not been prepared for use by Solaris.

To create a partition table on it, we use the fdisk option:

format> fdisk
No fdisk table exists. The default partition for the disk is:

  a 100% "SOLARIS System" partition

Type "y" to accept the default partition,  otherwise type "n" to edit the partition table.

 
Accept the default by typing Y. We can now review the default partitions by entering partition.

format> partition

PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        ! - execute , then return
        quit
partition>

 
We are going to change partition zero, so enter 0.

partition> 0
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0

 
Enter defaults for the partition id tag and permission flags:

Enter partition id tag[unassigned]: 
Enter partition permission flags[wm]:

 

On X86 Solaris systems, the starting cylinder for a partiton cannot be 0, because additional boot information, including the master boot record, is written in sector 0 [Oracle Solaris Administration: Devices and File Systems – Chapter 13]

Therefore the partiton will start at cylinder 1, and we size at 4.95GB.

Enter new starting cyl[0]: 1
Enter partition size[0b, 0c, 1e, 0.00mb, 0.00gb]: 4.95g

 

We can now review the partition we are creating:

partition> print
Current partition table (unnamed):
Total disk cylinders available: 2557 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       1 - 2535        4.95GB    (2535/0/0) 10383360
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 2556        4.99GB    (2557/0/0) 10473472
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        2.00MB    (1/0/0)        4096
  9 unassigned    wm       0               0         (0/0/0)           0

 
If this all looks correct, type label to complete the process. Then enter quit:

partition> label
Ready to label disk, continue? y

partition> quit

FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show disk ID
        volname    - set 8-character volume name
        !     - execute , then return
        quit
format>

 
I recommend you label the disk you just created so that you will remember that is has been prepared for use with ASM. Use the volname command to name the disk:

format> volname asmdisk1
Enter 8-character volume name (remember quotes)[""]:Ready to label disk, continue? y

 
We can now verify our work with the verify command:

format> verify

Primary label contents:

Volume name = 
ascii name  = 
pcyl        = 2559
ncyl        = 2557
acyl        =    2
bcyl        =    0
nhead       =  128
nsect       =   32
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       1 - 2535        4.95GB    (2535/0/0) 10383360
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 2556        4.99GB    (2557/0/0) 10473472
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        2.00MB    (1/0/0)        4096
  9 unassigned    wm       0               0         (0/0/0)           0

 
This all looks good, so let’s quit back to the OS:

format> quit

 
Finally we need to change the ownership of the newly partitioned disk:

chown grid:asmadmin /dev/rdsk/c4t1d0s0
chmod 660 /dev/rdsk/c4t1d0s0

 

 

Part VI – Install Grid Infrastructure.

Time Required: 30 mins.

In the next step we are going to install the Grid Infrastructure. Remember we are going to do this under the grid user, not the oracle user.

Log into your Solaris VM as grid.

In this example I am going to use the silent install feature of Oracle to complete the install. And I am going to do so using a terminal emulator.

As I explained earlier, I have had endless trouble with the Gnome desktop of Solaris, which seems to sporadically just lock up, causing the entire VM to stop completely.

At some point I will enable core dumps and talk to my buddies over at VMWare about this, but for now I want to learn more about Oracle and ASM on Solaris, not how to become a Solaris Admin or a Solaris on VM master.

The interested DBA should examine the grid response file in detail before selecting this method of install, and be comfortable with all the directives being used.

My complete grid.rsp file can be found here: grid.rsp.

Note: WordPress does not allow straight text files to be uploaded, so the extension is DOC, although it is a raw ASCII text file.

Log in as the grid user and navigate to the directory where the grid install software is held, and launch the install as follows:

grid@rodolfo:/media/ORASOL/grid$ ./runInstaller -silent -force -responseFile $HOME/grid.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 180 MB.   Actual 6056 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 6606 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-03-24_10-50-42PM. Please wait ...grid@rodolfo:/media/ORASOL/grid$ You can find the log of this install session at:
 /u01/app/oraInventory/logs/installActions2013-03-24_10-50-42PM.log
The installation of Oracle Grid Infrastructure was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2013-03-24_10-50-42PM.log' for more details.

As a root user, execute the following script(s):
        1. /u01/app/oraInventory/orainstRoot.sh
        2. /u01/app/grid/11gR2/root.sh


As install user, execute the following script to complete the configuration.
        1. /u01/app/grid/11gR2/cfgtoollogs/configToolAllCommands

        Note:
        1. This script must be run on the same system from where installer was run. 
        2. This script needs a small password properties file for configuration assistants that require passwords (refer to install guide documentation).


Successfully Setup Software.

 
At the end of the install process, the installer prompts us to exexute two scripts as the root user.

Start a new terminal session and log in as root, then execute the two scripts shown above:

root@rodolfo:~# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.

root@rodolfo:~# /u01/app/grid/11gR2/root.sh
Check /u01/app/grid/11gR2/install/root_rodolfo.hadesnet_2013-03-24_23-24-06.log for the output of root script

 

Once the scripts complete, execute the third script as the grid user:

grid@rodolfo:/media/ORASOL/grid$ /u01/app/grid/11gR2/cfgtoollogs/configToolAllCommands
Setting the invPtrLoc to /u01/app/grid/11gR2/oraInst.loc

perform - mode is starting for action: configure

perform - mode finished for action: configure

You can see the log file: /u01/app/grid/11gR2/cfgtoollogs/oui/configActions2013-03-25_02-41-55-PM.log

 

Now we need to create the ASM instance. To do this I find it benefical to add a dummy entry into the oratab file, to allow me to source the Oracle environment.

Edit the file /var/opt/oracle/oratab and add the following:

DUMMY:/u01/app/grid/11gR2:N

 
Now we can set up our environment using the oraenv file:

grid@rodolfo:/media/ORASOL/grid$ . oraenv
ORACLE_SID = [+ASM] ? DUMMY
The Oracle base has been set to /u01/app/grid

 

Now let’s check that the disk we added earlier is ready to become part of our ASM disk group. Use the kfod tool to check for all available disks:

grid@rodolfo:/media/ORASOL/grid$ kfod disks=all op=disks
--------------------------------------------------------------------------------
 Disk          Size Path                                     User     Group   
================================================================================
   1:       5070 Mb /dev/rdsk/c4t1d0s0                       grid     asmadmin

 
If the above command does not find any disks, check Part IV again and ensure that the permissions on the disk are set correctly.

We can create our ASM instance and DATA diskgroup with the asmca command:

asmca -silent -configureASM \
   -sysAsmPassword orasolX86 \
   -asmsnmpPassword orasolX86 \
   -diskGroupName DATA \
   -diskList '/dev/rdsk/c4t1d0s0' \
   -redundancy EXTERNAL \
   -au_size 1 \
   -compatible.asm '11.2.0.0.0' \
   -compatible.rdbms '11.2.0.0.0' \
   -diskString '/dev/rdsk/*'

 
The 11.2.0.3 software demands that the ASM and SNMP passwords are at least eight characters long, have at least one upper case, one lower case and one numeric. Failure to meet these standards will result in warnings.

We have specified that we are going to create a DATA diskgroup with external redundancy, an allocation unit size of 1MB and the disk group will be built on the disk /dev/rdsk/c4t1d0s0.

The following shows the command being executed:

grid@rodolfo:/media/ORASOL/grid$ asmca -silent -configureASM \
>    -sysAsmPassword orasolX86 \
>    -asmsnmpPassword orasolX86 \
>    -diskGroupName DATA \
>    -diskList '/dev/rdsk/c4t1d0s0' \
>    -redundancy EXTERNAL \
>    -au_size 1 \
>    -compatible.asm '11.2.0.0.0' \
>    -compatible.rdbms '11.2.0.0.0' \
>    -diskString '/dev/rdsk/*'

ASM created and started successfully.

Disk Group DATA created successfully.

 
Next we need to create a listener in the Grid home to support our databases. Since we are trying to avoid the Gnome deskotp here, I am again going to use the silent option.

However the netca tool requires a functional display, even when running in silent mode. Moreover, it needs the AWT_TOOLKIT variable to set to XToolkit to operate.

Why? Who knows. All I know is this is Hardware and Software Engineered to Work Together… sometimes.

Okay, here is how to set up the listener:

grid@rodolfo:/media/ORASOL/grid$ export DISPLAY=localhost:0
grid@rodolfo:/media/ORASOL/grid$ export AWT_TOOLKIT=XToolkit
grid@rodolfo:/media/ORASOL/grid$ netca -silent -responsefile $ORACLE_HOME/network/install/netca_typ.rsp

Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /u01/app/grid/11gR2/network/install/netca_typ.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

 
We can now check the state of our Grid install with the crs_stat command:

grid@rodolfo:/media/ORASOL/grid$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    rodolfo     
ora....ER.lsnr ora....er.type ONLINE    ONLINE    rodolfo     
ora.asm        ora.asm.type   ONLINE    ONLINE    rodolfo     
ora.cssd       ora.cssd.type  ONLINE    ONLINE    rodolfo     
ora.diskmon    ora....on.type OFFLINE   OFFLINE               
ora.evmd       ora.evm.type   ONLINE    ONLINE    rodolfo

 

 

Part VII – Install Database.

Time Required: 30 mins.

Finally we are going to install the database software and create a database.

Log into the Solaris VM as the oracle user using a terminal session. Again I am going to use a silent install due to the stability problems of the Gnome desktop.

The interested DBA should examine the db response file in detail before selecting this method of install, and be comfortable with all the directives being used.

My complete db.rsp file can be found here: db.rsp.

Note: WordPress does not allow straight text files to be uploaded, so the extension is DOC, although it is a raw ASCII text file.

If the DISPLAY variable is set when you run the install process in silent mode, the installer will crash, so first we will unset the variable and then launch the the installer.

oracle@rodolfo:/media/ORASOL/database$ unset DISPLAY

oracle@rodolfo:/media/ORASOL/database$ ./runInstaller -silent -force -responseFile $HOME/db.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 180 MB.   Actual 5415 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 6200 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-03-24_11-45-27PM. Please wait ...oracle@rodolfo:/media/ORASOL/database$ You can find the log of this install session at:
 /u01/app/oraInventory/logs/installActions2013-03-24_11-45-27PM.log
The installation of Oracle Database 11g was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2013-03-24_11-45-27PM.log' for more details.

As a root user, execute the following script(s):
        1. /u01/app/oracle/product/11.2.0.3/db_1/root.sh


Successfully Setup Software.

 
The install process prompt us to run one script as the root user, so before we complete the process, connect to the Solaris VM as the root user and execute the script:

root@rodolfo:~# /u01/app/oracle/product/11.2.0.3/db_1/root.sh
Check /u01/app/oracle/product/11.2.0.3/db_1/install/root_rodolfo.hadesnet_2013-03-25_00-28-07.log for the output of root script

 
With the oracle software now installed, we can create our database. Note I am going to use the same ASMSNMP password I specified in my asmca command earlier

oracle@rodolfo:~$ dbca -silent \
>   -createDatabase \
>   -asmsnmpPassword orasolX86 \
>   -characterSet WE8ISO8859P15 \
>   -continueOnNonFatalErrors false \
>   -disableSecurityConfiguration ALL \
>   -diskGroupName DATA \
>   -emConfiguration NONE \
>   -gdbName gctdev.local \
>   -listeners LISTENER \
>   -memoryPercentage 40 \
>   -recoveryAreaDestination DATA \
>   -sid gctdev \
>   -SysPassword oracle \
>   -SystemPassword oracle \
>   -storageType ASM \
>   -sampleSchema true \
>   -templateName General_Purpose.dbc
sh: line 1: showrev: not found
sh: line 1: /usr/sbin/patchadd: not found
Copying database files
1% complete
3% complete
10% complete
17% complete
24% complete
31% complete
35% complete
Creating and starting Oracle instance
37% complete
42% complete
47% complete
52% complete
53% complete
56% complete
58% complete
Registering database with Oracle Restart
64% complete
Completing Database Creation
68% complete
71% complete
75% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/gctdev/gctdev.log" for further details.

 
And that is it!

Test rebooting your Solaris VM to ensure Oracle Restart restarts your database.

Advertisements

2 thoughts on “Silent Install of Oracle 11.2.0.3 on Solaris 11 x86

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