5 Replies Latest reply: Nov 24, 2012 10:34 PM by EdStevens RSS

    Install Oracle Database 11gR2 on Ubuntu 12.04

    871292
      This is the simple how to for installing Oracle Database 11gR2 on Ubuntu 12.04

      I have tested all the steps on Ubuntu 12.04 32 bit OS

      SOURCE
      HOW TO INSTALL ORACLE DATABASE 11GR2 on UBUNTU 12.04
      http://www.techienote.com/tag/oracle-database-11g-r2-on-ubuntu-12-04

      Installing Dependencies
      To install dependencies, run
      sudo apt-get update
      sudo apt-get install gcc make binutils gawk x11-utils rpm build-essential libaio1 libaio-dev libmotif4 libtool expat alien ksh pdksh unixODBC unixODBC-dev sysstat elfutils libelf-dev binutils lesstif2 lsb-cxx libstdc++5
      We need to create some softlinks to start the installation. To do so run the following commands,
      sudo ln -sf /bin/bash /bin/sh
      sudo ln -s /usr/bin/awk /bin/awk
      sudo ln -s /usr/bin/rpm /bin/rpm
      sudo ln -s /usr/bin/basename /bin/basename
      sudo ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a
      sudo ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a
      sudo ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1
      sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/libstdc++.so.6
      Also we need to add oracle user and oinstall, dba, nobody group. Run following commands,
      sudo addgroup oinstall
      sudo addgroup dba
      sudo addgroup nobody
      sudo usermod -g nobody nobody
      sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
      sudo mkdir /home/oracle
      sudo chown -R oracle:dba /home/oracle
      We need to do changes in start-up script, run following commands as root
      mkdir /etc/rc.d
      for i in 0 1 2 3 4 5 6 S
      do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d 
      done
      Now we will create the directory for installation, and changes it owner to oracle. Run following commands to do the same
      sudo mkdir -p /u01/app/oracle
      sudo chown -R oracle:dba /u01
      We also need to modify the kernel parameter, to do so run following commands as root
      echo "#">> /etc/sysctl.conf
      echo "# Oracle 11gR2 entries">> /etc/sysctl.conf
      echo "fs.aio-max-nr=1048576" >> /etc/sysctl.conf
      echo "fs.file-max=6815744" >> /etc/sysctl.conf
      echo "kernel.shmall=2097152" >> /etc/sysctl.conf
      echo "kernel.shmmni=4096" >> /etc/sysctl.conf
      echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
      echo "net.ipv4.ip_local_port_range=9000 65500" >> /etc/sysctl.conf
      echo "net.core.rmem_default=262144" >> /etc/sysctl.conf
      echo "net.core.rmem_max=4194304" >> /etc/sysctl.conf
      echo "net.core.wmem_default=262144" >> /etc/sysctl.conf
      echo "net.core.wmem_max=1048586" >> /etc/sysctl.conf
      echo "kernel.shmmax=1073741824" >> /etc/sysctl.conf
      Note: kernel.shmmax = max possible value, e.g. size of physical memory in bytes. In my case machine is having 2GB so we are specifying 1GB. Adjust the parameter as per your configuration

      Load new kernel parameters, by running following,
      sudo sysctl -p
      We have to change shell configuration, to do the same run following commands as root user,
      cp /etc/security/limits.conf /etc/security/limits.conf.original
      echo "#Oracle 11gR2 shell limits:">>/etc/security/limits.conf
      echo "oracle soft nproc 2048">>/etc/security/limits.conf
      echo "oracle hard nproc 16384">>/etc/security/limits.conf
      echo "oracle soft nofile 1024">>/etc/security/limits.conf
      echo "oracle hard nofile 65536">>/etc/security/limits.conf
      Download Oracle 11g R2 database from Oracle Download Center for linux.

      I have downloaded both the zip in /home/oracle. We need to extract both the zip to start the installation. To unzip run,
      cd /home/oracle
      unzip linux_11gR2_database_1of2.zip 
      unzip linux_11gR2_database_2of2.zip
      Now we will start the installation. You can start the installation from /home/oracle/database.
      Login as a oracle user.
      su oracle
      Go to the binaries and start the installation as a oracle user,
      cd /home/oracle
      chmod 777 -R database
      cd database
      ./runInstaller -ignoreSysPrereqs
      Next we go though the installation (I don’t have the “Oracle Support Password” so just skip in here):

      In Selection Installation Option, choose Create and configure a database:

      In System Class, choose Server Class (we hope to give a full control during installation):

      In Node Selection, choose Single instance database installation:

      In Select Install Type, choose Advanced install:

      In Select Product Languages, I choose to install English language:

      In Select Database Edition, I choose Enterprise Edition:

      In Specify Installation Location, it should default as below:
      Oracle Base: /u01/app/oracle
      Sofeware Location: /u01/app/oracle/product/11.2.0/dbhome_1
      In Create Inventory, it should default as below:
      Inventory Directory: /u01/app/oraInventory
      oraInventory Group Name: oinstall
      In Select Configure Type, choose General Purpose / Transaction Processing:

      (IMPORTANT!) In Specify Database Identifiers, configure as below:
      Global database name: orcl.techienote.com
      Oracle Service Identifier (SID): orcl
      In Specify Configuration Options, configure as below:
      Memory -> Enable Automatic Memory Management: TRUE
      Character sets: Use Unicode (AL32UTF8)
      In Specify Management Options, choose Use Database Control for database management but keep other else empty:

      In Specify Database Storage Options, choose File System where:

      Specify database file location: /u01/app/oracle/oradata

      In Specify Recovery Options, choose Do not enable automated backups:

      In Specify Schema Passwords, I am a bit lazy so choose Use the same password for all accounts (don’t do this in production server!):

      In Privileged Operating System Groups, confirm as below:
      Database Administrator (OSDBA) Group: dba
      Database Operator (OSOPER) Group: oinstall
      In Preform Prerequisite Checks, just simply ignore all warning message (since we are using Debian but not Oracle officially supported OS):

      So just confirm everything in Summary:

      And now let’s go for a coffee break ;-)

      Now following the instructions and run the following commands with “root” user:
      /u01/app/oraInventory/orainstRoot.sh
      /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
      Ok you get it!

      Confirm with installation progress

      In previous screen the installer mentioned that we can access “Enterprise Manager Database Control URL” from https://localhost:1158/em, so now let’s open the browser and test it with following account:
      User Name: SYS
      Password: your_secret_password
      Connect As: SYSDBA
      Once login it should show as below:

      Error which I faced at the time of installation :
      Error No 1

      INFO: Building Client Shared Libraries
      INFO: Building Client Shared Libraries
      INFO: The output of this make operation is also available at: '/u01/app/oracle/product/11.2.0/dbhome_1/install/make.log'
      INFO:

      INFO: Start output from spawned process:
      INFO: ----------------------------------
      INFO:

      INFO: /u01/app/oracle/product/11.2.0/dbhome_1/bin/genclntsh

      INFO: /
      INFO: usr
      INFO: /
      INFO: bin/ld: cannot find /usr/lib/libpthread_nonshared.a
      INFO: inside
      collect2:
      INFO: ld returned 1 exit status
      INFO:

      INFO: genclntsh: Failed to link libclntsh.so.11.1

      INFO: make:
      INFO: *** [client_sharedlib] Error 1

      INFO: End output from spawned process.
      INFO: ----------------------------------
      INFO: Exception thrown from action: make
      Exception Name: MakefileException
      Exception String: Error in invoking target 'client_sharedlib' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oraInventory/logs/installActions2012-05-08_10-11-08PM.log' for details.
      Exception Severity: 1
      <pre>

      Solution for problem 1 is as follows
      <pre lang="bash">
      wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.2ubuntu10_amd64.deb
      dpkg-deb -x ia32-libs_2.2ubuntu10_amd64.deb ia32-libs
      cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib/
      cd /usr/lib
      ln -s libstdc++.so.5.0.7 libstdc++.so.5
      ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a

      Error No 2

      INFO: /
      INFO: usr
      INFO: /
      INFO: bin
      INFO: /ld: warning: -z lazyload ignored.
      /usr/bin/ld:
      INFO: warning
      INFO: : -z nolazyload ignored.
      /usr/bin/ld: /u01/app/oracle/product
      INFO: /11.2.0/dbhome_1/sysman/lib//libnmectl.a(nmectlt.o): undefined reference to symbol 'B_DestroyKeyObject'
      INFO:

      INFO: /usr/bin/ld: note: 'B_DestroyKeyObject' is defined in DSO /u01
      INFO: /app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so so try adding it to the
      INFO: linker
      INFO:
      INFO: command line
      /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so: could
      INFO:
      INFO: not read symbols: Invalid operation
      collect2:
      INFO: ld returned 1 exit status
      INFO:

      INFO: make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib'

      INFO: make[1]: *** [u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/emdctl] Error 1
      make: *** [emdctl] Error 2

      INFO: End output from spawned process.
      INFO: ----------------------------------
      INFO: Exception thrown from action: make
      Exception Name: MakefileException
      Exception String: Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2012-05-08_10-11-08PM.log' for details.
      Exception Severity: 1

      Solution for problem 2 is as follows

      export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
      sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
      sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh
      sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
      sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
      sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk

      In case of any questions kindly post it here.


      Edited by: user9171063 on Nov 3, 2012 6:24 AM

      Edited by: user9171063 on Nov 3, 2012 6:29 AM
        • 1. Re: Install Oracle Database 11gR2 on Ubuntu 12.04
          Srini Chavali-Oracle
          Ubuntu is currently not a certified distro for installing 11gR2 - http://docs.oracle.com/cd/E11882_01/install.112/e24321/pre_install.htm#CIHFICFD

          Just because you are somehow able to install the software does not necessarily mean that all of the features will work as advertised - you will have to troubleshoot any issues on your own.

          Oracle Linux is available for free (from https://linux.oracle.com) for personal learning purposes and is a supported OS for the purposes of installing 11gR2, and is likely a better choice than Ubuntu

          HTH
          Srini
          • 2. Re: Install Oracle Database 11gR2 on Ubuntu 12.04
            552969
            didnt work for me on Ubuntu 12.04 (64 bit)
            Still getting first error you mentioned here.

            Let me know if you do find some alternative for this...

            cheers
            raghav..
            • 3. Re: Install Oracle Database 11gR2 on Ubuntu 12.04
              sb92075
              raghav wrote:
              didnt work for me on Ubuntu 12.04 (64 bit)
              Still getting first error you mentioned here.

              Let me know if you do find some alternative for this...

              cheers
              raghav..
              use VirtualBox to run prepackaged & installed Oracle DB
              • 4. Re: Install Oracle Database 11gR2 on Ubuntu 12.04
                Srini Chavali-Oracle
                Download and instructions are here - http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html

                HTH
                Srini
                • 5. Re: Install Oracle Database 11gR2 on Ubuntu 12.04
                  EdStevens
                  raghav wrote:
                  didnt work for me on Ubuntu 12.04 (64 bit)
                  Still getting first error you mentioned here.

                  Let me know if you do find some alternative for this...

                  cheers
                  raghav..
                  The alternative for you is the same as was given to the OP. Namely, run an OS that is certified by Oracle to support their products. Ubuntu isn't one of them, no matter how clever some people may seem. Often they are "too clever by half."

                  Just because someone posts that they were able to get their car to run on sewage water doesn't mean you can, or should. And it certainly doesn't mean you can expect to get help from any certified mechanic -- not to mention the dealership -- if you actually attempt to do so and run into, uh, "issues."

                  Edited by: EdStevens on Nov 24, 2012 10:30 PM