This article presents installation of Oracle database 12C(12.1) on Fedora 22.
Read following article to install Fedora 22 Linux: Install Fedora 22(for comfort set 4G memory for your virtual machine).
Software
Software for 12CR1 is available on OTN or edelivery
- OTN: Oracle Database 12c Release 1 (12.1.0.2) Software (64-bit).
- edelivery: Oracle Database 12c Release 1 (12.1.0.2) Software (64-bit)
Database software
linuxamd64_12102_database_1of2.zip linuxamd64_12102_database_2of2.zip
If you are going to use version 12.1.0.1 you can encounter bugs. Solutions for the bugs are described in the following post: Install Oracle 12C Release 1 (12.1) on Fedora 20.
OS configuration and preparation
OS configuration is executed as root. To login as root just execute following command in terminal.
su - root
It’s recommended to update your Fedora 22 kernel to latest version as root
dnf update
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.dbaora.com fedora localhost.localdomain localhost
Add groups
#groups for database management groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper groupadd -g 54324 backupdba groupadd -g 54325 dgdba groupadd -g 54326 kmdba groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54329 asmadmin
Add user Oracle for database software
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba oracle
Change password for user Oracle
passwd oracle
OS configuration
Check which packages are installed and which are missing
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' binutils \ compat-libstdc++-33 \ 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
Install missing packages (two options)
- from dvd. It’s just example:
#directory with mounted Oracle Fedora 22 install disk cd /media/<Fedora 22>/Server/Packages #install missed packages (example for package unixODBC*) rpm -Uvh unixODBC*
- or install via internet connection. It’s just example:
dnf install unixODBC* zlib-devel
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
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=permissive
Add the following line to the “/etc/pam.d/login” file, if it does not already exist.
session required pam_limits.so
Additional steps
Create .bash_profile for user oracle
# Oracle Settings export TMP=/tmp export ORACLE_HOSTNAME=fedora.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
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
Install database software
Let’s start with database software installation as oracle user.
su - oracle --unizp software unzip linuxamd64_12102_database_1of2.zip unzip linuxamd64_12102_database_2of2.zip --I defined 4 aliases in .bash_profile of user oracle to make --administration heaven :) [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 [oracle@fedora ~]$ envo ORACLE_UNQNAME=ORA12C ORACLE_SID=ORA12C ORACLE_BASE=/ora01/app/oracle ORACLE_HOSTNAME=fedora.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@fedora ~]$ cdob [oracle@fedora oracle]$ pwd /ora01/app/oracle [oracle@fedora db_1]$ cdoh [oracle@fedora db_1]$ pwd /ora01/app/oracle/product/12.1.0/db_1 --run installation ./runInstaller
1. Uncheck checkbox “I wish to receive security updates via My Oracle Support” and then click “Next” button.
2. Ignore following message about email and click “Yes” button and Ignore message about environment and click “Yes” button.
3. Select “Create and configure a database” then click “Next” button.
4. Select “Server class” and click “Next” button.
5. Accept default “Single instance database installation” and click “Next” button.
6. Select “Advanced install” to later select more options during database installation and click “Next” button.
7. You can select language here. Once it’s done click “Next” button.
8. You can select here type of binaries to install. Once it’s done click “Next” button.
9. Here you should see directories for ORACLE_BASE and ORACLE_HOME for your binaries according to environmental settings. Click “Next” button.
10. Accept default and click “Next” button.
11. Accept default “General Purpose/ transaction Processing” and click “Next” button.
12. Here you define your database name. Check checkbox “Create as Container database” and enter “Pluggable database name” to add your first container ORA12C and pluggable PORA12C1 database and click “Next” button.
13. Specify more details about your database on 3 tabs where you can define memory settings, character set and if to install sample schema on your database. Once you are happy with your settings click “Next” button.
14. Specify directory where you want to install your database files then click “Next” button.
15. On this page you can register your database in Oracle Enterprise Manager”. Accept default settings and click “Next” button.
16. Check checkbox “Enable Recovery” to specify directory for your recovery area “Recovery area location” and click “Next” button.
17. Specify password for each user or enter the same for all. Once it’s done click “Next” button.
18. Here you can specify OS group for each oracle group. Accept default settings and click “Next” button.
19. Checks are started to verify if OS is ready to install database software.
20. If everything is right click “Install” button. It’s the last moment to come back to each of previous point and make changes.
21. Installation in progress … go play football
22. Once binaries are installed the last step is to run 2 scripts as user root.
--execute scripts /ora01/app/oraInventory/orainstRoot.sh /ora01/app/oracle/product/12.1.0/db_1/root.sh
23. Installation will continue …
24. Database Configuration Assistant will start automatically and create database for you.
25. When database is ready you should see summary window. You can click “Password Management” to change passwords for many accounts in database. Once it’s done click “OK” button to continue.
26. You are lucky 12C installation is completed. Click “Close” button.
27. Try to login as SYS to Enterprise manager Database express 12C . NOTE – It requires to install flash plug-in on Fedora 22.
https://fedora.dbaora.com:5500/em
Remember it requires listener up and running.
Have a fun 🙂
Tomasz
Trouble is, Fedora 22 no longer has a traditional sysctl.conf file,
so where do the changes to that file get entered now?
The file says:
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
…. you may have to update the instructions for that part.
A really great tutorial! It works out of the box in my Fedora 23 installation. Thank you very much, I will use this in my company. Much appreciated!