Oracle 19c on OL 8.10 — Silent Install, ASM, Restart & RU 19.32
After documenting my Oracle Database 19c deployment on RHEL7.9, I wanted to perform and document another completely tested implementation on Oracle Linux 8.10.
This article covers the complete journey from operating-system preparation through Oracle Grid Infrastructure, ASM, Oracle Restart, Database software installation, patching, DBCA database creation, and final validation.
The goal was to build and validate a complete single-instance Oracle Database 19c environment using Oracle Restart and ASM.
Important: This is an Oracle Restart / standalone environment, not an Oracle RAC cluster.
The deployment was performed primarily in silent mode using response files and command-line utilities.
The most important real-world issue in this implementation was that the initial ASM voting disk group configuration failed on the 19.3 Grid Home. The successful sequence became:
Grid Infrastructure 19.3
↓
Update OPatch
↓
Patch Grid Home to 19.32
↓
Configure ASM
↓
Create VOTK
That sequence became the key learning from this OL 8.10 test.
📂 Detailed Installation Commands & Output
This article focuses on the deployment approach, important configuration steps, troubleshooting and validation.
For readers who want to review the complete installation commands and actual command execution output, I have published the detailed command/output log separately on GitHub:
👉 Complete Oracle 19c Installation Commands & Output Log
Quick Navigation
- Environment and Architecture
- Prepare the
OL8.10Server - Extend Filesystem and Configure Swap
- Install Oracle Prerequisites
- Configure OS, ASMLIB and Voting Disk
- Configure Oracle Environment
- Run CVU and Prepare the Grid Response File
- Install Grid Infrastructure and Handle the ASM Failure
- Update OPatch and Patch Grid to
19.32 - Configure ASM and Validate Oracle Restart
- Install and Patch the Database Home
- Create ASM Disk Groups and Set Compatibility
- Create the Database with DBCA
- Final Validation
- Key Findings and Conclusion
1. Environment and Architecture
The tested environment consisted of:
The Grid configuration explicitly used:
oracle.install.crs.config.ClusterConfiguration=STANDALONE
The completed configuration later reported:
Successfully configured Oracle Restart for a standalone server.
So the architecture is:

2. Prepare the OL8.10 Server
The initial operating-system preparation included Oracle users and groups, directory structure, storage, swap, prerequisite RPMs, ASMLIB, ASM disks, and environment settings.
Create Oracle Groups and User
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 asmdba
groupadd -g 504 asmoper
groupadd -g 506 asmadmin
Create the Oracle user and required groups:
useradd -u 501 -g oinstall -G dba oracle
usermod -G asmdba,asmoper,asmadmin,dba,oinstall oracle
usermod -aG wheel oracle
Verify:
id oracle
The Oracle directory structure used:
/u01/app/oraInventory
/u01/app/19.3.0/grid
/u01/app/19.3.0/db
/u01/app/oracle/software
3. Extend Filesystem and Configure Swap
Verify Storage Layout First
Because device and LVM names vary by environment, verify before changing storage:
lsblk
pvs
vgs
lvs
Extend the Filesystem and Configure 16GB swap
The OL8.10 sequence was:
growpart
↓
lvextend
↓
xfs_growfs
Expand the partition:
growpart /dev/sda 3
Create the logical volume, format the volume:
lvcreate -L 16G -n lv_swap ocivolume
mkswap /dev/ocivolume/lv_swap
Add the following entry to /etc/fstab and disable old swap entries as needed:
/dev/ocivolume/lv_swap swap swap defaults 0 0
Enable swap:
swapon -va
Validate:
swapon -s
free -m
The final environment showed approximately 16 GB of swap
Later, extend the root logical volume:
lvextend -l +100%FREE /dev/ocivolume/root
Grow the XFS filesystem:
xfs_growfs /
Verify:
lsblk
df -h
4. Install Oracle Prerequisites
Install the required operating-system, Oracle Databases19c pre-installation and asmlib packages:
dnf install -y perl xterm xhost
dnf install -y oracle-database-preinstall-19c
dnf localinstall -y oracleasmlib-3.1.3-1.el8.x86_64.rpm
The environment also contained:
kmod-redhat-oracleasm
Verify Oracle ASM-related packages:
rpm -qa | grep -i oracleasm
Configure and install CVUQDISK:
CVUQDISK_GRP=oinstall
export CVUQDISK_GRP
yum localinstall cvuqdisk-1.0.10-1.rpm
Finally:
yum update -y
5. Configure OS, ASMLib and Voting Disk
The OS configuration included:
SELinux = permissive
Firewall disabled
sudo
NOZEROCONF
Configure sudo Path
CVU expected:
/usr/local/bin/sudo
Create:
ln -s /usr/bin/sudo /usr/local/bin/sudo
Configure NOZEROCONF
Add:
NOZEROCONF=yes
to:
/etc/sysconfig/network
Configure ASMLib
oracleasm configure -i
The tested values were:
Default user: oracle
Default group: oinstall
Start Oracle ASM library driver on boot: y
Scan for Oracle ASM disks on boot: y
Restart ASMLib:
systemctl restart oracleasm
Initialize and validate:
oracleasm init
oracleasm status
Prepare the Initial Voting Disk
The initial ASM disk used:
/dev/sdb1
Partition the disk:
parted /dev/sdb --script -a optimal mklabel gpt mkpart primary 0% 100%
Create the ASMLIB label:
oracleasm createdisk VOTK /dev/sdb1
Scan and verify:
oracleasm scandisks
oracleasm listdisks
Expected:
VOTK
6. Configure Oracle Environment
The environment variables used were:
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19.3.0/grid
export DB_HOME=/u01/app/19.3.0/db
For ASM:
export ORACLE_SID=+ASM
export ORACLE_HOME=$GRID_HOME
The published article also shows the following under “For the database”:
export ORACLE_SID=TESTCDB
export ORACLE_HOME=$DB_HOME
I have retained that exactly as it appears in the source rather than silently changing it.
7. Run CVU and Prepare the Grid Response File
Run CVU
/u01/app/19.3.0/grid/runcluvfy.sh \
stage -pre crsinst \
-n caoradb02 \
-verbose \
-method sudo \
-user oracle
The validation showed:
Verifying Daemon "proxyt" not configured and running ...PASSED
Verifying User Equivalence ...PASSED
Verifying RPM Package Manager database ...PASSED
Verifying /dev/shm mounted as temporary file system ...PASSED
Verifying File system mount options for path /var ...PASSED
Verifying DefaultTasksMax parameter ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM Filter Driver configuration ...PASSED
Pre-check for cluster services setup was successful.
Configure the Grid Response File
Important settings:
oracle.install.option=HA_CONFIG
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/oracle
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.asm.diskGroup.name=VOTK
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.disks=/dev/disk/by-label/VOTK
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/disk/by-label/*
8. Install Grid Infrastructure and Handle the ASM Failure
Install Grid Infrastructure:
/u01/app/19.3.0/grid/gridSetup.sh -ignorePrereq -silent \
-responseFile /u01/app/oracle/software/gridSetup.rsp
The installer reported:
Successfully Setup Software.
Run the requested root scripts:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/19.3.0/grid/root.sh
Then run the configuration tools:
/u01/app/19.3.0/grid/gridSetup.sh \
-executeConfigTools \
-responseFile /u01/app/oracle/software/gridSetup.rsp \
-silent
The result was:
[WARNING] [INS-43080] Some of the configuration assistants failed,
were cancelled or skipped.
The ASM/VOTK configuration failed with:
[FATAL] [DBT-30002] Disk group VOTK creation failed.
ORA-15018: diskgroup cannot be created.
Instead of repeatedly retrying the same step, the sequence was changed to:
Grid 19.3
↓
Update OPatch
↓
Patch Grid to 19.32
↓
Configure ASM
↓
Create VOTK
This was the key OL 8.10-specific finding in the article.
9. Update OPatch and Patch Grid to 19.32
Update Grid OPatch
Move to the Grid Home:
cd /u01/app/19.3.0/grid
Back up OPatch:
mv OPatch OPatch_12.2.0.1.17
Install the newer OPatch:
unzip -q p6880880_190000_Linux-x86-64.zip \
-d /u01/app/19.3.0/grid/
Verify:
/u01/app/19.3.0/grid/OPatch/opatch version
Expected:
OPatch Version: 12.2.0.1.52
Apply Grid RU 19.32
The Release Update used was:
39467003
Apply it:
/u01/app/19.3.0/grid/OPatch/opatchauto apply \
/u01/app/oracle/software/39467003
Important result:
OPatchAuto successful.
Patching is completed successfully.
The logical sequence is:
19.3.0 Grid Home
↓
OPatch 12.2.0.1.52
↓
19.32.0 RU
↓
19.32.0 Grid Home
Verify Grid Patch Inventory
$GRID_HOME/OPatch/opatch lspatches
The Grid Home showed:
39526364; OCW RELEASE UPDATE 19.32.0.0.0
39503034; ACFS RELEASE UPDATE 19.32.0.0.0
39472050; Database Release Update : 19.32.0.0.260721
39107855; TOMCAT RELEASE UPDATE
39107825; DBWLM RELEASE UPDATE
10. Configure ASM and Validate Oracle Restart
After patching the Grid Home, configure ASM explicitly with ASMCA:
asmca -silent \
-configureASM \
-sysAsmPassword "<ASM_PASSWORD>" \
-asmMonitorPassword "<ASM_MONITOR_PASSWORD>" \
-diskString 'ORCL:*,/dev/disk/by-label/*' \
-diskGroupName VOTK \
-diskList 'ORCL:VOTK' \
-redundancy EXTERNAL \
-au_size 4
The important output was:
ASM has been created and started successfully.
[DBT-30001] Disk groups created successfully.
This was the point where the previously failed ASM configuration succeeded.
Validate Oracle Restart
$GRID_HOME/bin/crsctl stat res -init -t
Important resources included:
ora.asm
ora.cssd
ora.VOTK.dg
ora.evmd
The important ones were online:
ora.asm ONLINE
ora.cssd ONLINE
ora.VOTK.dg ONLINE
This confirmed that Oracle Restart, ASM, the voting disk group, and CSSD were operational.
11. Install and Patch the Database Home
The Database Home used:
/u01/app/19.3.0/db
Database Response File
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/19.3.0/db
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
Run Prerequisite Validation
$DB_HOME/runInstaller \
-executePrereqs \
-silent \
-responseFile /u01/app/oracle/software/db_install.rsp
Install Database Software
/u01/app/19.3.0/db/runInstaller \
-silent \
-responseFile /u01/app/oracle/software/db_install.rsp
Run the requested root script:
/u01/app/19.3.0/db/root.sh
Patch the Database Home to 19.32
After updating Database OPatch to 12.2.0.1.52, apply the RU:
$ORACLE_HOME/OPatch/opatch apply
The patch inventory showed:
39472050; Database Release Update : 19.32.0.0.260721
The older 19.3 RU became inactive because it had been superseded.
Verify the Database Home
/u01/app/19.3.0/db/OPatch/opatch lsinventory
The final home contained:
39472050; Database Release Update : 19.32.0.0.260721
29585399; OCW RELEASE UPDATE 19.3.0.0.0
12. Create ASM Disk Groups and Set Compatibility
Create the Remaining ASM Disks
The additional disk labels were:
DATA
REDO
FRA
Create them:
oracleasm createdisk DATA /dev/sdc1
oracleasm createdisk REDO /dev/sdd1
oracleasm createdisk FRA /dev/sde1
Rescan:
oracleasm scandisks
oracleasm listdisks
The environment showed:
DATA
FRA
REDO
VOTK
Create the ASM Disk Groups
For DATA:
asmca -silent \
-createDiskGroup \
-diskString 'ORCL:*' \
-diskGroupName DATA \
-diskList 'ORCL:DATA' \
-redundancy EXTERNAL
The same approach was used for REDO and FRA.
Result:
[DBT-30001] Disk groups created successfully.
Final disk groups:
VOTK
DATA
REDO
FRA
Set ASM Compatibility
The initial compatible.rdbms value was:
10.1.0.0.0
Set it to 19c:
setattr -G VOTK compatible.rdbms 19.0.0.0.0
setattr -G DATA compatible.rdbms 19.0.0.0.0
setattr -G REDO compatible.rdbms 19.0.0.0.0
setattr -G FRA compatible.rdbms 19.0.0.0.0
Verify:
select name,
state,
allocation_unit_size,
compatibility,
database_compatibility
from v$asm_diskgroup;
The final values showed 19.0.0.0.0 for the required compatibility attributes.
13. Create the Database with DBCA
The database configuration was:
Database Name : TESTCDB
SID : TESTCDB
PDB : TESTPDB
Storage : ASM
DATA : +DATA
Recovery : +REDO
Character Set : AL32UTF8
Create the CDB and PDB:
dbca -silent -createDatabase \
-gdbName TESTCDB \
-sid TESTCDB \
-databaseConfigType SI \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName TESTPDB \
-pdbAdminPassword '<PDB_PASSWORD>' \
-sysPassword '<SYS_PASSWORD>' \
-systemPassword '<SYSTEM_PASSWORD>' \
-storageType ASM \
-diskGroupName +DATA \
-recoveryGroupName +REDO \
-useOMF true \
-characterSet AL32UTF8 \
-enableArchive true \
-automaticMemoryManagement false
DBCA completed successfully and registered the database with Oracle Restart.
14. Final Validation
A successful DBCA execution was only one checkpoint. I validated the environment at several levels.
Oracle Restart Resources
/u01/app/19.3.0/grid/bin/crsctl stat res -init -t
The final environment showed:
ora.DATA.dg ONLINE
ora.FRA.dg ONLINE
ora.REDO.dg ONLINE
ora.VOTK.dg ONLINE
ora.asm ONLINE
ora.testcdb.db ONLINE
This confirms not only that the database is running, but that it is actually managed by Oracle Restart.
Validate Database Components
select comp_name,
version,
version_full,
status,
modified
from dba_registry;
Expected:
19.32.0.0.0
VALID
Validate SQL Patch Registration
select target_build_description,
patch_uid,
patch_id,
action,
status,
action_time,
description,
source_version,
target_version
from dba_registry_sqlpatch
order by action_time;
Expected RU:
PATCH_ID : 39472050
ACTION : APPLY
STATUS : SUCCESS
TARGET : 19.32.0.0.0
A useful distinction is:
OPatch lspatches
↓
Validates Oracle Home binaries
DBA_REGISTRY_SQLPATCH
↓
Validates SQL patch inside database
Complete Final Validation Checklist
Operating System
cat /etc/os-release
uname -a
free -m
df -h
lsblk
swapon -s
Oracle User
id oracle
ASMLIB
oracleasm status
oracleasm listdisks
Expected:
DATA
FRA
REDO
VOTK
Oracle Restart
crsctl check has
Grid Resources
crsctl stat res -init -t
ASM
srvctl status asm
ASM Disk Groups
select name,
state,
type,
total_mb,
free_mb
from v$asm_diskgroup;
Grid Home
$GRID_HOME/OPatch/opatch lspatches
Database Home
$DB_HOME/OPatch/opatch lspatches
Database
select name,
open_mode,
database_role
from v$database;
PDB
show pdbs;
Database Components
select comp_name,
version_full,
status
from dba_registry;
SQL Patch
select patch_id,
action,
status,
target_version
from dba_registry_sqlpatch
order by action_time;
This multi-layer validation was one of the key lessons from the deployment.
15. Key Findings and Conclusion
The most valuable part of this deployment was not simply installing Oracle Database 19c.
It was understanding how all the layers interact:
Oracle Linux 8.10
↓
OS Storage / Swap / RPMs
↓
ASMLIB
↓
Grid Infrastructure
↓
Grid RU 19.32
↓
Oracle Restart
↓
ASM
↓
Database Home
↓
Database RU 19.32
↓
ASM Disk Groups
↓
DBCA
↓
Oracle Restart Validation
↓
SQL Patch Validation
The major practical findings were:
OS preparation matters
Filesystem layout, swap, packages, storage, users, groups, and OS configuration must all be correct before the Oracle software installation.
The OL 8.10 ASM issue was the key troubleshooting point
The original ASM voting disk creation failed during 19.3 configuration.
The sequence that worked was:
19.3 Grid
↓
Update OPatch
↓
Apply 19.32 RU
↓
Configure ASM
↓
Create VOTK
DBCA success is not the final validation
After DBCA, the environment was still checked through:
Oracle Restart
Database version
DBA_REGISTRY
DBA_REGISTRY_SQLPATCH
ASM
Final resource validation
That provides much stronger evidence that the environment is truly in the expected state.
Final Result
The completed OL8.10 environment was:
Oracle Linux 8.10
↓
Oracle Grid Infrastructure 19.32
↓
Oracle Restart
↓
ASM
↓
VOTK / DATA / REDO / FRA
↓
Oracle Database 19.32
↓
TESTCDB
↓
TESTPDB
The most useful outcome was having a repeatable, tested, and documented Oracle 19c deployment on OL8.10, including the actual ASM failure and the sequence that resolved it.
📂Detailed Installation Commands & Execution Output
The complete installation command sequence and actual execution output can remain in the companion GitHub log.
That keeps the web article readable while preserving the full installer, OPatch, ASMCA, DBCA, SQL, crsctl, and troubleshooting output for readers who want to reproduce the deployment.
👉 Complete Oracle 19c Installation Commands & Output Log
This article documents a tested OL 8.10 implementation. Device names, storage layout, VM sizing, disk sizes, ASM redundancy, swap, memory, FRA sizing, database parameters, OS configuration, security controls, patch levels, and Oracle software paths should always be reviewed for the target environment.