How to install Oracle XE 21c on Rocky Linux 8

Share on Social Media

Empower your development environment with a free, lightweight Oracle database. Learn how to seamlessly install Oracle Database 21c Express Edition (XE) on Rocky Linux 8. #centlinux #linux #oracle

What is Oracle XE?

Oracle XE, previously known as Oracle Database Express Edition, is a free, lightweight version of the powerful Oracle Database. Here are some key points about Oracle XE:

  • Free to Use: It’s a great option for developers, students, or anyone who wants to experiment with a relational database without any licensing costs.
  • Smaller Footprint: Compared to the full Oracle Database, XE is designed to be easier to install and manage on systems with less resources.
  • Full-Featured Experience: Despite being lightweight, XE offers many of the same functionalities as the paid editions, allowing you to create tables, run queries, and perform database administration tasks.
  • Embeddable and Redistributable: You can embed XE within your applications and redistribute it freely, making it useful for developing and deploying database-driven software.
  • Limited Scalability: There are restrictions on the amount of data (up to 2GB) and the number of CPUs (limited to 1 or 2) that XE can handle.

Overall, Oracle XE is a valuable tool for those who need a free and easy-to-use database for development, learning, or small-scale deployments.

Recommended Book: Practical Oracle SQL: Mastering the Full Power of Oracle Database 1st ed. Edition, Kindle Edition (PAID LINK)
Recommended Online Training: Become an Oracle Database Administrator (DBA)

1110388 63ec 2show?id=oLRJ54lcVEg&offerid=1074652.1110388&bids=1074652

Environment Specification

We are using a minimal Rocky Linux 8 virtual machine with following specifications.

  • CPU – 3.4 Ghz (2 cores)
  • Memory – 2 GB
  • Storage – 20 GB
  • Operating System – Rocky Linux 8.6 (Green Obsidian)
  • Hostname – oraclexe-01.centlinux.com
  • IP Address – 192.168.116.128 /24

Update your Linux Operating System

By using a SSH client, login to oraclexe-01.centlinux.com as root user.

Refresh yum cache by executing following command.

# dnf makecache
Rocky Linux 8 - AppStream                       1.5 kB/s | 4.8 kB     00:03
Rocky Linux 8 - AppStream                       299 kB/s | 8.5 MB     00:28
Rocky Linux 8 - BaseOS                          1.4 kB/s | 4.3 kB     00:03
Rocky Linux 8 - BaseOS                          354 kB/s | 2.6 MB     00:07
Rocky Linux 8 - Extras                          818  B/s | 3.5 kB     00:04
Rocky Linux 8 - Extras                          3.2 kB/s |  11 kB     00:03
Metadata cache created.

Execute following dnf command to update your Linux operating system.

# dnf update -y

If the above command updates your Linux Kernel, then reboot your operating system with newly installed Kernel.

# reboot

Verify the versions of your Linux Kernel and operating system.

# uname -r
4.18.0-372.9.1.el8.x86_64

# cat /etc/rocky-release
Rocky Linux release 8.6 (Green Obsidian)

Configure Local DNS Resolver

Before installing Oracle Database Software, you must ensure that the Hostname of your Rocky Linux server is resolvable.

For this purpose you can either use an authoritative DNS Server of your Network, or simply configure the Local DNS resolver.

For the sake of simplicity, we are configuring the Local DNS resolver.

# vi /etc/hosts

Add following line in this file.

192.168.116.128 oraclexe-01.centlinux.com oraclexe-01

Install Oracle XE 21c Preinstall

Oracle provides a Preinstall script for Linux platform to perform most of the pre-installation actions such as creating OS user creation, setting kernel parameters, etc.

Go to link and download Oracle Database Preinstall 21c rpm.

Or you can copy the URL and use it with wget command download Oracle Database Preinstall 21c rpm directly from Linux CLI.

# wget https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
--2022-06-26 18:53:21--  https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
Resolving yum.oracle.com (yum.oracle.com)... 184.50.21.103, 2600:140f:5:681::2a7d, 2600:140f:5:69b::2a7d
Connecting to yum.oracle.com (yum.oracle.com)|184.50.21.103|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30772 (30K) [application/x-rpm]
Saving to: ‘oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm’

oracle-database-pre 100%[===================>]  30.05K   185KB/s    in 0.2s

2022-06-26 18:53:22 (185 KB/s) - ‘oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm’ saved [30772/30772]

Now, install Oracle XE 21c Preinstall package.

# dnf localinstall -y oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm

How to install Oracle XE 21c on Rocky Linux 8

Oracle Database Express Edition 21c is available to download at their official website.

You can copy the URL and use it with wget command to directly download Oracle Database 21c Express Edition from Linux CLI.

# wget https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
--2022-06-26 18:59:49--  https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
Resolving download.oracle.com (download.oracle.com)... 184.50.20.89
Connecting to download.oracle.com (download.oracle.com)|184.50.20.89|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm [following]
--2022-06-26 18:59:50--  https://edelivery.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
Resolving edelivery.oracle.com (edelivery.oracle.com)... 104.111.200.35, 2600:140f:5:49b::366, 2600:140f:5:483::366
Connecting to edelivery.oracle.com (edelivery.oracle.com)|104.111.200.35|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm?AuthParam=1656252108_3babad21c38cf83bfef893b4921707a7 [following]
--2022-06-26 18:59:51--  https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm?AuthParam=1656252108_3babad21c38cf83bfef893b4921707a7
Connecting to download.oracle.com (download.oracle.com)|184.50.20.89|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2339651768 (2.2G) [application/x-redhat-package-manager]
Saving to: ‘oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm’

oracle-database-xe- 100%[===================>]   2.18G  1.19MB/s    in 34m 24s

2022-06-26 19:34:16 (1.08 MB/s) - ‘oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm’ saved [2339651768/2339651768]

Now, install Oracle XE 21c by using dnf command as follow.

# dnf localinstall -y oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
Last metadata expiration check: 1:03:11 ago on Sun 26 Jun 2022 06:38:36 PM PKT.
Dependencies resolved.
================================================================================
 Package                      Architecture Version     Repository          Size
================================================================================
Installing:
 oracle-database-xe-21c       x86_64       1.0-1       @commandline       2.2 G

Transaction Summary
================================================================================
Install  1 Package

Total size: 2.2 G
Installed size: 5.8 G
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Running scriptlet: oracle-database-xe-21c-1.0-1.x86_64                    1/1
  Installing       : oracle-database-xe-21c-1.0-1.x86_64                    1/1
  Running scriptlet: oracle-database-xe-21c-1.0-1.x86_64                    1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database XE, optionally modify the parameters in '/etc/sysconfig/oracle-xe-21c.conf' and then execute '/etc/init.d/oracle-xe-21c configure' as root.

  Verifying        : oracle-database-xe-21c-1.0-1.x86_64                    1/1

Installed:
  oracle-database-xe-21c-1.0-1.x86_64

Complete!

After successful installation of Oracle Database software, configure the Oracle Instance by executing following command.

# /etc/init.d/oracle-xe-21c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database XE.
Enter SYS user password:
********
Enter SYSTEM user password:
***********
Enter PDBADMIN User Password:
*********
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
33% complete
37% complete
40% complete
43% complete
Completing Database Creation
47% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/XE.
Database Information:
Global Database Name:XE
System Identifier(SID):XE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.

Connect to Oracle Database using one of the connect strings:
Pluggable database: oraclexe-01.centlinux.com/XEPDB1
Multitenant container database: oraclexe-01.centlinux.com
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE

Enable and start Oracle Database service.

# systemctl enable --now oracle-xe-21c
oracle-xe-21c.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable oracle-xe-21c

Configure Linux Firewall

Allow the Oracle Listener and Oracle EM Express service ports in Linux firewall.

# firewall-cmd --add-port={1521,5500}/tcp --permanent
success
# firewall-cmd --reload
success

Configure Oracle Database Environment

Switch to oracle user.

# su - oracle

Edit .bash_profile by using vim text editor.

$ vi ~/.bash_profile

And add following commands therein.

export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
export ORACLE_SID=XE
export PATH=$PATH:/opt/oracle/product/21c/dbhomeXE/bin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/product/21c/dbhomeXE/lib/

Execute updated .bash_profile to apply changes to current session.

$ source ~/.bash_profile

Now, you can execute Oracle RDBMS commands from Linux CLI.

Execute lsnrctl command to check the status of Oracle Listener.

$ lsnrctl status

LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 27-JUN-2022 22:02:08

Copyright (c) 1991, 2021, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oraclexe-01.centlinux.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 21.0.0.0.0 - Production
Start Date 27-JUN-2022 21:44:50
Uptime 0 days 0 hr. 17 min. 19 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File /opt/oracle/homes/OraDBHome21cXE/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/oraclexe-01/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclexe-01.centlinux.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=127.0.0.1)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/homes/OraDBHome21cXE/admin/XE/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "XE" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "e25cd873d1d23143e0538074a8c0e324" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "xepdb1" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully

Now, connect to Oracle Database XE instance by using sqlplus command.

$ sqlplus / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Mon Jun 27 22:02:33 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL>

Check the list of Pluggable databases in your XE container database.

SQL> select PDB_NAME from dba_pdbs;

PDB_NAME
--------------------------------------------------------------------------------
XEPDB1
PDB$SEED

Exit from SQL shell.

SQL> exit
Disconnected from Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

Configure Oracle EM Express

Oracle EM Express is a simple database management/monitoring tool integrated with Oracle Database 12c or later.

In Oracle Database 21c, EM Express service by default runs on the local interface. This makes it inaccessible from the network.

Execute following command to verify this.

# ss -tulpn | grep 5500
tcp   LISTEN 0      128        127.0.0.1:5500       0.0.0.0:*    users:(("tnslsnr",pid=1172,fd=18))

To change EM Express to listen on public interface of your Linux server, Connect to Oracle Instance as sys user and execute following command.

SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

PL/SQL procedure successfully completed.

Again check the status of EM Express.

# ss -tulpn | grep 5500
tcp   LISTEN 0      128                *:5500             *:*    users:(("tnslsnr",pid=1172,fd=18))

The EM Express is now running on the public interface of your Rocky Linux server.

To access EM Express, open URL https://oraclexe-01:5500/em in a web browser.

Sign in to Oracle EM Express
Sign in to Oracle EM Express

After successful login, you will reached at the Dashboard of Oracle EM Express.

Oracle EM Express
Oracle EM Express

Final Thoughts

With Oracle Database 21c Express Edition (XE) installed on your Rocky Linux 8 system, you now have a powerful and free development environment at your fingertips. Explore the features of Oracle XE, build your applications, and experiment with database functionalities.

Need additional help or want a more complex Oracle database setup? I can assist you! Visit my Fiverr gig for professional Oracle database installation and configuration services.

2 thoughts on “How to install Oracle XE 21c on Rocky Linux 8”

Leave a Comment