Oracle provides VirtualBox images for their database but they recently discontinued the 19c Developer image as they release the new 23c developer edition. Beside that, in many instances I prefer to use VMWare Fusion instead of VirtualBox so this post will serve as installation notes for my 19c lab environment on VMWare Fusion (macos X).
Prep steps
Install OEL 8 on VMWare Fusion
I will not follow this step by step as this installation is quite standard. I will only make notes of the sizing I use for start on my macbook and a few other specific stapes:
- in VMWare Fusion, remove the Sound card
- In VMWare Fusion, remove the Camera
- make sure 2 processor cores and 2G are allocated
- Increase the hard disk size to 28GB
- during the OEL installation, I add the packages enabling Goest OS functionalities and NFS client
- Create Fusion snapshots before each major change after the OS and updates are installed
Setup connectivity from the host
Check that SSH service is enabled on the guest
rpm -q openssh-server
If not installed, install it:
sudo yum install -y openssh-server
Check SSH service status
sudo systemctl status sshd
Add a New Private Network in VMware Fusion
Shut down the VM
In VMware Fusion, go to Virtual Machine > Settings > Network Adapter
Add a private network
On the started VM setup the new Network
Fix the IP Address (No DHCP) and make sure the interface is started automatically
Restart the guest OS and VMWare Fusion app on mac
Note: it is possible to also restart the VMWare networking by using the vmnet-cli app utility but the approach recommended tests also for the normal usage of a macbook workstation.
After restart we can login as:
~ % ssh rparvu@172.16.55.129
rparvu@172.16.55.129's password:
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Sat May 3 21:08:57 2025 from 172.16.55.1
...
Install VMware Tools — This step does not work all the time on OEL8!!
OEL 8 supports open-vm-tools, the open-source version maintained by VMware and Red Hat.
Install open-vm-tools
sudo dnf info -y open-vm-tools
Last metadata expiration check: 0:03:30 ago on Sat 03 May 2025 02:42:37 PM EEST.
Available Packages
Name : open-vm-tools
Version : 12.2.5
Release : 3.0.1.el8_9.1
Architecture : src
Size : 4.2 M
Source : None
Repository : ol8_appstream
Summary : Open Virtual Machine Tools for virtual machines hosted on VMware
URL : https://github.com/vmware/open-vm-tools
License : GPLv2
Description : The open-vm-tools project is an open source implementation of VMware Tools. It
: is a suite of open source virtualization utilities and drivers to improve the
: functionality, user experience and administration of VMware virtual machines.
: This package contains only the core user-space programs and libraries of
: open-vm-tools.
sudo dnf install -y open-vm-tools
Move the 19c install kit into the new database server
I used a staging in a public cloud to transfer the large file (<3GB), as my VMtools were still not working at that time.
Install database as per requirements
Post Installation configuration
Start the VM in headless mode:
% vmrun -T fusion start '/Volumes/v01/Virtual Machines.localized/Oracle Enterprise Linux 8 64-bit Arm.vmwarevm/Oracle Enterprise Linux 8 64-bit Arm.vmx' nogui
2025-05-03T16:58:26.943| ServiceImpl_Opener: PID 13027
%alias startoel819c="vmrun -T fusion start '/Volumes/v01/Virtual Machines.localized/Oracle Enterprise Linux 8 64-bit Arm.vmwarevm/Oracle Enterprise Linux 8 64-bit Arm.vmx' nogui"
The alias can be added to the shell configuration file also:
nano ~/.zshrc
...
alias startoel819c="vmrun -T fusion start '/Volumes/v01/Virtual Machines.localized/Oracle Enterprise Linux 8 64-bit Arm.vmwarevm/Oracle Enterprise Linux 8 64-bit Arm.vmx' nogui"
alias ssh_rparvu="ssh rparvu@172.16.55.129"
alias ssh_oracle="ssh oracle@172.16.55.129"
Setup key based authentication to oracle user on the VM
% ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/radu.parvu/.ssh/id_rsa):
Enter passphrase for "/Users/radu.parvu/.ssh/id_rsa" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/radu.parvu/.ssh/id_rsa
Your public key has been saved in /Users/radu.parvu/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:je2Gl0P1STi08Z3/jIugKGLxwCjAAK7xTllgO9DElJU radu.parvu@AMACXP75MV7YT
The key's randomart image is:
+---[RSA 3072]----+
|+==o.. o |
|oo+oE . = ..|
|+.o . = o..|
|o+ + + . + ..|
|oo+ S + o .|
|oo+ + . o.|
|. .+ . B . o|
| o o . + o . . |
| . . .. . . . |
+----[SHA256]-----+
Create SSH directory on server
[oracle@localhost ~]$ ls .ssh
[oracle@localhost ~]$ mkdir -p .ssh
Upload public key to remote server
ssh-copy-id oracle@172.16.55.129
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/radu.parvu/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
oracle@172.16.55.129's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'oracle@172.16.55.129'"
and check to make sure that only the key(s) you wanted were added.
% ssh oracle@172.16.55.129
Enter passphrase for key '/Users/radu.parvu/.ssh/id_rsa':
Enter passphrase for key '/Users/radu.parvu/.ssh/id_rsa':
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Sat May 3 22:12:41 2025 from 172.16.55.1
[oracle@localhost ~]$
📋 TODO: Setup Royal TSX Connection
Check & Fix the Oracle Net configuration on the VM server
Enable connections into the DB VM server for the Oracle port
[rparvu@localhost ~]$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160 ens256
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[rparvu@localhost ~]$ sudo firewall-cmd --permanent --add-port=1521/tcp
success
[rparvu@localhost ~]$ sudo firewall-cmd --reload
success
[rparvu@localhost ~]$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160 ens256
sources:
services: cockpit dhcpv6-client ssh
ports: 1521/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[rparvu@localhost ~]$
Create a pluggable database
Create a pluggable database and a regular user within it. Start by creating the location for the databse files of the pdb:
mkdir '/u01/app/oracle/oradata/LAB19C01/pdb1/'
ALTER SESSION SET CONTAINER=CDB$ROOT;
CREATE PLUGGABLE DATABASE pdb1
ADMIN USER pdbadmin IDENTIFIED BY "P@ssw0rd"
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/LAB19C01/pdbseed/',
'/u01/app/oracle/oradata/LAB19C01/pdb1/');
alter pluggable database pdb1 open;
alter session set container=pdb1;
alter user pdbadmin identified by oracle;
grant dba to pdbadmin;
grant pdb_dba to pdbadmin;
Infrastructure used
| Name | Version | Purpose | Comments |
|---|---|---|---|
| Oracle Database 19c Enterprise Edition | 19.3.0.0.0 | RDBMS | https://edelivery.oracle.com/osdc/faces/SoftwareDelivery# – V1036132-01(V1036132-01.zip) |
| Oracle Enterprise Linux | R8-U10 | Guest OS layer | https://yum.oracle.com/oracle-linux-isos.html – OracleLinux-R8-U10-aarch64-dvd.iso |
| VMWare Fusion | Professional Version 13.6.2 (24409261) | Hypervisor | |
| macOS Sequoia | 15.4.1 | Host OS | |

