How To Install Oracle Express In CentOS

Oracle Database XE is a great starter database for:

  • Developers working on Node.js, Python, PHP, Java, .NET, XML, and Open Source application
  • DBAs who need a free, starter database for training and deployment
  • Independent Software Vendors (ISVs) and hardware vendors who want a starter database to distribute free of charge
  • Educational institutions and students who need a free database for their curriculum

With Oracle Database XE, you can now develop and deploy applications with a powerful, proven, industry-leading infrastructure, and then upgrade when necessary without costly and complex migrations.It can be installed on any size host machine with any number of CPUs (one database per machine).

Oracle Express is available for MS Windows and GNU / Linux in 64-bit RPM package. We will describe below typical installation on a Centos server. The procedure is not complex.

Install Oracle Express

A prerequisite to comply, is to create a swap partition of at least 2x the amount of RAM on the machine.

Oracle Express is downloaded from its official website. Recovering a ZIP file containing the RPM package. Unzip it and install on CentOS package using the following command:

$ yum install unzip bc

Oracle needs the name of the server (hostname) is associated with an IP address. The simple solution is to edit the / etc / hosts of the server and add an entry with the name of the server and its IP address. We are now ready to start the installation. We unzip the archive and install rpm package using the following commands:

$ unzip oracle-xe-11.2.0-1.0.x86_64.rpm
$ rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm

When the oracle-XE package is installed, we need to configure the database using the oracle-XE Service:

$ /etc/init.d/oracle-xe configure
Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition.  The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts.  Press <enter> to accept the defaults.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration:
Confirm the password:

Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:y

Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.</enter>

By leaving the defaults, you confirm the HTTP port, the port of Listener, you choose a password for SYS and SYSTEM accounts and confirm the starting base to boot the server.

At this stage, the base is started and available locally. The CentOS firewall is installed by default so you have to add rules to open remote access or more brutally disable the firewall with the command:

$ lokkit --disabled

Local access by SQLPlus requires changing the environment of Shell. We can avoid doing so at each stroke by adding the following to the end of the / etc / profile:

export ORACLE_SID=XE
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe
export ORACLE_TERM=xterm
export NLS_LANG=FRENCH_FRANCE.utf8
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

Finally, you can create a normal user that will be used in our development since SQLPlus:

SQL> connect
SQL> create user joelafrite idenfied by <password-for-joe>;
SQL> grant CREATE SESSION, ALTER SESSION, CREATE DATABASE LINK, -
   CREATE MATERIALIZED VIEW, CREATE PROCEDURE, CREATE PUBLIC SYNONYM, -
   CREATE ROLE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, -
   CREATE TRIGGER, CREATE TYPE, CREATE VIEW, UNLIMITED TABLESPACE -
   to joelafrite;

Unless you have a license for Oracle HTTP Server (OHS), your options are the embedded PLSQL Gateway (EPG) or Apex Listener.

The Application Express that is installed with Oracle 11g XE is configured using the EPG. While the EPG is simpler than Apex Listener, it can be painfully slow as of Apex 3.2. And Apex Listener, which is quite fast, adds an extra layer of complexity. So you will need to install an application server to run Apex Listener.

We have to run Apex Listener on both Tomcat (unsupported) as well as Oracle GlassFish 3.x (supported) and was not impressed with either.