Wednesday, January 29, 2020


RMAN-06136: ORACLE error from auxiliary database: ORA-00201: control file versio n 12.1.0.0.0 incompatible with ORACLE version 12.0.0.0.0

Issue:
While performing the clone of Oracle Database using ‘Active Duplication’, the clone may fail with below errors,
RMAN-06136: ORACLE error from auxiliary database: ORA-00201: control file version 12.1.0.0.0 incompatible with ORACLE version 12.0.0.0.0


Cause:

Target database might be having lower Compatibility set in parameter file /SPFILE



Connect to sqlplus ‘/ as sysdba’ in target Database and issue the below command to check the compatibility set in Parameter file/SPFILE

SQL> show parameter comp



NAME                                             TYPE                                                    Value

—————-                                ————                                                  —————-

cell_offload_compaction                string                                                     ADAPTIVE

compatible                                      string                                                    12.1.0.0

nls_comp                                        string                                                     BINARY

plsql_v2_compatibility                  boolean                                                 FALSE

Solution
==========
create pfile manually ( initTEST.ora)

Add below lines only


DB_NAME=TEST
*.compatible='12.1.0.0.0'






RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 01/17/2017 11:02:45
RMAN-05501: aborting duplication of target database
RMAN-05520: database name mismatch, auxiliary instance has PROD, command specified CLONE

Cause: Cause:

I started the duplicate while instance is in nomount and duplicate returned into error after mounting the database due to no backup or found. This duplicate was triggered after connecting to both target and auxiliary instances. During the clone RMAN will begin the clone instance with the target instance name (its PROD in my case) and proceed with the duplicate. When the duplication is successful it will clone the database with the auxiliary instance name. Since the duplicate resulted into error it left the instance with target instance name (PROD).

Fix :

- Just shut abort or immediate the auxiliary instance.
- Start the auxiliary instance (CLONE) in nomount using pfile
- Re-run the duplicate


Tuesday, January 28, 2020



Delete expired archivelogs using RMAN

Below commands will helpful for deleting expired archivelog files through RMAN :
RMAN>list expired archivelog all;
RMAN>crosscheck archivelog all;
RMAN>delete noprompt expired archivelog all;
Now check the output with below command it should not return any list
RMAN> list expired archivelog all;
using target database control file instead of recovery catalog
specification does not match any archived log in the repository
RMAN>

Wednesday, January 22, 2020


RMAN-04014: startup failed: ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated ORA-09291: sksachk: invalid device specified for archive destination

While performing RMAN refresh to 12.2.0.1.0 from 12.1.0.2.0, below error was encountered:
Recovery Manager: Release 12.2.0.1.0 – Production on Tue Nov 14 11:45:26 2017
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.connected to auxiliary database: DEVDB (not mounted)RMAN> run{DUPLICATE TARGET DATABASE TO 'DEVDB'SPFILEparameter_value_convert ('PRODB','DEVDB')set db_file_name_convert='D:\APP\ORACLE\ORADATA\PRODB\DATAFILE\','D:\APP\ORACLE\ORADATA\DEVDB\DATAFILE\'set log_file_name_convert='D:\APP\ORACLE\ORADATA\PRODB\DATAFILE\','D:\APP\ORACLE\ORADATA\DEVDB\DATAFILE\'set audit_file_dest='D:\app\Oracle\admin\DEVDB\adump'set core_dump_dest='D:\app\Oracle\admin\DEVDB\cdump'set control_files='D:\APP\ORACLE\ORADATA\DEVDB\CONTROLFILE\O1_MF_F06L807F_.CTL','D:\APP\ORACLE\ORADATA\DEVDB\CONTROLFILE\O2_MF_F06L807F_.CTL','D:\APP\ORACLE\ORADATA\DEVDB\CONTROLFILE\O3_MF_F06L807F_.CTL'set db_name='DEVDB'BACKUP LOCATION 'D:\app\Oracle\Backup\RMAN'NOFILENAMECHECK; } Starting Duplicate Db at 14-NOV-17------- Oracle instance shut down connected to auxiliary database (not started)RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of Duplicate Db command at 11/14/2017 11:46:16RMAN-05501: aborting duplication of target databaseRMAN-03015: error occurred in stored script Memory ScriptRMAN-04014: startup failed: ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translatedORA-09291: sksachk: invalid device specified for archive destinationOSD-04018: Unable to access the specified directory or device.O/S-Error: (OS 3) The system cannot find the path specified. Recovery Manager complete.
run
{
DUPLICATE TARGET DATABASE TO 'DEVDB'
SPFILE
parameter_value_convert ('PRODB','DEVDB')
set db_file_name_convert='D:\APP\ORACLE\ORADATA\PRODB\DATAFILE\','D:\APP\ORACLE\ORADATA\DEVDB\DATAFILE\'
set log_file_name_convert='D:\APP\ORACLE\ORADATA\PRODB\DATAFILE\','D:\APP\ORACLE\ORADATA\DEVDB\DATAFILE\'
set audit_file_dest='D:\app\Oracle\admin\DEVDB\adump'
# set core_dump_dest='D:\app\Oracle\admin\DEVDB\cdump'
set log_archive_dest_1='location=D:\app\Oracle\fast_recovery_area\DEVDB\DEVDB\ARCHIVELOG'
set control_files='D:\APP\ORACLE\ORADATA\DEVDB\CONTROLFILE\O1_MF_F06L807F_.CTL','D:\APP\ORACLE\FAST_RECOVERY_AREA\DEVDB\DEVDB\CONTROLFILE\O1_MF_F06L808F_.CTL','D:\APP\ORACLE\ORADATA\DEVDB\CONTROLFILE\O3_MF_F06L807F_.CTL'
set db_name='DEVDB'
BACKUP LOCATION 'D:\app\Oracle\Backup\RMAN'
NOFILENAMECHECK;
}

Solution:
Amend set log_archive_dest_1=’location=D:\app\Oracle\fast_recovery_area\DEVDB\DEVDB\ARCHIVELOG’

Tuesday, January 21, 2020






APPLIES TO:

Oracle Database - Enterprise Edition - Version 11.2.0.1 and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Information in this document applies to any platform.
***Checked for relevance on 10-Dec-2015***

GOAL

Rman 11g release 2 provides us the flexibility of creating the rman duplicate without connecting to the target database and recovery catalog.
All rman needs here is the location of the backup pieces which is accessible and rman reads the backup pieces and restores the spfile,controlfile,datafiles and archivelog files to perform the duplicate operation.

An example for this kind of duplicate operation is:

RMAN> DUPLICATE DATABASE TO <auxiliary DB name>
                UNTIL TIME "TO_DATE('29-MAY-2010 14:16:42','DD-MON-YYYYHH24:MI:SS')"
                SPFILE
                 set control_files='D:\<aux path>\c1.ctl'
                 set db_file_name_convert='D:<target path>','D:<aux path>'
                 set log_file_name_convert='D:<target path>','D:<aux path>'
               BACKUP LOCATION 'D:\<location of backup on disk>';


# Here use of the BACKUP LOCATION clause identifies the type of duplication as having no target connection, no recovery catalog and being backup-based.

This is  a New Feature in 11gR2
http://docs.oracle.com/cd/E11882_01/backup.112/e10642/wnbradv.htm#BRADV021
Oracle® Database Backup and Recovery User's Guide
11g Release 2 (11.2)
.
 What's New in Backup and Recovery?

SOLUTION


Process involved in this type of duplicate database

++ Rman restores the spfile from the backup pieces located in the mentioned location.

++ Once the spfile is restored, rman sets appropriate values to the parameters mentioned the duplicate command. For example:

db_name
control_files
db_file_name_convert
log_file_name_convert

etc ...

Once done, rman restarts the instance to no mount so that the changes can take effect.

++ Rman now changes the value of the parameter db_name to the target database name to achieve the restore of the controlfile. The restored controlfile will have the db_name as of the target database name and since we cannot have a different db_name in the spfile and in the controlfile, rman will have to set the parameter db_name to the target database name and perform the restore of the datafiles and controlfiles.

Also here if the duplicate is happening on the same machine, then 2 controlfiles with the same db_name cannot be mounted. In order to achieve this the auxiliary instance will have the parameter db_unique_name set to a unique value. Rman takes care of this sets the db_uniqiue_name to the database name specified for the auxiliary database.

++ After the above operation,controlfile is restored from the backup piece to the location provided for the parameter control_files.

++ Now Rman restores the datafiles to the locations specified by the parameter db_file_name_convert.

++ Recovery of the datafiles are performed.

++ Once the recovery is completed, rman shuts down the database to reset the value of db_name to the value provided for the auxiliary database.

++ Once this is done, the database is taken to no mount phase and the controlfile is recreated to change the database name and the id.This is followed by the database getting opened with resetlogs.


The steps involved in creating the duplicate database are as follows

1) Take a backup of the spfile, controlfile, database, and archivelogs as follows:

RMAN> backup spfile ;
RMAN> backup database include current controlfile plus archivelog ;

2) Making the backup pieces available for duplicate operation.

++ If the duplicate is going to happen on different server, move the backup pieces to a new server using commands like ftp,scp etc.
++ If the duplicate is going to happen on the same server as target, then you can either retain them in the same location where the backup was done or copy it to a required location.

3) Create a password file for the auxiliary instance.

For unix copy the password file from the target database to $ORACLE_HOME/dbs and rename it.
For windows copy the password file from the target database to %ORACLE_HOME/database and rename it.

4) Create a initialization parameter (initTEST.ora) for the auxiliary instance with only one parameter DB_NAME.

DB_NAME=dup11r2

5) Now start the auxiliary instance to no mount mode.

Unix Example
============
Just set the environment variables and start the instance.

% export ORACLE_SID=<auxiliary ORACLE_SID>
% export ORACLE_HOME=/<oracle_home path>
% export PATH=$ORACLE_HOME/bin:$PATH
% sqlplus "/as sysdba"
SQL > startup nomount



Windows Example
===============
Create a service and then set the necessary environment variables and start the instance.

% oradim -new -sid <auxiliary ORACLE_SID>
set ORACLE_SID=auxiliary ORACLE_SID>
set ORACLE_HOME=D:\<oracle home path>\
set PATH=D:\<oracle home>\bin;%PATH%
% sqlplus "/as sysdba"
SQL > startup nomount

6) Connect to the auxiliary instance from RMAN and perform the rman duplicate as follows:


EXAMPLE
=======
% rman auxiliary /

RMAN > DUPLICATE DATABASE TO dup11r2
UNTIL TIME "TO_DATE('29-MAY-2010 14:16:42','DD-MON-YYYY HH24:MI:SS')"
SPFILE
set control_files='D:\<auxiliary path>\c1.ctl'
set db_file_name_convert='D:\<target path>','d:\<auxiliary path>'
set log_file_name_convert='D:\<target path>','d:\<auxiliary path>'
BACKUP LOCATION 'D:\<location of backup on disk>'
;

Unix
======
run
{
duplicate database to "TEST"
UNTIL TIME "TO_DATE('21-JAN-2020 12:30:00','DD-MON-YYYY HH24:MI:SS')"
SPFILE
        set control_files='/u02/oradata/TEST/control01.ctl','/u02/oradata/TEST/control02.ctl','/u02/oradata/TEST/control03.ctl'
        set LOG_FILE_NAME_CONVERT='/u02/oradata/PROD/','/u02/oradata/TEST/'
        set db_file_name_convert='/u02/oradata/PROD/','/u02/oradata/TEST/'
        set LOCAL_LISTENER=''
        set audit_file_dest='/u01/app/oracle/admin/TEST/adump'
        set log_archive_dest_1='location=/u02/oradata/fast_recovery_area/TEST/archivelog'
        BACKUP LOCATION '/u02/rman/backup_files';
}



Friday, January 17, 2020


dbt-06103 the port 1521 is already in use



CHANGES

 New database install on OL 7.3. (running on an OVM virtual machine)

CAUSE

the hostname is not reachable:
[root@db122 ~]# ping db122
ping: db122: Name or service not known
From 12.2 DB installation guide:
You can install Oracle Database on a non-networked computer. If the computer, such as a laptop, is configured for DHCP and you plan to connect the computer to the network after the Oracle Database installation, then use the ping command on the computer on which you want to install the database to check if the computer can connect to itself. Perform this step by first using only the host name and then using the fully qualified name, which should be in the /etc/hosts file.

SOLUTION

Qualify the short hostname into the /etc/hosts:
i.e modify
X.X.X.X db122.<domain>
to:
X.X.X.X db122.<domain> db122


Thursday, January 16, 2020


[oracle@db ~]$ dbca
DISPLAY not set.
Set DISPLAY environment variable, then re-run.


[oracle@db dbhome_1]$ DISPLAY=:1.0 ; export DISPLAY
[oracle@db dbhome_1]$ xhost +
xhost:  unable to open display ":1.0"


[oracle@db ~]$ ssh -XY oracle@192.168.0.33

The authenticity of host '192.168.0.33 (192.168.0.33)' can't be established.
ECDSA key fingerprint is SHA256:DJqwvDyW3jgM6AvHwZcXdCMGH3rs+O7WqwnaPCLpw2E.
ECDSA key fingerprint is MD5:6f:1e:09:c1:3c:c6:b1:7c:ac:3b:0e:61:2b:21:77:36.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.33' (ECDSA) to the list of known hosts.
oracle@192.168.0.33's password: 
Last login: Fri Jan 17 12:10:39 2020 from db.lalteer.com

[oracle@db ~]$ dbca


















Thursday, January 9, 2020


Installing Oracle 12.1.0.2 on Red Hat 7


This is not a complete guide how to do the installation. Just a note how to get a RPM-GPG-KEY-oracle file to Red Hat 7. 

Go to oracle-base for installation notes on oel7.Installation documentation is mentioning: "Starting with Oracle Database 12c Release 1 (12.1.0.2), Oracle Linux 7 and Red Hat Enterprise Linux 7 are supported on Linux x86-64 systems." So do not try to install 12.1.0.1 on Red Hat 7. The case when you have SE one licence and not yet buying SE2 license. Just to mention 11.2 is supported to be installed on Red Hat Enterprise Linux 7.
Download the information about Oracle public yum repo

 https://docs.oracle.com/cd/E52668_01/E54669/html/ol7-downloading-yum-repo.html

# cd /etc/yum.repos.d 

# wget http://public-yum.oracle.com/public-yum-ol7.repo

Try to install preinstall package and get an error.yum install oracle-rdbms-server-12cR1-preinstall
...
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle 

 GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle"

 
You need the file mentioned here


# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
 
And you will succeed installing:yum install oracle-rdbms-server-12cR1-preinstall

Wednesday, January 8, 2020

Oracle Database 12c Release 2 (12.2) Installation On Oracle Linux 6 (OL6) and 7 (OL7)

This article describes the installation of Oracle Database 12c Release 2 (12.2) 64-bit on Oracle Linux 6 (OL6) and 7 (OL7) 64-bit. The article is based on a server installation with a minimum of 2G swap and secure Linux set to permissive. An example of this type of Linux installation can be seen here (OL6 or OL7).
Related articles.

Download Software

Download the Oracle software from OTN or MOS depending on your support status.

Unpack Files

Unzip the file.
unzip linuxx64_12201_database.zip
You should now have a single directory called "database" containing installation files.

Hosts File

The "/etc/hosts" file must contain a fully qualified name for the server.
<IP-address>  <fully-qualified-machine-name>  <machine-name>
For example.
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.56.107  ol7-122.localdomain  ol7-122
Set the correct hostname in the "/etc/hostname" file.
ol7-122.localdomain

Oracle Installation Prerequisites

Perform either the Automatic Setup or the Manual Setup to complete the basic prerequisites. The Additional Setup is required for all installations.

Automatic Setup

If you plan to use the "oracle-database-server-12cR2-preinstall" package to perform all your prerequisite setup, issue the following command.
# cd /etc/yum.repos.d
# wget http://yum.oracle.com/public-yum-ol7.repo
# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
# yum install oracle-database-server-12cR2-preinstall -y
It is probably worth doing a full update as well, but this is not strictly speaking necessary.
# yum update -y
 It's worth running the all the YUM commands listed in the manual setup section. Depending on the OS package groups you have selected, some additional packages might also be needed.

Manual Setup

If you have not used the "oracle-database-server-12cR2-preinstall" package to perform all prerequisites, you will need to manually perform the following setup tasks.
Add the following lines to the "/etc/sysctl.conf" file, or in a file called "/etc/sysctl.d/98-oracle.conf".
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
Run one of the following commands to change the current kernel parameters, depending on which file you edited.
/sbin/sysctl -p
# Or
/sbin/sysctl -p /etc/sysctl.d/98-oracle.conf
Add the following lines to a file called "/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf" file.
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728
 Someone in the comments suggested you might need to add the previous lines into the "/etc/security/limits.conf" file also for CentOS7. This is definitely not needed for OL7, but worth considering if the installer gives prerequisite failures for these settings.
The following packages are listed as required, including the 32-bit version of some of the packages. Many of the packages should be installed already.
# OL6 and OL7 (RHEL6 and RHEL7)
yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install make -y
yum install nfs-utils -y
yum install net-tools -y
yum install smartmontools -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y

# Required for 12.1, not listed for 12.2
yum install gcc -y
yum install gcc-c++ -y
yum install libXext -y
yum install libXext.i686 -y
yum install zlib-devel -y
yum install zlib-devel.i686 -y

# OL6 only (RHEL6 only)
yum install e2fsprogs -y
yum install e2fsprogs-libs -y
yum install libs -y
yum install libxcb.i686 -y
yum install libxcb -y
Create the new groups and users.
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
#groupadd -g 54324 backupdba
#groupadd -g 54325 dgdba
#groupadd -g 54326 kmdba
#groupadd -g 54327 asmdba
#groupadd -g 54328 asmoper
#groupadd -g 54329 asmadmin
#groupadd -g 54330 racdba

useradd -u 54321 -g oinstall -G dba,oper oracle
Uncomment the extra groups you require.

Additional Setup

The following steps must be performed, whether you did the manual or automatic setup.
Set the password for the "oracle" user.
passwd oracle
Set secure Linux to permissive by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set as follows.
SELINUX=permissive
Once the change is complete, restart the server or run the following command.
# setenforce Permissive
If you have the Linux firewall enabled, you will need to disable or configure it, as shown here or here. To disable it, do the following.
# systemctl stop firewalld
# systemctl disable firewalld
If you are not using Oracle Linux and UEK, you will need to manually disable transparent huge pages.
Create the directories in which the Oracle software will be installed.
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01
 Putting mount points directly under root is typically a bad idea. It's done here for simplicity, but for a real installation "/" should be reserved for the OS.
Unless you are working from the console, or using SSH tunnelling, login as root and issue the following command.
xhost +<machine-name>
 The scripts are created using the cat command, with all the "$" characters escaped. If you want to manually create these files, rather than using the cat command, remember to remove the "\" characters before the "$" characters.
Create a "scripts" directory.
mkdir /home/oracle/scripts
Create an environment file called "setEnv.sh".
cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP

export ORACLE_HOSTNAME=ol7-122.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=cdb1

export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH

export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
Add a reference to the "setEnv.sh" file at the end of the "/home/oracle/.bash_profile" file.
echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
Create a "start_all.sh" and "stop_all.sh" script that can be called from a startup/shutdown service. Make sure the ownership and permissions are correct.
cat > /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbstart \$ORACLE_HOME
EOF


cat > /home/oracle/scripts/stop_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbshut \$ORACLE_HOME
EOF

chown -R oracle.oinstall /home/oracle/scripts
chmod u+x /home/oracle/scripts/*.sh
Once the installation is complete and you've edited the "/etc/oratab", you should be able to start/stop the database with the following scripts run from the "oracle" user.
~/scripts/start_all.sh
~/scripts/stop_all.sh
You can see how to create a Linux service to automatically start/stop the database here (OL6OL7).

Installation

Log into the oracle user. If you are using X emulation then set the DISPLAY environmental variable.
DISPLAY=<machine-name>:0.0; export DISPLAY
DISPLAY=:0.0 ; export DISPLAY
DISPLAY=:1.0 ; export DISPLAY
xhost +
Start the Oracle Universal Installer (OUI) by issuing the following command in the database directory.
./runInstaller
Proceed with the installation of your choice.
You can see the type of installation I performed by clicking on the links below to see screen shots of each stage.
  1. Configure Security Updates
  2. Select Install Option
  3. Select System Class
  4. Select Database Installation Option
  5. Select Install Type
  6. Typical Install Configuration
  7. Create Inventory
  8. Perform Prerequisite Checks
  9. Summary
  10. Install Product
  11. Execute Configuration Scripts
  12. Database Configuration Assistant
  13. Finish
  14. Database Express 12c Login
  15. Database Express 12c Dashboard
The "Database Configuration Assistant Complete" screen displays the Database Express 12c URL, which will be something like "https://ol7-122.localdomain:5500/em".

Post Installation

Edit the "/etc/oratab" file setting the restart flag for each instance to 'Y'.
cdb1:/u01/app/oracle/product/12.2.0.1/db_1:Y
For more information see:

  RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time https://shivanandarao-oracle.com/2012/12/05/rman-20207-until-time-or-re...