Installing Oracle 12c on Fedora 19 through 20

Install Software Packages

Oracle 12c requires some software packages that may not have been installed on your system. Run the following yum command to install them:


yum install libaio libaio-devel compat-libstdc++-33 elfutils-libelf-devel \
sysstat unixODBC unixODBC-devel ksh

Configure the Kernel

Oracle 12c requires that you at least temporarily increase the values of a couple of kernel parameters. To temporarily increase these values, follow these instructions (as root):


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

Install Oracle

Now, log in as the oracle user.

Since Oracle 12c uses a graphical installer, you need to be running X Windows or point the DISPLAY environment variable to an X Windows session running somewhere.

I have had problems with the graphical installer on enlightenment and fluxbox window managers in the past, though they may work for you.

If you have a CD, mount it and cd to the mount point. If you have a zip distribution, extract the file using:


unzip linuxamd64_12c_database_1of2.zip
unzip linuxamd64_12c_database_2of2.zip
Change directories to the database directory.

Type ./runInstaller

On the Configure Security Updates screen, leave the Email box blank, uncheck the box next to I wish to receive security updates via My Oracle Support and click Next.

When the Email Address Not Specified popup appears, click Yes.

On the Download Software Updates screen, leave Skip software update checked and click Next.

If an Environment does not meet minimum requirements popup appears, just click Yes to continue. I'm not sure what it's looking for but I've always been able to continue safely.

On the Select Installation Option screen, accept the default Create and configure a databaseand click Next.

On the System Class screen, accept the default Desktop Class and click Next.

On the Typical Install Configuration screen, change the Global database name from "orcl.localdomain" to "ora1.localdomain". Enter a password in the Administrative Password and Confirm Password boxes. Change the Pluggable database name from "pdborcl" to "pdbora1". Click Next.

If a popup comes up indicating that The ADMIN password entered does not conform to the Oracle recommended standards click Yes to continue.

On the Summary screen, click Install

The Install Product screen will show the progress of the installation


Partway through the Link binaries phase of the installation, you might get an error indicating that the target links proc gen_pcsfg procob failed. To resolve this, edit /u01/app/oracle/product/12.1.0/rdbms/lib/env_rdbms.mk and add -lons to the end of the line for RMAN_LINKLINE. While you're at it, to avoid further errors, add -lons to the end of the line for PLSHPROF_LINKLINE and add -lnnz12 to the end of the line for TG4PWD_LINKLINE.

Afterwards, they should look like:


RMAN_LINKLINE=$(LINK) $(OPT) $(S0MAIN) $(SSKRMED) $(SKRMPT) \
$(LLIBDBTOOLS) $(LLIBCLIENT) $(LLIBSQL) $(LLIBPLSQL) \
$(LLIBSNLSRTL) $(LLIBUNLSRTL) $(LLIBNLSRTL) \
$(LLIBSLAX) $(LLIBPLSQL) $(LIBPLCN) $(LINKTTLIBS) -lons
and:


PLSHPROF_LINKLINE=$(LINK) $(OPT) $(PLSTMAI) $(SSDBED) \
$(LLIBCLIENT) $(LLIBPLSQL) $(LLIBSLAX) $(LLIBPLSQL) $(LINKTTLIBS) -lons
and:


TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
$(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12
Then rename /u01/app/oracle/product/12.1.0/lib/stubs to /u01/app/oracle/product/12.1.0/lib/stubs.bak as follows:


mv /u01/app/oracle/product/12.1.0/lib/stubs /u01/app/oracle/product/12.1.0/lib/stubs.bak
Then click Retry.

Eventually, a dialog will pop up asking you to run some scripts as root. Just follow the directions on the dialog and click Ok

Soon after, a Database Configuration Assistant dialog should pop up with a progress bar showing the progress of creating the database.

When database creation is complete, a dialog will pop up with a summary. Click OK.

On the Finish screen click Close

Post-Installation

During the installation, the tnsnames.ora file which tells clients how to connect to the database will most likely have been created in 640 mode, leaving it unreadable by anyone not in the oinstall group. There are 2 options here, either add every user that you want to be able to access oracle to the oinstall group, or change permissions on tnsnames.ora to make it world-readable. If you opt for the latter, you can do so using the following command:


chmod o+r /u01/app/oracle/product/11.2.0/network/admin/tnsnames.ora

IMPORTANT!!!...

The tnsnames.ora file was probably also created with an entry for connecting to the container database cdbora1 but probably does not have an entry for connecting to the pluggable database ora1. Copy and paste the entry for cdbora1 and replace references to cdbora1 with ora1 in the copy. Failure to add this entry will cause the instructions for creating a test schema on the previous page to fail.

ALSO IMPORTANT!!!...

Oracle 12c introduces a new paradigm of container and pluggable databases. In this installation, cdbora1 is the container and ora1 is one of the pluggable databases. By default, pluggable databases are not started when the container is started though and there's no option to enable that. However, you can create a trigger in the container database to start all of the pluggable databases as follows:

Run sqlplus with:

sqlplus sys/password@cdbora1 as sysdba

(replacing password with the password you entered during installation)

Then run the following script:


SET CMDSEP /
CREATE TRIGGER open_all_pdbs
AFTER STARTUP
ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter pluggable database all open';
END open_all_pdbs;
/

Now the ora1 pluggable database and any other databases you create will be started when the cdbora1 database is started.