Installing and running Oracle Database 19.2.0.0 on Oracle Linux 7

In this article I will describe how to install the very first available release of Oracle Database 19c (19.2.0.0) binaries on Oracle Linux 7.6. Even though it's not officially released for Oracle Linux non-Exadata yet, in edelivery it is available an Exadata DB version that is compatible with your local machine running OL.

Use it for test purposes only and to see what is coming in this new release.

First of all open https://edelivery.oracle.com/ and Sign In.

Search for "Oracle Database (Available and Supported only on Exadata)".

Add the REL: Oracle Database (Available and Supported only on Exadata) 19.2.0.0.0.

Now you can either download the file to your machine or generate the WGET script to download it directly to your linux server. In my case I downloaded the zip file and transferred to my Virtual Box.

Keep this file for later usage. Now let's start preparing our VM.

I've deployed a brand new Oracle Linux 7.6 using vagrant with 2G RAM only. It's available at this link: https://github.com/oracle/vagrant-boxes/.

I used vagrant because its very fast and easy to deploy a server, taking less than 10 minutes (not kidding). However, you may also use your own cloud/virtual/physical server.

So the first step is to check the hostname of your machine to /etc/hosts with it's own IP (not 127.0.0.1), or listener configuration will fail:

[root@ol7-vagrant ~]# hostname
ol7-vagrant
[root@ol7-vagrant ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe20:edbc  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:20:ed:bc  txqueuelen 1000  (Ethernet)
        RX packets 48172  bytes 12616731 (12.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27309  bytes 3558673 (3.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 53385  bytes 17629596 (16.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 53385  bytes 17629596 (16.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@ol7-vagrant ~]# cat /etc/hosts
10.0.2.15       ol7-vagrant     ol7-vagrant
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

[root@ol7-vagrant ~]#

Next, let's speed up the things downloading all the pre-reqs with yum. Note that the 18c preinstall works well for 19c DB:

[root@ol7-vagrant ~]# yum install -y oracle-database-preinstall-18c.x86_64
ol7_UEKR5                                                                                        | 1.2 kB  00:00:00
ol7_addons                                                                                       | 1.2 kB  00:00:00
ol7_developer                                                                                    | 1.2 kB  00:00:00
ol7_developer_EPEL                                                                               | 1.2 kB  00:00:00
ol7_latest                                                                                       | 1.4 kB  00:00:00
ol7_optional_latest                                                                              | 1.2 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-preinstall-18c.x86_64 0:1.0-1.el7 will be installed

( many more lines suppressed )

Installed:
  oracle-database-preinstall-18c.x86_64 0:1.0-1.el7

Dependency Installed:
  bc.x86_64 0:1.06.95-13.el7                                           bind-libs.x86_64 32:9.9.4-73.el7_6
  bind-utils.x86_64 32:9.9.4-73.el7_6                                  compat-libcap1.x86_64 0:1.10-7.el7
  compat-libstdc++-33.x86_64 0:3.2.3-72.el7                            gssproxy.x86_64 0:0.7.0-21.el7
  keyutils.x86_64 0:1.5.8-3.el7                                        ksh.x86_64 0:20120801-139.0.1.el7
  libICE.x86_64 0:1.0.9-9.el7                                          libSM.x86_64 0:1.2.2-2.el7
  libX11.x86_64 0:1.6.5-2.el7                                          libX11-common.noarch 0:1.6.5-2.el7
  libXau.x86_64 0:1.0.8-2.1.el7                                        libXext.x86_64 0:1.3.3-3.el7
  libXi.x86_64 0:1.7.9-1.el7                                           libXinerama.x86_64 0:1.1.3-2.1.el7
  libXmu.x86_64 0:1.1.2-2.el7                                          libXrandr.x86_64 0:1.5.1-2.el7
  libXrender.x86_64 0:0.9.10-1.el7                                     libXt.x86_64 0:1.1.5-3.el7
  libXtst.x86_64 0:1.2.3-1.el7                                         libXv.x86_64 0:1.0.11-1.el7
  libXxf86dga.x86_64 0:1.1.4-2.1.el7                                   libXxf86misc.x86_64 0:1.0.3-7.1.el7
  libXxf86vm.x86_64 0:1.1.4-1.el7                                      libaio-devel.x86_64 0:0.3.109-13.el7
  libbasicobjects.x86_64 0:0.1.1-32.el7                                libcollection.x86_64 0:0.7.0-32.el7
  libdmx.x86_64 0:1.1.3-3.el7                                          libevent.x86_64 0:2.0.21-4.el7
  libini_config.x86_64 0:1.3.1-32.el7                                  libnfsidmap.x86_64 0:0.25-19.el7
  libpath_utils.x86_64 0:0.2.1-32.el7                                  libref_array.x86_64 0:0.1.5-32.el7
  libstdc++-devel.x86_64 0:4.8.5-36.0.1.el7                            libtirpc.x86_64 0:0.2.4-0.15.el7
  libverto-libevent.x86_64 0:0.2.5-4.el7                               libxcb.x86_64 0:1.13-1.el7
  lm_sensors-libs.x86_64 0:3.4.0-6.20160601gitf9185e5.el7              mailx.x86_64 0:12.5-19.el7
  nfs-utils.x86_64 1:1.3.0-0.61.0.1.el7                                psmisc.x86_64 0:22.20-15.el7
  quota.x86_64 1:4.01-17.el7                                           quota-nls.noarch 1:4.01-17.el7
  rpcbind.x86_64 0:0.2.0-47.el7                                        smartmontools.x86_64 1:6.5-1.el7
  sysstat.x86_64 0:10.1.5-17.el7                                       tcp_wrappers.x86_64 0:7.6-77.el7
  unzip.x86_64 0:6.0-19.el7                                            xorg-x11-utils.x86_64 0:7.5-23.el7
  xorg-x11-xauth.x86_64 1:1.0.9-1.el7

Complete!
[root@ol7-vagrant ~]#

Cool. Now I got all the pre-reqs installed. Next step is to transfer and the installation files:

Fine, now this part is important. Different from common pre-18c Oracle Database installation binaries, this one is the ORACLE_HOME ready to be deployed. You will still need to call the ./runInstaller, but the zip itself is already the ORACLE_HOME. So you will need to extract it directly to the place we want your binaries to be placed:

[root@ol7-vagrant ~]# mkdir -p /u01/app/oraInventory
[root@ol7-vagrant ~]# mkdir -p /u01/app/oracle/product/19.2.0/dbhome_1
[root@ol7-vagrant ~]# chown -R oracle: /u01/app/oraInventory
[root@ol7-vagrant ~]# chown -R oracle: /u01/app/oracle
[root@ol7-vagrant ~]# su - oracle
[oracle@ol7-vagrant ~]$ unzip -q /vagrant/V981623-01.zip -d /u01/app/oracle/product/19.2.0/dbhome_1/

Now we are ready to install it.

[oracle@ol7-vagrant ~]$ export ORACLE_HOME=/u01/app/oracle/product/19.2.0/dbhome_1
[oracle@ol7-vagrant ~]$ /u01/app/oracle/product/19.2.0/dbhome_1/runInstaller
Launching Oracle Database Setup Wizard...

And here we go. Choose "Create and configure a single instance database":

In next screen select "Server class" for more advanced options:

Let's go with "Enterprise Edition":

In next screen where we choose the Oracle base folder:

Set the inventory directory:

Let's go with a General Purpose DB:

Keeping my DB name as orcl:

Now I will keep memory very low as my whole machine has only 2G:

Next screen is the data file location. I will keep it in my Oracle Base:

No EM for now as I'm low in memory =P

Also no Recovery, as this is for testing new features only:

Time to set password. Here I will put "oracle" for everyone:

Check the OS groups:

In the next screen, I define that I will execute manually the root scripts.. I don't like to type my root password anywhere but in the console or give sudo to oracle:

In next screen database will performe the prereq checks:

Check the Summary.

Press Install and installation will start.

Wait for installation to prompt for scripts execution:

Time to run root scripts:

[root@ol7-vagrant ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@ol7-vagrant ~]#
[root@ol7-vagrant ~]# /u01/app/oracle/product/19.2.0/dbhome_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19.2.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Oracle Trace File Analyzer (TFA - Standalone Mode) is available at :
    /u01/app/oracle/product/19.2.0/dbhome_1/bin/tfactl

Note :
1. tfactl will use TFA Service if that service is running and user has been granted access
2. tfactl will configure TFA Standalone Mode only if user has no access to TFA Service or TFA is not installed

[root@ol7-vagrant ~]#

Press OK and wait a few more steps:

The database creation part is usually the who lasts longer..

And finally it's completed:

This last screen is has a buggy message, as I didn't asked for EM.

Installation DB Install can be found here: db_install.rsp

Everything worked like a charm. And finally time to test:

[oracle@ol7-vagrant ~]$ export PATH=$PATH:$ORACLE_HOME/bin
[oracle@ol7-vagrant ~]$ export ORACLE_SID=orcl
[oracle@ol7-vagrant ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Feb 14 18:13:15 2019
Version 19.2.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.2.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
SQL>

Time to play with it. Have fun!

Have you enjoyed? Please leave a comment or give a 👍!

3 comments

  1. Nice, very informative, keep going Rodrigo !!

    • Yves on March 30, 2019 at 20:31
    • Reply

    Well , didn't try to download/install as I have been misleaded by the comment "Exadata only". Will try it on my OVM infra in one of my OEL7.6 VM's. Thanks a lot Rodrigo for the compact but useful info !! Nice roadmap.

      • Yves Haegeman on March 31, 2019 at 18:35
      • Reply

      Succeeded on OVM
      vmoralin19c : 2 Vcpu's , 10 Gb RAM , 20 Gb swap , Oracle Linux Server release 7.6
      1 iSCSI / ocfs2 local disk of 600 Gb (no LVM neither CLVM)
      DB-creation (O19) took indeed 4 times the time of software-install

      Regarding your EM-comment , the installer installed DB Express (https://vmoralin19c:5501/em) which is a local subset of the real OEM (and indeed not configured as indicated/asked => no oraagent installed & configured to join a central OEM)

      Anyway , clear and effective "roadmap to install 19c".

      Did you find some time to install Grid/Clusterware 19c as well ?

      K r,
      Yves

Leave a Reply

Your email address will not be published.