You are on page 1of 12

Install Oracle 12C Release 1 (12.

1) on Centos Linux 7
linuxamd64_12c_database_1of2.zip
linuxamd64_12c_database_2of2.zip
su - root
The “/etc/hosts” file must contain a fully qualified name for the server.
127.0.0.1 centos7 centos7.dbaora.com localhost.localdomain localhost

Set hostname
hostnamectl set-hostname centos7.dbaora.com --static

Add groups
#groups for database management
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper

Add user Oracle for database software


/usr/sbin/useradd -u 501 -g oinstall -G dba,oper oracle
Change password for user Oracle
passwd oracle

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=permissive

Packages
Check which packages are installed and which are missing
binutils gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXext \
libXtst \
libX11 \
libXau \
libXi \
make \
sysstat \
unixODBC \
unixODBC-devel \
zlib-devel \
compat-libcap1 \
compat-libstdc++-33
In my case it returns following
binutils-2.23.52.0.1-12.el7(x86_64)
gcc-4.8.2-3.el7(x86_64)
gcc-c++-4.8.2-3.el7(x86_64)
glibc-2.17-36.el7(x86_64)
glibc-common-2.17-36.el7(x86_64)
glibc-devel-2.17-36.el7(x86_64)
glibc-headers-2.17-36.el7(x86_64)
package ksh is not installed
libaio-0.3.109-9.el7(x86_64)
package libaio-devel is not installed
libgcc-4.8.2-3.el7(x86_64)
libstdc++-4.8.2-3.el7(x86_64)
libstdc++-devel-4.8.2-3.el7(x86_64)
libXext-1.3.2-1.el7(x86_64)
libXtst-1.2.2-1.el7(x86_64)
libX11-1.6.0-1.el7(x86_64)
libXau-1.0.8-1.el7(x86_64)
libXi-1.7.2-1.el7(x86_64)
make-3.82-19.el7(x86_64)
sysstat-10.1.5-1.el7(x86_64)
package unixODBC is not installed
package unixODBC-devel is not installed
package zlib-devel is not installed
package compat-libcap1 is not installed
package compat-libstdc++-33 is not installed

You need to install missing from dvd. Just mount it and install missing packages using rpm -Uvh command from
directory <mount dvd>/Packages.
NOTE – I’m using x86_64 version of packages
rpm -Uvh libaio-devel*.x86_64.rpm
rpm -Uvh unixODBC*.x86_64.rpm
rpm -Uvh zlib-devel*.x86_64.rpm
rpm -Uvh ksh*.x86_64.rpm
rpm -Uvh compat-libcap1*.x86_64.rpm
rpm -Uvh compat-libstdc++-33*.x86_64.rpm

Add kernel parameters to /etc/sysctl.conf


# kernel parameters for 12gR1 installation

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

Apply kernel parameters


/sbin/sysctl -p
Add following lines to set shell limits for user oracle in file /etc/security/limits.conf
# shell limits for users oracle 12gR1

oracle soft nofile 1024


oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

Additional steps
Create .bash_profile for user oracle
# Oracle Settings
export TMP=/tmp
export ORACLE_HOSTNAME=centos7.dbaora.com
export ORACLE_UNQNAME=ORA12C
export ORACLE_BASE=/ora01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1
export ORACLE_SID=ORA12C
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

envo
Directory structure
Create directory structure as user root
ORACLE_BASE – /ora01/app/oracle
ORACLE_HOME – /ora01/app/oracle/product/12.1.0/db_1
mkdir -p /ora01/app/oracle/product/12.1.0/db_1
chown oracle:oinstall -R /ora01
In Oracle Enterprise Linux 7 /tmp data is stored on tmpfs which consumes memory and is too small. To revert it
back to storage just run following command and REBOOT machine to be effective.
systemctl mask tmp.mount
Install database software
Let’s start with database software installation as oracle user.
su - oracle

--unizp software it will create directory "database"


--where you can find installation software
unzip linuxamd64_12c_database_1of2.zip
unzip linuxamd64_12c_database_2of2.zip

--I defined 4 aliases in .bash_profile of user oracle to make


--administration heaven :)

[oracle@centos7 ~]$ 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=ORA12C
ORACLE_SID=ORA12C
ORACLE_BASE=/ora01/app/oracle
ORACLE_HOSTNAME=centos7.dbaora.com
ORACLE_HOME=/ora01/app/oracle/product/12.1.0/db_1

--run alias command cdob and cdoh


--to check ORACLE_BASE, ORACLE_HOME
[oracle@centos7 ~]$ cdob
[oracle@centos7 oracle]$ pwd
/ora01/app/oracle

[oracle@centos7 db_1]$ cdoh


[oracle@centos7 db_1]$ pwd
/ora01/app/oracle/product/12.1.0/db_1

--run installation from "database" directory


./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. Ignore following message. Just click “Yes” button.

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


6. Select “Desktop Class” and click “Next” button.

7. On the screen you need to define global database name and pluggable database name. Rest of options you can
keep default. Then click “Next” button.
8. Accept default settings then click “Next” button.

9. Summary screen just before installation. It’s the last moment to make changes in previous steps. If you are ready
click “Install” button.
10. Installation begins …

11. Unfortunately I received error during binaries linking


in log you should see
/usr/bin/ld: note: '__tls_get_addr@@GLIBC_2.3' is defined in
DSO /lib64/ld-linux-x86-64.so.2 so try adding it to the linker
command line /lib64/ld-linux-x86-64.so.2: could not read symbols:
Invalid operation

INFO: collect2: error: ld returned 1 exit status


12. To solve this problem do following as user Oracle
remove directory /ora01/app/oracle/product/12.1.0/db_1/lib/stubs
rm -rf /ora01/app/oracle/product/12.1.0/db_1/lib/stubs
backup file $ORACLE_HOME/rdbms/lib/env_rdbms.mk
cd $ORACLE_HOME/rdbms/lib/
cp env_rdbms.mk env_rdbms.mk.bck
make changes in $ORACLE_HOME/rdbms/lib/env_rdbms.mk
modify line 176
LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS)
to
LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS) -lons
modify line 279 and 280
LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS)
LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS)
to
LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS) -Wl,--no-as-needed
LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS) -Wl,--no-as-needed
modify line 3041 and 3042
TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
$(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS)
to
TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
$(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12
Once it’s done click “Retry” button on screen from point 11 to continue with installation. Linking should finish
properly and binaries installation should continue.
13. In the end you will be asked to run as root two scripts. Once they are completed click “OK” button – installation
will proceed.
/ora01/app/oraInventory/orainstRoot.sh
/ora01/app/oracle/product/12.1.0/db_1/root.sh
18. Once binaries are installed automatically DBCA (database configuration assistant) will start to create new
database.
19. You should see summary screen for your database. You can click “Password Management” to unlock and
change passwords for default account. Click “OK” button.

20. Installation is finished. Click “Close” button.


21. Post installation steps
Edit the “/etc/oratab” file to set restart flag for ORA12C to ‘Y’.
ORA12C:/u01/app/oracle/product/12.1.0/db_1:Y

You might also like