Site icon Radu Pârvu

Oracle 19c Lab Setup: Essential Steps on VMWare Fusion

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:

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

NameVersionPurposeComments
Oracle Database 19c Enterprise Edition19.3.0.0.0RDBMShttps://edelivery.oracle.com/osdc/faces/SoftwareDelivery#V1036132-01(V1036132-01.zip)Oracle Database 19.19.0.0.0 for Linux ARM (aarch64), 2.2 GB
Oracle Enterprise LinuxR8-U10Guest OS layerhttps://yum.oracle.com/oracle-linux-isos.html – OracleLinux-R8-U10-aarch64-dvd.iso
VMWare FusionProfessional Version 13.6.2 (24409261)Hypervisor
macOS Sequoia15.4.1Host OS
Hardware ans software infrastructure used

References:

Exit mobile version