Browse Docs

🔧 Installation

Sources & Docs

Oracle-Base: DB 19c RAC installation on Oracle Linux 8 (VirtualBox)

Standards

Keep every Oracle installation as uniform as possible (easier automation). The points below are all required.

Example migration: previous install RAC ONE NODE SE (Grid 19.0.0 + udev/ASM, DB 12.2.0.1) → new RAC Active/Active EE (Grid 19.3 + AFD/ASM, DB 19.10).

Users & groups

1grep oracle /etc/passwd     # oracle:x:1521:1521:Oracle User For Database Binaries:/home/oracle:/bin/bash
2grep oinstall /etc/group    # oinstall:x:1521:oracle
3grep dba /etc/group         # dba:x:1522:oracle

Filesystems & diskgroups

  • /u01 — a dedicated 100G filesystem (binaries ~25G + full install ~15G).
  • /tmp — minimum 4G.
  • DATA — ~60G raw devices / disks.
  • FRA — minimum 4 disks × 20G (or 40G), raw devices / disks.
  • VOT — minimum one 5G disk for the voting disk.

Network

  • Single instance: minimum two interfaces (public + backup/NFS).
  • RAC: three interfaces:
1DEVICE  TYPE      CONNECTION
2ens192  ethernet  Admin
3ens224  ethernet  Interconnect
4ens256  ethernet  Backup

One network interface for backups is required to mount an NFS share.

ORACLE_HOME / ORACLE_BASE

1ORACLE_HOME = /u01/app/oracle/product/XX.X.X/dbhome_1
2ORACLE_BASE = /u01/app/oracle/
3CRS_HOME    = /u01/grid/19c/

Database (dbca)

  • DB name ≤ 8 characters (the SID is also ≤ 8 chars; the db_unique_name will differ from the SID).
  • Fine-tuning parameters for a small DB:
    • OPTIMIZER_MODE=FIRST_ROWS
    • processes=300
    • undo_retention=10800
    • NLS_SORT=BINARY
    • parallel_min_servers=0 (recommended) / parallel_max_servers=10 (recommended)

ASM diskgroup organisation

  • one volume DATA
  • one volume FRA (archivelogs)
  • one volume VOT (voting disk + OCR)

OMF & components

Activate OMF (see the Tablespace page). Install only the minimum modules:

1SELECT comp_name FROM dba_registry;
2-- Oracle Database Catalog Views
3-- Oracle Database Packages and Types
4-- Oracle Real Application Clusters
5-- Oracle XML Database
6-- Oracle Workspace Manager

NLS

1SET LINES 200 PAGES 2000
2SELECT * FROM nls_database_parameters;

Grid + ASM installation

Prerequisites

1# from the Grid package
2cd /backup/INSTALL/GRID/cv/rpm
3CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
4rpm -iv cvuqdisk-1.0.10-1.rpm
  • RAC ONE NODE: only the public IP and the interconnect interface are configured; then 3 SCAN entries + one VIP per node in the DNS.
  • Disable SELinux (at least during the install).

Pre-check:

1cd /u01/oracle/base/product/19.0.0/grid
2./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose | tee /home/oracle/check_cluster.log

Manual install

1mkdir /u01/oracle_bin
2chown -R oracle:oinstall /u01
3
4mkdir -p /u01/oracle/base/product/19.0.0/grid
5unzip LINUX.X64_193000_grid_home.zip -d /u01/oracle/base/product/19.0.0/grid

Apply a patch (PSU) then launch:

1/u01/oracle/base/product/19.0.0/grid/gridSetup.sh -applyPSU /u01/oracle_bin/19_GRID/psu/30501910
2/u01/oracle/base/product/19.0.0/grid/gridSetup.sh

Grid installer choices:

  • External redundancy (managed by the storage, not Oracle).
  • Discovery path = the path defined by the udev rules.
  • ASM password = the same for all.
  • OS groups = oinstall everywhere.
  • Oracle base = /u01/oracle/base.
  • Run the root scripts (give the password).

AFD (ASM Filter Driver)

 1# as root
 2$ORACLE_HOME/bin/afddriverstate supported
 3export ORACLE_HOME=/u01/grid/19c
 4$ORACLE_HOME/bin/crsctl stop has -f
 5$ORACLE_HOME/bin/asmcmd afd_configure
 6$ORACLE_HOME/bin/crsctl start has
 7
 8# label devices
 9$ORACLE_HOME/bin/asmcmd afd_dsset "/dev/sd*"
10$ORACLE_HOME/bin/asmcmd afd_label DATA001 /dev/sdc1 --init
11$ORACLE_HOME/bin/asmcmd afd_label DATA002 /dev/sdd1 --init
12$ORACLE_HOME/bin/asmcmd afd_label FRA001  /dev/sde1 --init
13$ORACLE_HOME/bin/asmcmd afd_label VOT001  /dev/sdf1 --init
14# if "ASMCMD-9521: AFD is already configured": use --migrate instead of --init

Create the diskgroups

1. oraenv +ASM
2
3asmca -silent -createDiskGroup -diskGroupName DATA -diskList 'AFD:DATA*' -redundancy EXTERNAL
4asmca -silent -createDiskGroup -diskGroupName FRA  -diskList 'AFD:FRA*'  -redundancy EXTERNAL
5asmca -silent -createDiskGroup -diskGroupName OCR  -diskList 'AFD:VOT*'  -redundancy EXTERNAL
6
7asmcmd lsdsk -G DATA
8asmcmd dsset 'AFD:*'

DB binary install

1cd /u01/oracle_bin/database
2./runInstaller            # software only, single instance, EE/SE
3# software location: /u01/oracle/base/product/12.2.0/dbhome_1

As root:

1/u01/oracle/base/product/12.2.0/dbhome_1/root.sh

Then create the database with dbca, and set the environment:

1vi ~/.bash_profile
2# export ORACLE_BASE=/u01/oracle/base
3# export ORACLE_HOME=/u01/oracle/base/product/12.2.0/dbhome_1
4# export CRS_HOME=/u01/oracle/base/product/19.0.0/grid
5# PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME:OPatch:$CRS_HOME/bin
6. ~/.bash_profile

Create the database (DBCA)

Launch as oracle with X11 (or MobaXterm):

1$ORACLE_HOME/bin/dbca

Steps (Advanced Configuration):

  1. Create a Database → 2. Advanced Configuration → 3. Single instance or RAC ONE Node.
  2. Database name (≤ 8 chars), storage type (ASM), Fast Recovery Area.
  3. Enable ARCHIVELOG on +FRA (the FRA is where the archivelogs go).
  4. Keep the Listener on the default.
  5. Memory: “SGA + PGA (of each instance)” must not exceed the shared memory:
1df -TPh /dev/shm
2# tmpfs  tmpfs  3.9G  637M  3.2G  17% /dev/shm

Leave the defaults unless you have a reason. In “All Initialization Parameters”, set the tuning values from the Standards section above (OPTIMIZER_MODE=FIRST_ROWS, processes=300, undo_retention=10800, NLS_SORT=BINARY, parallel_min/max_servers).

Debug

1ls /u01/oracle/base/cfgtoollogs/dbca/trace.log_*
2ls /u01/oracle/base/diag/rdbms/*/*/trace/alert*
3tail -500f /u01/oracle/base/diag/rdbms/orcl/ORCL/trace/alert_ORCL.log

After creation — check

1SELECT * FROM nls_database_parameters;
2SELECT comp_name, version, status FROM dba_registry;
3SHOW PARAMETER cursor;
4SHOW PARAMETERS auth;
5SHOW PARAMETERS pga;
6SHOW PARAMETERS sga;

Client install

Instant Client

1mkdir -p /appli/oracle/product/instantclient/19.10
2cd /appli/oracle/product/instantclient/19.10
3# move the zip, unzip, then:
4mkdir lib bin
5for i in adrci exp expdp genezi imp impdp sqlldr sqlplus uidrvci wrc; do mv ${i} bin/.; done
6mv lib* lib/.
7mv *.jar lib/.
8mv glogin.sql lib/.

.bash_profile:

1export ORACLE_HOME=/appli/oracle/product/instantclient/19.10
2export PATH=$PATH:$ORACLE_HOME/bin
3export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

Client HOME

 1yum install compat-libstdc++-33 glibc-devel
 2su - oracle
 3mkdir -p /appli/oracle/product/19.03.0/client
 4cd /appli/oracle/product/19.03.0/client
 5unzip LINUX.X64_193000_client_home.zip
 6
 7./runInstaller -waitforcompletion -silent -noconfig -force \
 8  -responseFile /appli/oracle/product/19.03.0/client/install/response/clientsetup.rsp
 9./runInstaller -executeConfigTools \
10  -responseFile /appli/oracle/product/19.03.0/client/install/response/clientsetup.rsp -silent
11# as root: orainstRoot.sh

Uninstall

 1# as oracle
 2export ORACLE_HOME=/u01/grid/19c/
 3$ORACLE_HOME/bin/asmca -silent -deleteASM -force -dropDiskGroups
 4
 5# as root
 6export ORACLE_HOME=/u01/grid/19c
 7$ORACLE_HOME/bin/asmcmd afd_unlabel DATA001
 8$ORACLE_HOME/bin/asmcmd afd_unlabel DATA002
 9$ORACLE_HOME/bin/asmcmd afd_unlabel FRA001
10$ORACLE_HOME/bin/asmcmd afd_unlabel VOT001
11$ORACLE_HOME/bin/crsctl stop has -f
12$ORACLE_HOME/bin/acfsroot uninstall
13$ORACLE_HOME/bin/asmcmd afd_deconfigure
14
15# wipe the disks
16dd if=/dev/zero of=/dev/sdc bs=1M count=1000   # ... for each ASM device ...
17
18rm -rf /u01/app /u01/grid /etc/oraInst.loc /etc/oratab /etc/oracleafd.conf /opt/oracle/ /etc/oracle/ /var/tmp/.oracle
Sunday, October 4, 2026 Thursday, August 1, 2024