Install Oracle 11G Release 2 (11.2) on Fedora 22

This article presents how to install Oracle 11G on Fedora 22.

Read following article how to install Fedora 22 Linux: Install Fedora 22 (for comfort set 4G memory for your virtual machine before proceeding with Oracle software installation).

Installation software is available on OTN version 11.2.0.1 or metalink 11.2.0.4. In this installation I’m presenting installation for 11.2.0.4 but for previous version 11.2.0.X it shouldn’t be different.

Check article for new release Install Oracle 12C Release 1 (12.1) on Fedora 22

Oracle software that was verified

release 11.2.0.4

p13390677_112040_Linux-x86-64_1of7.zip 
p13390677_112040_Linux-x86-64_2of7.zip

OS configuration and preparation

OS configuration is executed as root. To login as root just execute following command in terminal.

su - root

Add groups

--groups for database management
--groups id are the same as for 12C installations
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54329 asmadmin
Add user Oracle
--user id is the same as for 12c installations
useradd -u 54321 -g oinstall -G dba,oper,asmadmin oracle

Change password for user

passwd oracle
Add kernel parameters to /etc/sysctl.conf
kernel.shmmni = 4096 
kernel.shmmax = 4398046511104
kernel.shmall = 1073741824
kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576
fs.file-max = 6815744
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

Apply kernel parameters

/sbin/sysctl -p

Add following lines to set shell limits for user oracle in file /etc/security/limits.conf

oracle   soft   nproc    131072
oracle   hard   nproc    131072
oracle   soft   nofile   131072
oracle   hard   nofile   131072
oracle   soft   core     unlimited
oracle   hard   core     unlimited
oracle   soft   memlock  50000000
oracle   hard   memlock  50000000

The /etc/hosts file must contain a fully qualified name for the server.

<IP-address>  <fully-qualified-machine-name>  <machine-name>

For example.

127.0.0.1 fedora fedora.dbaora.com localhost localhost.localdomain

Modify .bash_profile for user oracle in his home directory

# Oracle Settings
export TMP=/tmp

export ORACLE_HOSTNAME=fedora.dbaora.com
export ORACLE_UNQNAME=ORA11G
export ORACLE_BASE=/ora01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ORA11G

PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

alias cdob='cd $ORACLE_BASE'
alias cdoh='cd $ORACLE_HOME'
alias tns='cd $ORACLE_HOME/network/admin'
alias envo='env | grep ORACLE'

umask 022

Check which packages are installed and which are missing

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel

Install missing packages. It’s just example (many in one step):

dnf install unixODBC unixODBC-devel sysstat

Stop and disable firewall

systemctl stop firewalld
systemctl disable firewalld

Edit the “/etc/redhat-release” file replacing the current release information “Fedora release 22 (Twenty Two)” with the following.

redhat release 6

Add the following line to the “/etc/pam.d/login” file, if it does not already exist.

session    required     pam_limits.so

Create directory structure

ORACLE_BASE – /ora01/app/oracle

ORACLE_HOME – /ora01/app/oracle/product/11.2.0/db_1

mkdir -p /ora01/app/oracle/product/11.2.0/db_1
chown oracle:oinstall -R /ora01

Secure Linux

Disable secure linux by editing the “/etc/selinux/config” file, making sure the SELINUX flag is set as follows. It requires REBOOT to be effective !!!

SELINUX=disabled

Install database software

Issue the following command to avoid problems with starting binary installation in graphical mode

xhost +<machine-name>

--in my case it's
xhost +fedora

Let’s start with database software installation as oracle user.

su - oracle

--or unzip software 11.2.0.4
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip

--I defined 4 aliases in .bash_profile of user oracle to make 
--administration easier :)

[oracle@fedora ~]$ alias envo cdob cdoh tns
alias envo='env | grep ORACLE'
alias cdob='cd $ORACLE_BASE'
alias cdoh='cd $ORACLE_HOME'
alias tns='cd $ORACLE_HOME/network/admin'

--run alias command envo to display environment settings
envo
ORACLE_UNQNAME=ORA11G
ORACLE_SID=ORA11G
ORACLE_BASE=/ora01/app/oracle
ORACLE_HOSTNAME=fedora.dbaora.com
ORACLE_HOME=/ora01/app/oracle/product/11.2.0/db_1

--run alias command cdob and cdoh to check ORACLE_BASE, ORACLE_HOME 
[oracle@fedora ~]$ cdob
[oracle@fedora oracle]$ pwd
/ora01/app/oracle

[oracle@fedora db_1]$ cdoh
[oracle@fedora db_1]$ pwd
/ora01/app/oracle/product/11.2.0/db_1

--run installation
./runInstall

1. Uncheck checkbox “I wish to receive security updates via My Oracle Support” and then click “Next” button.

2. Ignore following message and click “Yes” button.

3. Select “Skip software updates” and click “Next” button.

4. Select “Create and configure a database” then click “Next” button.

5. Select “Server Class” then click “Next” button.

6. Select “Single instance database installation” and click “Next” button.

7. Select “Typical Install” and click “Next” button.

8. Enter database name, administration password for user and click “Next” button.

9. Just click “Next” button.

10. Check checkbox “Ignore All” to ignore this error. Then click “Next” button.

11. Just click “Yes” button to continue with installation.

12. Summary screen just before installation. Click “Install” button.

13. Boring installation …

14. I received following error during linking binaries

To fix this error edit $ORACLE_HOME/sysman/lib/ins_emagent.mk, search for the line

 $(MK_EMAGENT_NMECTL)

and replace the line with

$(MK_EMAGENT_NMECTL) -lnnz11

then click “Retry” button

15. Database Configuration will start and create database for you.

16. You should see summary screen for your new database. Click “OK” button to continue with installation.

17. In the “middle” of installation you will be asked to run 2 scripts as user root. when scripts are executed just click “OK” button. Installation will proceed.

--execute scripts
/ora01/app/oraInventory/orainstRoot.sh
/ora01/app/oracle/product/11.2.0/db_1/root.sh

18. Installation completed. Just click “Close” button.

Post installation steps

Edit the “/etc/redhat-release” file to restore original release information.

Fedora release 22 (Twenty Two)

Edit the “/etc/oratab” file to set restart flag for ORA11G to ‘Y’.

ORA11G:/u01/app/oracle/product/11.2.0/db_1:Y

Have a fun 🙂

Tomasz

4 thoughts on “Install Oracle 11G Release 2 (11.2) on Fedora 22

  1. Hi Tomasz,

    First of all, your installation guide is great. However, I encountered the following error after step 13:
    Error in invoking target ‘install’ of makefile ‘/home/oracle/B/product/11g/ctx/lib/ins_ctx.mk’.

    Here is my Fedora 22 configuration in a VM(all of them are the latest version):
    binutils-2.25-8.fc22(x86_64)
    compat-libstdc++-33-3.2.3-68.12(x86_64)
    elfutils-libelf-0.163-3.fc22(x86_64)
    elfutils-libelf-devel-0.163-3.fc22(x86_64)
    gcc-5.1.1-4.fc22(x86_64)
    gcc-c++-5.1.1-4.fc22(x86_64)
    glibc-2.21-7.fc22(x86_64)
    glibc-common-2.21-7.fc22(x86_64)
    glibc-devel-2.21-7.fc22(x86_64)
    glibc-headers-2.21-7.fc22(x86_64)
    ksh-20120801-24.fc22(x86_64)
    libaio-0.3.110-4.fc22(x86_64)
    libaio-devel-0.3.110-4.fc22(x86_64)
    libgcc-5.1.1-4.fc22(x86_64)
    libstdc++-5.1.1-4.fc22(x86_64)
    libstdc++-devel-5.1.1-4.fc22(x86_64)
    make-4.0-3.1.fc22(x86_64)
    sysstat-11.1.2-3.fc22(x86_64)
    unixODBC-2.3.2-6.fc22(x86_64)
    unixODBC-devel-2.3.2-6.fc22(x86_64)

    Here is my /ora01/app/oracle/product/11.2.0/db_1/install/make.log:

    gcc -o ctxhx -m64 -L/ora01/app/oracle/product/11.2.0/db_1/ctx/lib/ -L/ora01/app/oracle/product/11.2.0/db_1/lib/ -L/ora01/app/oracle/product/11.2.0/db_1/lib/stubs/ /ora01/app/oracle/product/11.2.0/db_1/ctx/lib/ctxhx.o -L/ora01/app/oracle/product/11.2.0/db_1/ctx/lib/ -lm -lsc_fa -lsc_ex -lsc_da -lsc_ca -lz -lctxhx -Wl,-rpath,/ora01/app/oracle/product/11.2.0/db_1/ctx/lib -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /ora01/app/oracle/product/11.2.0/db_1/lib/sysliblist`
    /usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14′
    collect2: error: ld returned 1 exit status
    /ora01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk:11: recipe for target ‘ctxhx’ failed

    If you know how to solve this problem, please let us know. Thanks in advance.

    Cheers,
    Sunny

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.