Install Oracle 11g in CentOS Linux 7

It’s pretty easy to install any application or software in Windows operating system but what about Unix/Linux based system? Mostly Unix/Linux based operating systems are built to serve Enterprise or Production applications not intend to serve day to day End User tasks. As a result there are more coding/scripting stuffs than automation in case of installations. Likewise installing Oracle releases in Linux/Unix environment is not straightforward like windows one.

Steps involved:

  1. First you should have CentOS Linux 7 installed and have the authentication of user root; this installation performed in a x86-64 based system.
  2. Connect to the CentOS Linux 7 by SSH as user root.
  3. Create a user named oracle under which the Oracle Software will be installed.
    • Open a shell prompt or Terminal if you are not already logged into one.
    • Supply the below command to create the oracle user:
      • useradd oracle
    • Set the password for the oracle user:
      • passwd oracle
  4. Create required user groups .
    • groupadd -g 1011 oinstall
      groupadd -g 1012 dba
      groupadd -g 1013 oper
  5. Add user oracle to the above created groups.
    • usermod -a -G oinstall,dba,oper oracle
  6. Download the required version, edition, cpu architecture specific installation files from Oracle website.
  7. If you downloaded to your desktop then transfer the file/s to the installation server by SSH SFTP.
  8. Login to the oracle user. Move the installation files to the oracle user’s home directory, generally /home/oracle.
  9. Unzip the content of the downloaded files, below command will extract the files to directory named as database.
    • unzip linux.x64_11gR2_database_1of2.zip
      unzip linux.x64_11gR2_database_2of2.zip
  10. login to the root user.
    • su - root
  11. Create the directories for the Oracle software to be installed.
    • mkdir -p /u01/app/oracle/product/11.2/db_1
      chown -R oracle:oinstall /u01
      chmod -R 775 /u01
  12. Set secure Linux to permissive by editing the “/etc/selinux/config” file via Vi editor.
    • SELINUX=permissive
  13. Run the following command to take effect.
    • setenforce Permissive
  14. Disable the Linux firewall by following commands.
    • systemctl stop firewalld
      systemctl disable firewalld
  15. Edit the “/etc/hosts” file to contain a fully qualified name for the server.
    • vi /etc/hosts 
      Example: 192.168.0.147 testbed.localdomain testbed
  16. Update the Yum repository(optional).
    • yum update
  17. Add the following lines in the “/etc/sysctl.conf” file.
    • fs.aio-max-nr = 1048576
      fs.file-max = 6815744
      kernel.shmall = 2097152
      kernel.shmmax = 536870912
      kernel.shmmni = 4096
      # semaphores: semmsl, semmns, semopm, semmni
      kernel.sem = 250 32000 100 128
      net.ipv4.ip_local_port_range = 9000 65500
      net.core.rmem_default=262144
      net.core.rmem_max=4194304
      net.core.wmem_default=262144
      net.core.wmem_max=1048586
  18. Run the following command to update the kernel.
    • /sbin/sysctl -p
  19. Add the following lines to the “/etc/security/limits.conf” file editing via Vi.
    • oracle              soft    nproc   2047
      oracle              hard    nproc   16384
      oracle              soft    nofile  4096
      oracle              hard    nofile  65536
      oracle              soft    stack   10240
  20. Add the following line to the “/etc/pam.d/login” file
    • session    required     pam_limits.so
  21. Install the required packages. See the cpu architecture based package requirements here.
    • yum install binutils -y
      yum install compat-libstdc++-33 -y
      yum install compat-libstdc++-33.i686 -y
      yum install gcc -y
      yum install gcc-c++ -y
      yum install glibc -y
      yum install glibc.i686 -y
      yum install glibc-devel -y
      yum install glibc-devel.i686 -y
      yum install ksh -y
      yum install libgcc -y
      yum install libgcc.i686 -y
      yum install libstdc++ -y
      yum install libstdc++.i686 -y
      yum install libstdc++-devel -y
      yum install libstdc++-devel.i686 -y
      yum install libaio -y
      yum install libaio.i686 -y
      yum install libaio-devel -y
      yum install libaio-devel.i686 -y
      yum install libXext -y
      yum install libXext.i686 -y
      yum install libXtst -y
      yum install libXtst.i686 -y
      yum install libX11 -y
      yum install libX11.i686 -y
      yum install libXau -y
      yum install libXau.i686 -y
      yum install libxcb -y
      yum install libxcb.i686 -y
      yum install libXi -y
      yum install libXi.i686 -y
      yum install make -y
      yum install sysstat -y
      yum install unixODBC -y
      yum install unixODBC-devel -y
      yum install zlib-devel -y
      yum install elfutils-libelf-devel -y
  22. Set the oracle environment variable into the oracle user’s .bash_profile file. Let’s say the database we are going to install  is named as TEST.
    • # Oracle installation
      TMP=/tmp; export TMP
      TMPDIR=$TMP; export TMPDIR
      
      ORACLE_HOSTNAME=testbed.localdomain; export ORACLE_HOSTNAME
      ORACLE_UNQNAME=TEST; export ORACLE_UNQNAME
      ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
      ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1; export ORACLE_HOME
      ORACLE_SID=TEST; export ORACLE_SID
      ORACLE_TERM=xterm; export ORACLE_TERM
      PATH=/usr/sbin:$PATH; export PATH
      PATH=$ORACLE_HOME/bin:$PATH; export PATH
      
      LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
      CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
  23. If you are connecting from any SSH client like puTTy then download the xming server(from here) to facilitate the x11 forwarding work perfectly.
  24. Start the xming server in your windows machine.
  25. Enable x11 forwarding in SSH client like puTTy. In some SSH client you might also need to select display protocol as xterm-256color. Preferably use puTTY.
  26. Login to the oracle user.
    • su - oracle
  27. set the DISPLAY environmental variable.
    • DISPLAY=<machine-name>:0.0; export DISPLAY
  28. Run the Oracle Universal Installer (OUI) by changing directory to in which the files were unzipped.
    • cd /home/oracle/database
      ./runInstaller
  29. Proceed with the installation: During my installation at the Prerequisite Checks phase shown some packages(libaio-0.3.105 (i386), compat-libstdc++-33-3.2.3 (i386), libaio-devel-0.3.105 (i386), libgcc-3.4.6 (i386), libstdc++-3.4.6 (i386), unixODBC-2.2.11 (i386), unixODBC-devel-2.2.11 (i386), pdksh-5.2.14 ) were missing as we installed the updated packages for those. If you encounter such package missing then check those missing actually or you have installed the updated one; if you installed the updated one then ignore this. In case of ‘pdksh’ package we installed the alternative of it the ‘ksh’ package.
    • Configure Security Updates: Doesn’t select anything. Click ‘Yes’ when shows warning.                                   
    • Installation Option: Select create and configure  a database.                      
    • System Class: Select the Server Class.                                                               
    • Grid Options: Select single instance database installation.                             
    • Install Type: Select Advance install.                                                                        
    • Select Language: Leave the default as English or select as you required.                                                    
    • Database Edition: Select the Enterprise Edition or as you required.                                      
    • Install Location: Provide the Oracle Base and the Install location as you created earlier.     
    • Create Inventory: Leave it default.                                                                                                                                                                                                                                                                                                         
    • Configuration Type: Select General Purpose/Transaction Processing.                                                                                                                                                                                                                    
    • Database Identifiers: Provide the name as TEST.                                                                                                                                                                                                                                           
    • Configuration Options: Select the Automatic Memory Management and the Memory you required.                                                                                                                                                 
    • Management Options: Leave it default.                                                                                                                                                                                                                                                    
    • Database Storage: Select the File System and specify the database file location where the database files will be stored.                                                                                                            
    • Backup and Recovery: Leave it default.                                                                                                                                                                                                                                                        
    • Schema Passwords: Select use the same password, you could change later.                
    • Operating system Groups: Leave it default.                                                                                                                                                                                                                                                    
    • Prerequisite checks: See for any package missing if it is not installed at all then installing the package and try again; if the updated version of the same packages installed then you can ignore.                                                                                                                                                                                   
    • Summary: Have a look at the summary, if need to change anything go back and edit as required.
  30. Finish the installation and try to connect to the instance through SQLPlus*.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.