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
Table of Contents
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)
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.
After successful login, you will reached at the Dashboard of 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.