In 2014, while teaching Oracle Database Administration courses at Austin Community College, I wrote a series of blog posts on how to create an Oracle Database server: Oracle Database 12c on Oracle Linux 6, so my students could build their own practice database servers.
Now, as the Director of Consulting Services in the Oracle Technologies division of Talan, I was recognized as an Oracle ACE. Part of the ACE program is promoting Oracle at Conferences (I presented two sessions at ODTUG’s Kscope26 conference in Colorado this year) and doing things like blogging. Blogging helps me maintain my ACE status (although I’ll have more than enough points from presenting at conferences this year).
Since I’ve been a bit sporadic about blogging lately, I thought I’d get back into the swing of things by putting out my complete step-by-step instructions for building an Oracle Database server on your own machine. Note that these days, you no longer really have to do this. You can simply go to Oracle Cloud and obtain a pre-configured database server. If you just need “the database” and don’t want to do anything at the operating system level, then an Oracle Autonomous Database is for you. However, there are several limitations associated with an Autonomous Database (which is essentially a pluggable database within a database maintained by Oracle for you) that are completely removed if you opt for an Oracle Base Database instead. With an Oracle Base Database, you get direct access to the operating system, and you could, for example, potentially attempt to do all of the examples within Tom & Darl’s incredibly awesome book Expert Oracle Database Architecture. (One of my presentations at Kscope this year was basically “Read this book, do all the examples while understanding what’s happening, and you’ll be a much better Oracle Database developer.”) That said, messing around with an Oracle Base Database on Oracle Cloud could possibly get you into a state where the automated patching tools and other things that Oracle does for you might not work. If you are just playing around, you could always blow away the database and create a new one if you mess it up too much.
However, if you would like to build a practice database server from scratch on your own machine, and along the way, learn much more about how an Oracle Database server is built, then this series of blog posts is for you.
A note about my philosophy when it comes to Oracle Database servers and the rules I like to follow.
- Ease of understanding, especially during a crisis, is important
- Less configuration is, almost certainly, better configuration
- The more you understand how, and why, and where the Oracle database does its things, the better you can respond in an emergency situation
As an example, when I make my post about the systemd services that I create for Oracle backups, you’ll notice that the entirety of the RMAN backup configuration is entirely within the system command. This means that if there are changes to be made, I go to the one place where my backup is configured and just address changes there. The ‘traditional’ approach of a cron job (1) that calls a script (2) that calls RMAN (3) with another file for the RMAN commands (4) spreads “How are backups done?” all across your OS in different files in different directories.
As I get time, I’ll be adding posts for each of the items below (almost certainly in order as I do these steps on my own new Talan laptop) and linking them from here.
Building an Oracle 26ai Database Server
- Install Oracle VirtualBox & VirtualBox Extension Pack
- Download Oracle Linux ISO
- Create Linux Virtual Machine
- Log in as root & Improve Quality of Life
- Disable selinux
- Disable firewalld
- Update /etc/hosts
- Install Guest Additions Into Virtual Machine
- Install Oracle Linux 9 EPEL & Oracle Software Repos
- Install rlwrap
- Install Oracle Database Preinstall RPM
- Install Oracle JDK
- Install Nginx (optional)
- Set oracle OS user password
- Create Oracle directories
- Initial Oracle login and quality of life improvements
- Install autoupgrade
- Create autoupgrade download keystore
- Download Oracle Database with autoupgrade
- Download Oracle APEX with patch (if available)
- Download ORDS
- Create Oracle software home with autoupgrade
- Configure read only home (poorly named)
- Create Oracle container database with pluggable
- Create listener
- Install ORDS
- Install & Patch Oracle APEX
- Set APEX internal workspace password
- Enable APEX network services
- Create and enable an APEX resource manager plan
- Turn on database flashback
- Create systemd services for database and ORDS
- Create systemd backup service
- Configure APEX static images (CDN or local)
- Install mkcert for signed certificates
- Configure Nginx
- Disable annoying password stuff in APEX
A note about the Joel Kallman Day tag on this post:
Joel was a really nice person who dedicated his life to being a good and kind person. He did so much for the Oracle APEX community and for his family. Those of us who knew him still really miss him.
My last correspondence with Joel was this:
Got a few minutes to chat? Trying to help a CIO find a good APEX hire? - me
Sorry, on medical leave. - Joel
No problem at all. Sorry, I didn't know. Here's to a speedy recovery! - me
That speedy recovery never came, and the world is at a loss because of it.
Leave a Reply