Install Oracle Database 23C Developer Release on Oracle Linux OEL8

This article presents how to install Oracle 23C developer Release on Oracle Enterprise Linux 8 (OEL8) using RPM.

Read following article how to install Oracle Enterprise Linux 8: Install Oracle Linux 8 (OEL8) (for comfort set 8G memory for your virtual machine before proceeding with Oracle software installation).

Software

Software for 23C is available here

Original Oracle documentation for installation 23C for Linux

Database Installation Guide for Linux(Release 23c)

Database RPM to download

  • oracle-database-free-23c-1.0-1.el8.x86_64.rpm

OS configuration and preparation

OS configuration is executed as root. To login as root just execute following command in terminal.

su - root

The “/etc/hosts” file must contain a fully qualified name for the server.

<IP-address>  <fully-qualified-machine-name>  <machine-name>

For example.

192.168.122.1 oel8 oel8.dbaora.com

Set hostname

hostnamectl set-hostname oel8.dbaora.com --static

It’s recommended to update OS with latest packages

dnf update

Extra preinstallation steps

Execute following command as user root

dnf install -y oraclelinux-developer-release-el8
dnf install -y oracle-database-preinstall-23c

Details about steps executed by above statement can be found in file

/var/log/oracle-database-preinstall-23c/backup/<DATE>/orakernel.log

It will configure following things:

  • download/install required extra packages
  • configure required os groups
  • create oracle user
  • setup kernel parameters
  • setup user limits
  • change boot settings
  • network specific parameters
  • disable transparent hugepages – Refer Oracle Note:1557478.1
  • disable defrag – Refer Oracle Note:1557478.1

Install main package

Install main package

dnf -y localinstall /tmp/oracle-database-free-23c-1.0-1.el8.x86_64.rpm

It will configure oracle binaries in directory /opt/oracle/product/23c/dbhomeFree

Install database

Install database with following command where “OraclePass23” is password for user SYS,SYSTEM,PDADMIN as root user

(echo "OraclePass23"; echo "OraclePass23";) | \
/etc/init.d/oracle-free-23c 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 FREE.
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
36% complete
39% complete
43% complete
Completing Database Creation
47% complete
49% 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/FREE.
Database Information:
Global Database Name:FREE
System Identifier(SID):FREE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log" for further details.

Connect to Oracle Database using one of the connect strings:
Pluggable database: oel8.dbaora.com/FREEPDB1
Multitenant container database: oel8.dbaora.com

Next steps

Add following lines in /home/oracle/.bash_profile for user oracle

# Oracle Settings
export TMP=/tmp

export ORACLE_HOSTNAME=oel8.dbaora.com
export ORACLE_UNQNAME=FREE
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/23c/dbhomeFree
export ORACLE_SID=FREE

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

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
       ulimit -u 16384 
       ulimit -n 65536
    else
       ulimit -u 16384 -n 65536
    fi
fi

envo

check environment settings as user oracle

sudo su - oracle

check environment

--I defined 4 aliases in .bash_profile of user oracle to make 
--administration easier :)

[oracle@oel8 ~]$ alias envo tns cdoh cdob
alias envo='env | grep ORACLE'
alias tns='cd $ORACLE_HOME/network/admin'
alias cdoh='cd $ORACLE_HOME'
alias cdob='cd $ORACLE_BASE'

--run alias command envo to display environment settings
[oracle@oel8 ~]$ envo
ORACLE_UNQNAME=FREE
ORACLE_SID=FREE
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree
ORACLE_HOSTNAME=oel8.dbaora.com
--run alias command cdob and cdoh --to check ORACLE_BASE, ORACLE_HOME [oracle@oel8 ~]$ cdob [oracle@oel8 oracle]$ pwd /opt/oracle [oracle@oel8 ~]$ cdoh [oracle@oel8 db_1]$ pwd /opt/oracle/product/23c/dbhomeFree

Verify connection

[oracle@oel8 ~]$ sqlplus / as sysdba

SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Thu May 18 17:19:53 2023
Version 23.2.0.0.0

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


Connected to:
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0

SQL> show parameter db_name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string FREE
SQL> alter session set container=FREEPDB1;

Session altered.

SQL> show con_id

CON_ID
------------------------------
3
SQL> show con_name

CON_NAME
------------------------------
FREEPDB1
SQL>

Listener status

[oracle@oel8 ~]$ lsnrctl status

LSNRCTL for Linux: Version 23.0.0.0.0 - Developer-Release on 18-MAY-2023 17:22:30

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oel8)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 23.0.0.0.0 - Developer-Release
Start Date 18-MAY-2023 17:16:39
Uptime 0 days 0 hr. 5 min. 51 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service FREE
Listener Parameter File /opt/oracle/product/23c/dbhomeFree/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/oel8/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel8)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "FREE" has 1 instance(s).
Instance "FREE", status READY, has 1 handler(s) for this service...
Service "FREEXDB" has 1 instance(s).
Instance "FREE", status READY, has 1 handler(s) for this service...
Service "fac962b876843adfe053017aa8c08dc4" has 1 instance(s).
Instance "FREE", status READY, has 1 handler(s) for this service...
Service "freepdb1" has 1 instance(s).
Instance "FREE", status READY, has 1 handler(s) for this service...
The command completed successfully

Database and listener can be quickly started stopped with following commands

/etc/init.d/oracle-free-23c stop
/etc/init.d/oracle-free-23c start

Have a fun 🙂

  Tomasz

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.