Author: PazyP

  • Upgrade Oracle Database to 19c

    With Oracle Database 12c support coming to an end soon I thought I should write a short blog post on how to upgrade an Oracle 12c Database running on Exadata within OCI to Oracle Database 19c. The upgrade process can be performed via the OCI Console or also via the dbaascli tool. Having been a DBA for a long time now I prefer using dbaascli command line tool as I feel the verbose output it provides to be far more informative that the percentage complete status that OCI Console provides.

    Upgrade Oracle Database to 19c
    Upgrade Oracle Database to 19c

    Firstly as part of Exadata patching best practices before any patching takes place and just like in my previous article where I detailed “Exadata Grid Patching” we want to ensure we are using the latest version of dbaascli. We can do this by first finding out our current installed version, checking the latest version then choosing to upgrade dbaascli if we have found it not to be running the latest. All commands below are run as the root user.

    Check the existing dbaascli version installed on the host/server.

    rpm -qa|grep -i dbaastools

    Find the latest available version of dbaascli

    dbaascli admin showLatestStackVersion

    Update to the latest version of dbaascli if you aren’t already running the latest version.

    dbaascli admin updateStack

    Now that we are using the latest version of dbaastools we can proceed and begin to look at the Exadata upgrade steps on how to upgrade Oracle Database to 19c. In this post I am upgrading a 12c database to 19c, but these steps are also appropriate for how to perform Oracle Database upgrade from 11.2.0.3 to 19c.

    Run Pre-checks to ensure your database is in a good place to be upgraded. Any issues highlighted by the pre-checks such as invalid objects or bad or obsolete database parameters should be resolved before you continue and begin upgrading the database to try and ensure a smooth error-less upgrade cycle.

    dbaascli database upgrade --dbname TSTDB --targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 --executePrereqs

    Assuming pre-checks are OK we can now start the upgrade. All commands below are run as the root user.

    dbaascli database upgrade --dbname TSTDB --targethome /u01/app/oracle/product/19.0.0.0/dbhome_1

    Should something go wrong we can roll back using the following…

    dbaascli database upgrade --dbname TSTDB --targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 --revert

    That is all there is to it, as mentioned at the start of this post you can perform this task via the OCI Console UI, I prefer using the Unix command line as I feel it gives a better verbose output to view the progress of the patching and be able to make better estimates on the time left until patching is completed.

    The dbaascli tool automates 99% of the process bar the initial kick-off. Oracle produces full documentation on how to use the dbaascli tool on Exadata here.

    If you liked this post please see some of my others here, This is the second post of my series on Oracle Exadata patching my first post shows how to perform patching Oracle Grid.

  • How to Patch Oracle Database on OCI Exadata

    How to Patch Oracle Database on OCI Exadata?

    Patching Oracle Database on OCI Exadata can be performed via OCI Console UI or by patching oracle grid infrastructure and oracle databases using dbaascli. In this blog post, we will look at how to perform the task of patching the Oracle Database on OCI using the dbaascli tool.

    Personally, I prefer the dbaascli tool as I suspect many DBA types will as they are very comfortable on the Linux command line and sometimes prefer this to clicking on some buttons on a web UI.

    Whether you choose to use the dbaascli tool detailed in this blog post or via the OCI Console both methods involve no downtime where each Oracle Database node is patched individually enabling you to achieve no downtime patching of the Oracle Database.

    Patch Oracle Database on OCI Exadata
    Oracle Database on OCI Exadata

    Firstly as part of Exadata patching best practices before any patching takes place and just like in my previous article where I detailed “Exadata Grid Patching” we want to ensure we are using the latest version of dbaascli. We can do this by first finding out our current installed version, checking the latest version then choosing to upgrade dbaascli if we have found it not to be running the latest. All commands below are run as the root user.

    Check the existing dbaascli version installed on the host/server.

    rpm -qa|grep -i dbaastools

    Find the latest available version of dbaascli

    dbaascli admin showLatestStackVersion

    Update to the latest version of dbaascli if you aren’t already running the latest version.

    dbaascli admin updateStack

    Now that we are using the latest version of dbaastools we can proceed and begin to look at the Exadata patching steps on applying the latest patch set to Oracle Database.

    In my example, I am currently running Oracle Database 19.5, therefore, these steps will detail how to patch Oracle 19c and will be looking to upgrade to the latest version which at the time of writing is 19.17 but the same steps are valid for all supported Oracle Database versions. Again all commands below are run as the root user.

    Run Pre-checks to ensure your system is in a good place to apply the latest patch. Any issues highlighted by the pre-checks such as invalid objects or bad or obsolete database parameters should be resolved before you continue and begin applying the patch to try and ensure a smooth error-less patching cycle.

    dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.17.0.0 --executePrereqs

    Assuming pre-checks are OK we can now apply the latest patch set, as mentioned previously as of writing the latest patch set is 19.17.0.0. All commands below are run as the root user.

    dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.17.0.0

    We are applying the patch set to the ORACLE_HOME in which our target DB is running, the automations bundled into dbaascli tool take care of running datapatch once the ORACLE_HOME binaries have been patched meaning that assuming no errors we have now successfully patched our Oracle Database to 19.17.

    We can confirm the database version by running OPatch as the oracle Unix user.

    $ORACLE_HOME/OPatch/opatch lspatches

    That is all there is to it, as mentioned at the start of this post you can perform this task via the OCI Console UI, I prefer using the Unix command line as I feel it gives a better verbose output to view the progress of the patching and be able to make better estimates on the time left until patching is completed.

    The dbaascli tool automates 99% of the process bar the initial kick-off. Oracle produces full documentation on how to use the dbaascli tool on Exadata here.

    If you liked this post please see some of my others here, This is the second post of my series on Oracle Exadata patching my first post shows how to perform patching Oracle Grid.

  • How to Patch Oracle Grid on OCI Exadata

    How to Patch Oracle Grid on OCI Exadata I hear you ask…

    Patching Oracle Grid on OCI Exadata can be performed via OCI Console UI or via the dbaascli command line tool. In this blog post, we will look at how to perform the task of patching Oracle Grid on OCI using the dbaascli tool.

    Personally, I prefer the dbaascli tool as I suspect many DBA types will as they are very comfortable on the Linux command line and sometimes prefer this to clicking on some buttons on a web UI.

    Whether you choose to use the dbaascli tool detailed in this blog post or via the OCI Console both methods involve no downtime where each RAC node is patched individually enabling you to achieve rolling patching in Oracle RAC.

    How to Patch Oracle Grid on OCI Exadata
    How to Patch Oracle Grid on OCI Exadata

    Firstly before any patching takes place we want to ensure we are using the latest version of dbaascli. We can do this by first finding out our current installed version, checking the latest version then choosing to upgrade dbaascli if we have found it not to be running the latest. All commands below are run as the root user.

    Check the existing dbaascli version installed on the host/server.

    rpm -qa|grep -i dbaastools

    Find the latest available version of dbaascli

    dbaascli admin showLatestStackVersion

    Update to the latest version of dbaascli if you aren’t already running the latest version.

    dbaascli admin updateStack

    Now that we are using the latest version of dbaastools we can proceed and begin looking at applying the latest patch set to Oracle Grid Infrastructure. In my example, I am currently running Oracle Grid 19.8, therefore, these steps will detail Oracle 19c grid patching steps and will be looking to upgrade to the latest version which at the time of writing is 19.17 but the same steps are valid for all versions. Again all commands below are run as the root user.

    Run Pre-checks to ensure your system is in a good place to apply the latest patch. Any issues highlighted by the pre-checks should be resolved before you continue and begin applying the patch.

    dbaascli grid patch --targetVersion 19.17.0.0.0 --executePrereqs

    Assuming pre-checks are OK we can apply the latest patch set, as mentioned previously as of writing the latest patch set is 19.17.0.0. All commands below are run as the root user.

    dbaascli grid patch --targetVersion 19.17.0.0.0

    Should you, unfortunately, encounter an issue and need to roll back you can do so by running the below command as the root Unix user.

    dbaascli grid patch --targetVersion 19.17.0.0.0 --rollback

    After patching has been completed we can check the version of Oracle Grid on Exadata by running OPatch as the grid Unix user. Running the below command as grid user should show the 19.17.0.0 patch applied.

    $ORACLE_HOME/OPatch/opatch lspatches

    That is all there is to it, as mentioned at the start of this post you can perform this task via the OCI Console UI, I prefer using the Unix command line as I feel it gives a better verbose output to view the progress of the patching and be able to make better estimates on the time left until patching is completed.

    The dbaascli tool automates 99% of the process bar the initial kick-off. Oracle produces full documentation on how to use the dbaascli tool on Exadata here.

    If you liked this post please see some of my others here.

  • Easiest way to Install Docker on Oracle Linux 8

    Some of my most popular articales on this blog are around Docker on Oracle Linux (this and this) but I realised today as my creative writing juices were flowing that I had never actaully written any article to detil how to Install Docker on Oracle Linux.

    In this article I will show how to install Docker on Oracle Linux in this case specifically Oracle Linux 8.

    Install Docker on Oracle Linux 8
    Install Docker on Oracle Linux 8

    For this working example I am assuming you have ssh access to your Oracle Linux server as well as root access to be able to install Docker on Oracle Linux 8. Additionally for my example I am using an Oracle Linux Vagrant image. If you haven’t heard about Oracle Linux Vagrant images you can read about them on the Oracle Blog here and specifically about Vagrant here.

    Install Docker on Oracle Linux

    First things first we need to enable the required Docker repositories on our server.

    dnf install -y dnf-utils zip unzip

    dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

    With the Docker repo added we can install Docker on our Oracle Linux Server.

    dnf install -y docker-ce --nobest

    Depending on your Oracle Linux server the install can take 5-10 minutes.

    Lastly we can finsih the install be adding docker to systemctl by running the following commands to add then start Docker on Oracle Linux.

    systemctl enable docker.service

    systemctl start docker.service

    We can now see docker running on this Oracle Linux 8 Server.

    [root@localhost ~]# systemctl status docker.service
    ● docker.service - Docker Application Container Engine
    Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
    Active: active (running) since Wed 2022-12-28 13:37:29 UTC; 50s ago
    Docs: https://docs.docker.com
    Main PID: 55190 (dockerd)
    Tasks: 8
    Memory: 31.1M
    CGroup: /system.slice/docker.service
    └─55190 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

    [root@localhost ~]# docker info
    Client:
    Context: default
    Debug Mode: false
    Plugins:
    app: Docker App (Docker Inc., v0.9.1-beta3)
    buildx: Docker Buildx (Docker Inc., v0.9.1-docker)
    scan: Docker Scan (Docker Inc., v0.23.0)

    [root@localhost ~]# docker version
    Client: Docker Engine - Community
    Version: 20.10.22
    API version: 1.41
    Go version: go1.18.9
    Git commit: 3a2c30b
    Built: Thu Dec 15 22:28:05 2022
    OS/Arch: linux/amd64
    Context: default
    Experimental: true

    Thats all there is to it, its a pretty easy straight forward process that should cause most any trouble. If you do have issues please leave a comment below and I will try my best to assist.

  • Books I’ve Read in 2021 so far …

    Halfway through 2021 already here’s a list in no particular order of all the books I’ve read so far, 17 books jeez doesn’t seem that many, quite proud of myself maybe I’ll hit 40 books by the end of 2021

    5 am Club
    How to Win Friends and Influence People
    The Happiness Advantage
    Atomic Habits
    Anything You Want
    Show Your Work
    Superintelligence: Paths, Dangers, Strategies
    Rich Dad, Poor Dad
    Sapiens
    The Subtle Art of Not Giving a F**k
    Tools of Titans
    The 4-hour Body
    The 4-hour Work Week
    Children of Time
    The Final Empire
    The Well of Ascension
    The Hero of Ages

  • 4 Best FREE Resources for learning Linux Online

    It’s hard to pin down exactly how popular Linux is on the web, but recent studies estimate Unix and Unix-like operating systems power about 70% of all web servers.


    At least half of those run Linux—and probably the vast majority.

    If you are on a technology learning journey no matter if its back-end development, front-end or server admin it is a great skill to have know or at least have some basic knowlage around.

    With over 10 years in the industry as a DBA and Sys Admin here are my top 4 resources for learning and mastering Linux/Unix

    Introduction to Linux

    https://www.edx.org/course/introduction-to-linux

    The “Start From Scratch” Linux Course

    https://www.netacad.com/courses/os-it/ndg-linux-unhatched

    Linux Essentials

    https://www.netacad.com/courses/os-it/ndg-linux-essentials

    Fundamentals of Red Hat Enterprise Linux

    https://www.edx.org/course/fundamentals-of-red-hat-enterprise-linux

    BONUS – Shell Scripting

    If you’ve now have the knowledge of Linux move onto Shell Scripting so you can automate some of the most repetitive tasks you do

    Bash

    https://www.linkedin.com/learning/learning-bash-scripting-2?trk=learning-serp_learning_search-card&upsellOrderOrigin=default_guest_learning

    Python

    If you like what I write please consider following me on Twitter or reading my other posts

  • A Cop-out Post

    I’ve been bloging more seriously since November 2020 and since Janurary 2021 I’ve succesfully blogged at least once per week since, but this week was the first were I found it a real struggle to write or do something. So here somewhat of a cop-out post about nothing that will only ask questions and not answer them.

    I pick up and drop projects and hobbies all the time, blogging once per week I have actually surprised myself of how long I’ve done it before reaching this point, I guess that’s because I set myself an easy milestone of posting just once per week. This easy milestone is part of the teachings of Atomic Habits of setting goals that are very easy to achive and that compunding quick win builds a bigger achievment.

    Why has this week been a struggle? Well, I’ve been busy doing other stuff I’ve been covering for a colleague at work, I’ve started playing more games again after a bit of a hiatus and I’ve just generally been busy when I did get some time to myself I was spending it with my wife rather than being hunched over a laptop. I have a few long-form technical posts planned out, but I just need to get around to actually doing them.

    Austin Kleon does a book called Keep Going which I think I will pick up, by the title it seems it could give me some insight into this recent lull.

    So a very short post this week, but I have still met my goal of writing a blog post at least once per week. 🙂

  • Superintelligence: Paths, Dangers, Strategies

    Superintelligence by Nick Bostrom is an interesting book, one that is mentioned in Tools of Titans by Tim Ferris, the title and description piqued my interest so I gave it a read.

    Summary of Superintelligence

    The books describes how we as humans are rulers of the world, top of the food chain not because we are the strongest, fastest or have the sharpest teeth or claws but we are the smartest we are the only ones that can successfully use our brains to adapt and overcome near any challenge that’s presented to us. But what if we inherently invent our own downfall by creating something smarter than us?

    How would we attempt to contain such superintelligence? Surely like us it could have the ability to deceive and subvert us as its inherent captors and what would a superintelligence do if given free rein?

    My Takeaways from Superintelligence

    The book starts quite complex describing the mathematical equations used to create an AI my initial thoughts when reading this was “what on earth have I got myself into, this is way over my head” but alas soon topics move into more theoretical challenges that ask some really tough questions around the creation or invention of a more intelligent being.

    It’s a very thought provoking book and I enjoied that aspect many of the what if’s and how would we do this, I found very intresting and dwelled on them a bit while I walked my dog as many of the questions asked could very well become a reality in my lifetime.

    Favourite Quotes

    “The computer scientist Donald Knuth was struck that “AI has by now succeeded in doing essentially everything that requires ‘thinking’ but has failed to do most of what people and animals do ‘without thinking’—that, somehow, is much harder!”― Nick Bostrom

    “Far from being the smartest possible biological species, we are probably better thought of as the stupidest possible biological species capable of starting a technological civilization—a niche we filled because we got there first, not because we are in any sense optimally adapted to it.”― Nick Bostrom

    “The gap between a dumb and a clever person may appear large from an anthropocentric perspective, yet in a less parochial view the two have nearly indistinguishable minds.” ― Nick Bostrom

    “Nature might be a great experimentalist, but one who would never pass muster with an ethics review board – contravening the Helsinki Declaration and every norm of moral decency, left, right, and centre.” ― Nick Bostrom

    Closing Words

    I enjoyed the book but would I recommend it probably not, it is pretty niche and can be quite a slog at points, I liked the thought-provoking thoughts it presented, it is never really a genre of book that I have looked at before but if anyone has further suggestions on thought-provoking books let me know in the comments below.

    A short post this week, if you are intrested in any of my other posts you can see them here.

  • 5 Steps to use Oracle Database with Vagrant

    I’ve written about my love for Vagrant a few times already here, today I will show the steps to getting an Oracle Database with Vagrant.

    Why I Love Vagrant

    It is just so simple, I recall the days when I used to have to package up my own VM’s for re-use it wasn’t difficult but it was a time sink at the end of the day, Vagrant has a pretty good level of adoption with most of the big Tech software corps producing some sort of Vagrant box or support making is super easy to spin up Virtual Machines with the software you need.

    I also really like how Vargant is file-based, editing the Vagrantfile is really simple meaning you can add additional custom tools to a virtual host as you please making Vagrant ideal for use a lab environment as you can very easily create a Vagrantfile that mimics your production infrastructure giving you a like for like testbed.

    Oracle Database with Vagrant

    Thankfully once again on Oracle’s GitHub, they provide a bunch of different Vagrant Images for your use here. Personally, I have used OracleDatabase, OracleLinux and OracleRAC images

    Oracle Database with Vagrant
    Vagrant with Oracle Database

    Get Oracle Database Vagrant Files

    Lets pull the Oracle Vagrant file repo down to our own machines;

    PS D:\Vagrant> git clone https://github.com/oracle/vagrant-projects.git
    Cloning into 'vagrant-projects'...
    remote: Enumerating objects: 18, done.
    remote: Counting objects: 100% (18/18), done.
    remote: Compressing objects: 100% (17/17), done.
    remote: Total 2509 (delta 3), reused 5 (delta 0), pack-reused 2491
    Receiving objects: 100% (2509/2509), 1.12 MiB | 2.42 MiB/s, done.
    Resolving deltas: 100% (1508/1508), done.
    

    Change to Database Directory

    As you see when pulling the repo down from GitHub Oracle have a bunch of different software application available for you to start. In the article, we’re showing Oracle Database with Vagrant but the steps are applicable to all applications.

    Move into the 19.3 directories. For this post, we will use 19.3 but from the screen below you see 11g, 12c, 18 & 19 are available.

    PS D:\Vagrant\vagrant-projects\OracleDatabase> ls
    
    
        Directory: D:\Vagrant\vagrant-projects\OracleDatabase
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----       21/02/2021     13:05                11.2.0.2
    d-----       21/02/2021     13:05                12.1.0.2
    d-----       21/02/2021     13:05                12.2.0.1
    d-----       21/02/2021     13:05                18.3.0
    d-----       21/02/2021     13:05                18.4.0-XE
    d-----       21/02/2021     13:05                19.3.0
    -a----       21/02/2021     13:05           1416 README.md
    
    
    PS D:\Vagrant\vagrant-projects\OracleDatabase> cd .\19.3.0\
    PS D:\Vagrant\vagrant-projects\OracleDatabase\19.3.0> ls
    
    
        Directory: D:\Vagrant\vagrant-projects\OracleDatabase\19.3.0
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----       21/02/2021     13:05                ora-response
    d-----       21/02/2021     13:05                scripts
    d-----       21/02/2021     13:05                userscripts
    -a----       21/02/2021     13:05           1361 .env
    -a----       21/02/2021     13:05             18 .gitattributes
    -a----       21/02/2021     13:05             13 .gitignore
    -a----       21/02/2021     13:05           6512 README.md
    -a----       21/02/2021     13:05           5587 Vagrantfile
    
    

    Move Oracle Database .zip Files

    Once we are in the directory we need to place the Oracle 19c database installation .zip files here so that our Vargant VM can pick them up and install an Oracle Database for us.

    PS D:\Vagrant\vagrant-projects\OracleDatabase\19.3.0> ls
    
    
        Directory: D:\Vagrant\vagrant-projects\OracleDatabase\19.3.0
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----       21/02/2021     13:12                .vagrant
    d-----       21/02/2021     13:05                ora-response
    d-----       21/02/2021     13:05                scripts
    d-----       21/02/2021     13:05                userscripts
    -a----       21/02/2021     13:05           1361 .env
    -a----       21/02/2021     13:05             18 .gitattributes
    -a----       21/02/2021     13:05             13 .gitignore
    -a----       11/08/2020     20:07     3059705302 LINUX.X64_193000_db_home.zip
    -a----       21/02/2021     13:05           6512 README.md
    -a----       21/02/2021     13:05           5587 Vagrantfile
    

    Start Oracle Database with Vagrant

    Next, it’s as simple as typing vagrant up command, which will then go away and build you an Oracle Database Virtual machine running on Oracle Linux 7. It takes a little bit of time as it installs the database so it’s worth going to make a coffee on my host it took 30 minutes to get a working VM. If you’re starting the VM again it will be much faster, the initial start is the only one that takes the time.

    PS D:\Vagrant\vagrant-projects\OracleDatabase\19.3.0> vagrant up
    
    ...
    ...
    ...
    ...
    
     oracle-19c-vagrant: 32% complete
        oracle-19c-vagrant: 36% complete
        oracle-19c-vagrant: 40% complete
        oracle-19c-vagrant: 43% complete
        oracle-19c-vagrant: 46% complete
        oracle-19c-vagrant: Completing Database Creation
        oracle-19c-vagrant: 51% complete
        oracle-19c-vagrant: 54% complete
        oracle-19c-vagrant: Creating Pluggable Databases
        oracle-19c-vagrant: 58% complete
        oracle-19c-vagrant: 77% complete
        oracle-19c-vagrant: Executing Post Configuration Actions
        oracle-19c-vagrant: 100% complete
        oracle-19c-vagrant: Database creation complete. For details check the logfiles at:
        oracle-19c-vagrant:  /opt/oracle/cfgtoollogs/dbca/ORCLCDB.
        oracle-19c-vagrant: Database Information:
        oracle-19c-vagrant: Global Database Name:ORCLCDB
        oracle-19c-vagrant: System Identifier(SID):ORCLCDB
        oracle-19c-vagrant: Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
        oracle-19c-vagrant:
        oracle-19c-vagrant: SQL*Plus: Release 19.0.0.0.0 - Production on Sun Feb 21 14:22:43 2021
        oracle-19c-vagrant: Version 19.3.0.0.0
        oracle-19c-vagrant:
        oracle-19c-vagrant: Copyright (c) 1982, 2019, Oracle.  All rights reserved.
        oracle-19c-vagrant:
        oracle-19c-vagrant: Connected to:
        oracle-19c-vagrant: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
        oracle-19c-vagrant: Version 19.3.0.0.0
    ...
    ...
    ...
        oracle-19c-vagrant: Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
        oracle-19c-vagrant: Version 19.3.0.0.0
        oracle-19c-vagrant: INSTALLER: Database created
        oracle-19c-vagrant: INSTALLER: Oratab configured
        oracle-19c-vagrant: Created symlink from /etc/systemd/system/multi-user.target.wants/oracle-rdbms.service to /etc/systemd/system/oracle-rdbms.service.
        oracle-19c-vagrant: INSTALLER: Created and enabled oracle-rdbms systemd's service
        oracle-19c-vagrant: INSTALLER: setPassword.sh file setup
        oracle-19c-vagrant: INSTALLER: Running user-defined post-setup scripts
        oracle-19c-vagrant: INSTALLER: Done running user-defined post-setup scripts
        oracle-19c-vagrant: ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: 5UPTEi9mXjA=1
        oracle-19c-vagrant: INSTALLER: Installation complete, database ready to use!
    
    

    Log in to Oracle Database

    Head onto your Virtual Machine using vagrant ssh and check the database;

    PS D:\Vagrant\vagrant-projects\OracleDatabase\19.3.0> vagrant ssh
    
    Welcome to Oracle Linux Server release 7.9 (GNU/Linux 5.4.17-2011.6.2.el7uek.x86_64)
    
    The Oracle Linux End-User License Agreement can be viewed here:
    
      * /usr/share/eula/eula.en_US
    
    For additional packages, updates, documentation and community help, see:
    
      * https://yum.oracle.com/
    
    [vagrant@oracle-19c-vagrant ~]$ sudo su - oracle
    Last login: Sun Feb 21 14:22:42 GMT 2021
    [oracle@oracle-19c-vagrant ~]$ ps -ef |grep -i listener
    oracle    8263     1  0 14:06 ?        00:00:00 /opt/oracle/product/19c/dbhome_1/bin/tnslsnr LISTENER -inherit
    oracle   12907 12883  0 14:26 pts/0    00:00:00 grep --color=auto -i listener
    [oracle@oracle-19c-vagrant ~]$ ps -ef |grep -i pmon
    oracle   12294     1  0 14:22 ?        00:00:00 ora_pmon_ORCLCDB
    oracle   12914 12883  0 14:26 pts/0    00:00:00 grep --color=auto -i pmon
    [oracle@oracle-19c-vagrant ~]$ . oraenv
    ORACLE_SID = [ORCLCDB] ?
    The Oracle base remains unchanged with value /opt/oracle
    [oracle@oracle-19c-vagrant ~]$ cat /etc/oratab
    #
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
    [oracle@oracle-19c-vagrant ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Sun Feb 21 14:26:47 2021
    Version 19.3.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    
    SQL> select version from v$instance;
    
    VERSION
    -----------------
    19.0.0.0.0
    

    Now we have a 19.3 Oracle database runing on Oracle Linux 7 for your use in a lab or at home for any testing or checking you want to perform.

    Conclusion

    From the steps above you can hopefully see how simple Vagrant can be, if you have any questions or get stuck please get in touch and I can help you through your issues.