Title
Silent install of Oracle SOA Suite 10g (10.1.3.3) on Red Hat Linux

Date
2008-05-29

Summary
These instructions describe how to silent install Oracle SOA Suite 10g (10.1.3.3) on Red Hat AS 4 x86. It includes:
  • Install Oracle Database 10g (10.2.0.1)
  • Install Ultra Search 10g (10.2)
  • Create database and listener
  • Install Oracle Application Server Metadata Repository Upgrade Assistant 10g (10.1.2.0.3)
  • Load Metadata Repository
  • Apply the Oracle Database 10g (10.2.0.2) Patchset
  • Install Oracle SOA Suite 10g (10.1.3.1)
  • Apply the Oracle SOA Suite 10g (10.1.3.3) Patchset

    All commands in bold and italics require manually intervention. Otherwise, you can simply copy and paste the commands as is to completely install the product on a single node. All directories are OFA compliant.

  • Assumptions
  • Oracle software owner name is 'oracle'.
  • Hostname is 'oradev.oracle.com'.
  • Service name is 'orcl.oracle.com'.
  • All passwords are defaulted to 'password'.
  • /u01 has a minimum of 15GB.
  • Server must have at least 1.5GB of SWAP.

  • Prerequisites
    The following software must be downloaded to a /u01/temp directory:
      SoftwareFilenameSize
      Oracle SOA Suite 10g (10.1.3.1.0)soa_linux_x86_101310_disk1.cpio670,487,040 bytes
      Oracle SOA Suite 10g (10.1.3.3.0) Patchsetp6148874_101330_LINUX.zip552,482,303 bytes
      Oracle Database 10g (10.2.0.1.0)10201_database_linux32.zip668,734,007 bytes
      Oracle Database 10g (10.2.0.2.0) Patchsetp4547817_10202_LINUX.zip637,226,927 bytes
      Oracle Database 10g Companion CD (10.2.0.1.0)10201_companion_linux32.zip705,274,421 bytes
      Oracle Application Server Metadata Repository Upgrade Assistant 10g (10.1.2.0.3)as_linux_x86_mrca_101203.cpio480,973,824 bytes
    Ensure that Red Hat AS 4 (or AS 3) is installed with the following package groups: The instructions in this document are specific to Red Hat AS 3 or 4 x86. When you install the OS, choose the following package groups:
  • X Windows System
  • GNOME Desktop Environment
  • KDE Desktop Environment
  • Editors
  • Engineering and Scientific
  • Graphical Internet
  • Text-based Internet
  • Sound and Video
  • Authoring and Publishing
  • Server Configuration Tools
  • Web Server
  • Mail Server
  • Windows File Server
  • FTP Server
  • Legacy Network Server
  • Development Tools
  • X Software Development
  • Legacy Software Development
  • Administration Tools
  • Printing Support

    Ensure that the following RPMs are installed after OS installation:
  • sysstat-5.0.5-16.rhel4.i386.rpm
  • compat-glibc-headers-2.3.2-95.30.i386.rpm
  • compat-glibc-2.3.2-95.30.i386.rpm

    Download the following zip file and extract it to /u01/temp.

  • Details
    1. Perform operating system setup and configuration:
    #
    # Create user and groups
    #
    groupadd dba
    groupadd oinstall
    useradd –c "Oracle owner" -g oinstall -G dba oracle
    passwd oracle
    
    #
    # Update kernel parameters
    #
    echo "# " >> /etc/sysctl.conf
    echo "# Required for Oracle " >> /etc/sysctl.conf
    echo "# " >> /etc/sysctl.conf
    echo "kernel.shmall = 3279547" >> /etc/sysctl.conf
    echo "kernel.shmmax = 4294967295" >> /etc/sysctl.conf
    echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
    echo "kernel.sem = 256 32000 100 142" >> /etc/sysctl.conf
    echo "fs.file-max = 327679" >> /etc/sysctl.conf
    echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
    echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
    echo "net.core.rmem_max = 262144" >> /etc/sysctl.conf
    echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
    echo "net.core.wmem_max = 262144" >> /etc/sysctl.conf
    echo "kernel.msgmax = 8192" >> /etc/sysctl.conf
    echo "kernel.msgmnb = 65535" >> /etc/sysctl.conf
    echo "kernel.msgmni = 2878" >> /etc/sysctl.conf
    /sbin/sysctl -p
    
    #
    # Update Oracle required configuration (must use tabs between entries)
    #
    echo "oracle	soft	nproc	2047" >> /etc/security/limits.conf
    echo "oracle	hard	nproc	16384" >> /etc/security/limits.conf
    echo "oracle	soft	nofile	4096" >> /etc/security/limits.conf
    echo "oracle	hard	nofile	65536" >> /etc/security/limits.conf
    
    echo "session	required	/lib/security/pam_limits.so" >> /etc/pam.d/login
    
    echo "if [ \$USER = "oracle" ]; then" >> /etc/profile
    echo "    if [ $SHELL = "/bin/ksh" ]; then" >> /etc/profile
    echo "        ulimit -p 16384" >> /etc/profile
    echo "        ulimit -n 65536" >> /etc/profile
    echo "   else" >> /etc/profile
    echo "        ulimit -u 16384 -n 65536" >> /etc/profile
    echo "    fi" >> /etc/profile
    echo "fi" >> /etc/profile
    
    #
    # Create required directories with appropriate permissions
    #
    mkdir /u01/app
    mkdir /u01/temp
    chown oracle:oinstall /u01/app
    chown oracle:oinstall /u01/temp
    

    2. Install Oracle Database 10g (10.2.0.1):
    #
    # Create the Oracle Inventory location file
    #
    su -
    echo "inventory_loc=/u01/app/oracle/oraInventory" > /etc/oraInst.loc
    echo "inst_group=oinstall" >> /etc/oraInst.loc
    chmod 644 /etc/oraInst.loc
    chown root:root /etc/oraInst.loc
    chown -R oracle:oinstall /u01/*
    
    #
    # Install the Oracle Database 10g 10.2.0.1
    #
    su - oracle
    cd /u01/temp
    unzip 10201_database_linux32.zip
    ./database/runInstaller -silent -responseFile /u01/temp/1_db.rsp
    rm -rf database
    
    #
    # Run root.sh
    #
    su -
    # Accept all defaults for next step
    /u01/app/oracle/product/10.2.0/db_1/root.sh
    exit
    

    3. Install Ultra Search 10g (10.2):
    #
    # Install Ultra Search from the companion CD (required to create the Metadata Repository)
    #
    export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    export ORACLE_SID=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    rm -rf database
    unzip 10201_companion_linux32.zip
    ./companion/runInstaller -silent -responseFile /u01/temp/2_ultrasearch.rsp
    rm -rf companion
    

    4. Create database and listener:
    #
    # Manually create an Oracle database "orcl"
    #
    echo "orcl:/u01/app/oracle/product/10.2.0/db_1:N" >> /etc/oratab
    chmod 700 3_createdb/create_orcl.sh
    cd 3_createdb
    ./create_orcl.sh
    cd ..
    isqlplusctl stop
    
    #
    # Create listener files
    #
    echo "LISTENER =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "  (DESCRIPTION_LIST =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "    (DESCRIPTION =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "      (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.oracle.com)(PORT = 1521))" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "    )" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "  )" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "SID_LIST_LISTENER =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "  (SID_LIST =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "    (SID_DESC =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "      (SID_NAME = PLSExtProc)" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "      (PROGRAM = extproc)" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "    )" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    echo "  )" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
    
    echo "orcl =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "  (DESCRIPTION =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "    (ADDRESS_LIST =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "      (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.oracle.com)(PORT = 1521))" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "    )" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "    (CONNECT_DATA =" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "      (SERVICE_NAME = orcl.local.com)" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "    )" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "  )" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    echo "" >> /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
    
    lsnrctl start
    

    5. Load Metadata Repository:
    #
    # Install the Metadata Repository software
    #
    cpio -idcmv < as_linux_x86_mrca_101203.cpio
    ./Disk1/runInstaller -silent -responseFile /u01/temp/4_mrca.rsp
    rm -rf Disk1
    
    #
    # Run root.sh
    #
    su -
    # Accept all defaults for next step
    /u01/app/oracle/product/10.1.2/mrca_1/root.sh
    exit
    
    #
    # Load the Metadata Repository into the database
    #
    /u01/app/oracle/product/10.1.2/mrca_1/runRepca -SILENT -RESPONSEFILE /u01/temp/5_repca.rsp
    

    6. Apply Oracle Database 10g (10.2.0.2) Patchset:
    #
    # Stop database and listener
    #
    lsnrctl stop
    sqlplus "/ as sysdba"
    shutdown immediate
    exit
    
    #
    # Install Oracle Database 10g (10.2.0.2) Patchset (required for Oracle SOA Suite 10g)
    #
    unzip p4547817_10202_LINUX.zip
    ./Disk1/runInstaller -silent -responseFile /u01/temp/6_dbpatchset.rsp
    rm -rf Disk1
    
    #
    # Run root.sh
    #
    su -
    # Accept all defaults for next step
    /u01/app/oracle/product/10.2.0/db_1/root.sh
    exit
    
    #
    # Post-installation upgrade steps
    #
    sqlplus "/ as sysdba"
    startup upgrade
    @?/rdbms/admin/catupgrd.sql
    shutdown immediate
    startup
    @?/rdbms/admin/utlrp.sql
    exit
    lsnrctl start
    

    7. Install Oracle SOA Suite 10g (10.1.3.1):
    #
    # Create the SOA specific schemas (ORABPEL, ORAESB, ORAWSM) using IRCA
    #
    cpio -idcmv < soa_linux_x86_101310_disk1.cpio
    export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    export ORACLE_SID=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    cd soa_101310_1/install/soa_schemas/irca
    # Enter 'localhost 1521 orcl.local.com' for next step
    ./irca.sh
    cd ../../../..
    
    #
    # Install Oracle SOA Suite 10g (10.1.3.1)
    #
    ./soa_101310_1/runInstaller -silent -responseFile /u01/temp/7_soa.rsp
    chmod -R 777 soa_101310_1
    rm -rf soa_101310_1
    opmnctl stopall
    
    #
    # Run root.sh
    #
    su -
    # Accept all defaults for next step
    /u01/app/oracle/product/10.1.3/soa_1/root.sh
    exit
    

    8. Apply Oracle SOA Suite 10g (10.1.3.3) Patchset:
    #
    # Install Oracle SOA Suite 10g (10.1.3.3) Patchset
    #
    unzip p6148874_101330_LINUX.zip
    ./Disk1/runInstaller -silent -responseFile /u01/temp/8_soapatchset.rsp
    rm -rf Disk1
    
    #
    # Run root.sh
    #
    su -
    # Accept all defaults for next step
    /u01/app/oracle/product/10.1.3/soa_1/root.sh
    exit
    
    #
    # Run Configuration Assistants that failed to start
    #
    /u01/app/oracle/product/10.1.3/soa_1/opmn/bin/opmnctl startall
    /u01/app/oracle/product/10.1.3/soa_1/config/deploy_bpel.sh password123
    /u01/app/oracle/product/10.1.3/soa_1/config/deploy_esb.sh password123
    # The next command is in a single line
    /u01/app/oracle/product/10.1.3/soa_1/perl/bin/perl -I /u01/app/oracle/product/10.1.3/soa_1/perl/lib/5.8.3:/u01/app/oracle/product/10.1.3/soa_1/perl/lib/site_perl/5.8.3 /u01/app/oracle/product/10.1.3/soa_1/config/deploy_owsm.pl password123
    /u01/app/oracle/product/10.1.3/soa_1/opmn/bin/opmnctl shutdown
    /u01/app/oracle/product/10.1.3/soa_1/opmn/bin/opmnctl startall
    
    #
    # Create 'tnsnames.ora' file
    #
    echo "orcl =" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "  (DESCRIPTION =" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "    (ADDRESS_LIST =" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "      (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.oracle.com)(PORT = 1521))" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "    )" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "    (CONNECT_DATA =" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "      (SERVICE_NAME = orcl.local.com)" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "    )" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "  )" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "" >> /u01/app/oracle/product/10.1.3/soa_1/network/admin/tnsnames.ora
    echo "exit" >> /u01/app/oracle/product/10.1.3/soa_1/bpel/system/database/scripts/upgrade_10131_10133_oracle.sql
    
    #
    # Post-installation upgrade steps
    #
    sqlplus orabpel/password@orcl @/u01/app/oracle/product/10.1.3/soa_1/bpel/system/database/scripts/upgrade_10131_10133_oracle.sql
    

    Applicable Versions
    Oracle SOA Suite 10g (10.1.3.3)
    Oracle Database 10g (10.2.0.2)