Skip to main content

Oracle Restart || Standalone database with ASM


  • Introduction: Oracle Restart is a high-availability feature of Oracle Grid Infrastructure for standalone servers that automatically restarts Oracle Database components, such as the database instance, listener, and Oracle Automatic Storage Management, after hardware or software failures, or following a server reboot. In this article, we will see how to install the Oracle Restart 19c step by step.

  • Prerequisites: Below are the minimum requirements for Linux environment.
    • CPU - 2core
    • RAM - 8GB
    • Disk space - 45GB (/u01)
    • Raw Disk storage - 50GB (For ASM disks)
    • Grid and Databse binary. Download here.
    • Must have root user or sudo access.
    • Disable the firewall.

  • Environment:
  • Hostname orares.oraeasy.com
    OS OL 7.3
    Grid/Database Version 19c (19.3)
    Grid Home /u01/app/grid/19c/grid_1
    Database Home /u01/app/oracle/19c/db_1
    ASM SID +ASM
    Database SID orcldb

  • Now let's proceed to install the Oracle Restart setup step by step:

1. First we need to install required packages for Oracle installation. All the OS and ASM configuration will be done with root user.

[root@orares ~]# yum -y install oracle-database-preinstall-19c.x86_64
Loaded plugins: langpacks, ulninfo
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-preinstall-19c.x86_64 0:1.0-3.el7 will be installed
--> Processing Dependency: compat-libcap1 for package: oracle-database-preinstall-19c-1.0-3.el7.x86_64
--> Processing Dependency: glibc-devel for package: oracle-database-preinstall-19c-1.0-3.el7.x86_64
--> Processing Dependency: ksh for package: oracle-database-preinstall-19c-1.0-3.el7.x86_64
--> Processing Dependency: libaio-devel for package: oracle-database-preinstall-19c-1.0-3.el7.x86_64
--> Processing Dependency: libstdc++-devel for package: oracle-database-preinstall-19c-1.0-3.el7.x86_64
--> Running transaction check
---> Package compat-libcap1.x86_64 0:1.10-7.el7 will be installed
---> Package glibc-devel.x86_64 0:2.17-326.0.9.el7_9.3 will be installed
--> Processing Dependency: glibc = 2.17-326.0.9.el7_9.3 for package: glibc-devel-2.17-326.0.9.el7_9.3.x86_64
--> Processing Dependency: glibc-headers = 2.17-326.0.9.el7_9.3 for package: glibc-devel-2.17-326.0.9.el7_9.3.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.17-326.0.9.el7_9.3.x86_64
---> Package ksh.x86_64 0:20120801-144.0.1.el7_9 will be installed
---> Package libaio-devel.x86_64 0:0.3.109-13.el7 will be installed
---> Package libstdc++-devel.x86_64 0:4.8.5-44.0.3.el7 will be installed
--> Processing Dependency: libstdc++(x86-64) = 4.8.5-44.0.3.el7 for package: libstdc++-devel-4.8.5-44.0.3.el7.x86_64
--> Running transaction check
---> Package glibc.x86_64 0:2.17-157.el7 will be updated
--> Processing Dependency: glibc = 2.17-157.el7 for package: glibc-common-2.17-157.el7.x86_64
---> Package glibc.x86_64 0:2.17-326.0.9.el7_9.3 will be an update
---> Package glibc-headers.x86_64 0:2.17-326.0.9.el7_9.3 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-326.0.9.el7_9.3.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.17-326.0.9.el7_9.3.x86_64
---> Package libstdc++.x86_64 0:4.8.5-11.el7 will be updated
---> Package libstdc++.x86_64 0:4.8.5-44.0.3.el7 will be an update
--> Running transaction check
---> Package glibc-common.x86_64 0:2.17-157.el7 will be updated
---> Package glibc-common.x86_64 0:2.17-326.0.9.el7_9.3 will be an update
---> Package kernel-headers.x86_64 0:3.10.0-1160.119.1.0.5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
 Package                           Arch               Version                        Repository           Size
===============================================================================================================
Installing:
 oracle-database-preinstall-19c       x86_64         1.0-3.el7                         ol7_latest        27 k
Installing for dependencies:
 compat-libcap1                       x86_64         1.10-7.el7                        ol7_latest        17 k
 glibc-devel                          x86_64         2.17-326.0.9.el7_9.3              ol7_latest       1.1 M
 glibc-headers                        x86_64         2.17-326.0.9.el7_9.3              ol7_latest       695 k
 kernel-headers                       x86_64         3.10.0-1160.119.1.0.5.el7         ol7_latest       9.1 M
 ksh                                  x86_64         20120801-144.0.1.el7_9            ol7_latest       882 k
 libaio-devel                         x86_64         0.3.109-13.el7                    ol7_latest        12 k
 libstdc++-devel                      x86_64         4.8.5-44.0.3.el7                  ol7_latest       1.5 M
Updating for dependencies:
 glibc                                x86_64         2.17-326.0.9.el7_9.3              ol7_latest       3.6 M
 glibc-common                         x86_64         2.17-326.0.9.el7_9.3              ol7_latest        12 M
 libstdc++                            x86_64         4.8.5-44.0.3.el7                  ol7_latest       306 k

Transaction Summary
======================================================
Install  1 Package  (+7 Dependent packages)
Upgrade             ( 3 Dependent packages)

Total size: 29 M
Total download size: 13 M
Downloading packages:
warning: /var/cache/yum/x86_64/7Server/ol7_latest/packages/compat-libcap1-1.10-7.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY-:-- ETA
Public key for compat-libcap1-1.10-7.el7.x86_64.rpm is not installed
(1/8): compat-libcap1-1.10-7.el7.x86_64.rpm                                             |  17 kB  00:00:00
(2/8): glibc-devel-2.17-326.0.9.el7_9.3.x86_64.rpm                                      | 1.1 MB  00:00:00
(3/8): glibc-headers-2.17-326.0.9.el7_9.3.x86_64.rpm                                    | 695 kB  00:00:00
(4/8): ksh-20120801-144.0.1.el7_9.x86_64.rpm                                            | 882 kB  00:00:00
(5/8): libaio-devel-0.3.109-13.el7.x86_64.rpm                                           |  12 kB  00:00:00
(6/8): kernel-headers-3.10.0-1160.119.1.0.5.el7.x86_64.rpm                              | 9.1 MB  00:00:02
(7/8): oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm                              |  27 kB  00:00:00
(8/8): libstdc++-devel-4.8.5-44.0.3.el7.x86_64.rpm                                      | 1.5 MB  00:00:01
---------------------------------------------------------------------------------------------------------------
Total                                                                          4.4 MB/s |  13 MB  00:00:03
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Importing GPG key 0xEC551F03:
 Userid     : "Oracle OSS group (Open Source Software group) "
 Fingerprint: 4214 4123 fecf c55b 9086 313d 72f9 7b74 ec55 1f03
 Package    : 7:oraclelinux-release-7.3-1.0.4.el7.x86_64 (@anaconda/7.3)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : glibc-common-2.17-326.0.9.el7_9.3.x86_64                     1/14
  Updating   : glibc-2.17-326.0.9.el7_9.3.x86_64                            2/14
warning: /etc/nsswitch.conf created as /etc/nsswitch.conf.rpmnew
  Updating   : libstdc++-4.8.5-44.0.3.el7.x86_64                            3/14
  Installing : libstdc++-devel-4.8.5-44.0.3.el7.x86_64                      4/14
  Installing : ksh-20120801-144.0.1.el7_9.x86_64                            5/14
  Installing : compat-libcap1-1.10-7.el7.x86_64                             6/14
  Installing : libaio-devel-0.3.109-13.el7.x86_64                           7/14
  Installing : kernel-headers-3.10.0-1160.119.1.0.5.el7.x86_64              8/14
  Installing : glibc-headers-2.17-326.0.9.el7_9.3.x86_64                    9/14
  Installing : glibc-devel-2.17-326.0.9.el7_9.3.x86_64                     10/14
  Installing : oracle-database-preinstall-19c-1.0-3.el7.x86_64             11/14
  Cleanup    : libstdc++-4.8.5-11.el7.x86_64                               12/14
  Cleanup    : glibc-common-2.17-157.el7.x86_64                            13/14
  Cleanup    : glibc-2.17-157.el7.x86_64                                   14/14
  Verifying  : kernel-headers-3.10.0-1160.119.1.0.5.el7.x86_64              1/14
  Verifying  : glibc-2.17-326.0.9.el7_9.3.x86_64                            2/14
  Verifying  : glibc-devel-2.17-326.0.9.el7_9.3.x86_64                      3/14
  Verifying  : glibc-headers-2.17-326.0.9.el7_9.3.x86_64                    4/14
  Verifying  : ksh-20120801-144.0.1.el7_9.x86_64                            5/14
  Verifying  : oracle-database-preinstall-19c-1.0-3.el7.x86_64              6/14
  Verifying  : compat-libcap1-1.10-7.el7.x86_64                             7/14
  Verifying  : glibc-common-2.17-326.0.9.el7_9.3.x86_64                     8/14
  Verifying  : libaio-devel-0.3.109-13.el7.x86_64                           9/14
  Verifying  : libstdc++-devel-4.8.5-44.0.3.el7.x86_64                     10/14
  Verifying  : libstdc++-4.8.5-44.0.3.el7.x86_64                           11/14
  Verifying  : glibc-2.17-157.el7.x86_64                                   12/14
  Verifying  : glibc-common-2.17-157.el7.x86_64                            13/14
  Verifying  : libstdc++-4.8.5-11.el7.x86_64                               14/14

Installed:
  oracle-database-preinstall-19c.x86_64 0:1.0-3.el7

Dependency Installed:
  compat-libcap1.x86_64 0:1.10-7.el7                glibc-devel.x86_64 0:2.17-326.0.9.el7_9.3        glibc-headers.x86_64 0:2.17-326.0.9.el7_9.3
  kernel-headers.x86_64 0:3.10.0-1160.119.1.0.5.el7 ksh.x86_64 0:20120801-144.0.1.el7_9              libaio-devel.x86_64 0:0.3.109-13.el7
  libstdc++-devel.x86_64 0:4.8.5-44.0.3.el7

Dependency Updated:
  glibc.x86_64 0:2.17-326.0.9.el7_9.3       glibc-common.x86_64 0:2.17-326.0.9.el7_9.3               libstdc++.x86_64 0:4.8.5-44.0.3.el7

Complete!
[root@orares ~]#

Install ASM Package.
[root@orares ~]# yum -y install oracleasm kmod-oracleasm oracleasm-support Loaded plugins: langpacks, ulninfo Resolving Dependencies --> Running transaction check ---> Package kernel-uek.x86_64 0:4.1.12-124.93.1.el7uek will be installed --> Processing Dependency: kernel-firmware = 4.1.12-124.93.1.el7uek for package: kernel-uek-4.1.12-124.93.1.el7uek.x86_64 --> Processing Dependency: linux-firmware >= 20171128-57.git17e62881.0.2 for package: kernel-uek-4.1.12-124.93.1.el7uek.x86_64 ---> Package kmod-oracleasm.x86_64 0:2.0.8-28.0.1.el7 will be installed --> Processing Dependency: kernel(__check_object_size) = 0x88db9f48 for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(d_alloc) = 0x6fd8a0cd for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(d_genocide) = 0xb7073a6a for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(d_instantiate) = 0xa1501aec for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(d_make_root) = 0x46af2b76 for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(dput) = 0xa3a1832f for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(d_rehash) = 0x4dca5a4f for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(kern_mount_data) = 0xf482d525 for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(kern_unmount) = 0xbc42731d for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel(_raw_qspin_lock_irq) = 0x3588d8ba for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 --> Processing Dependency: kernel >= 3.10.0-1133.el7 for package: kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 ---> Package oracleasm-support.x86_64 0:2.1.11-2.el7 will be installed --> Running transaction check ---> Package kernel.x86_64 0:3.10.0-1160.119.1.0.5.el7 will be installed --> Processing Dependency: dracut >= 033-502 for package: kernel-3.10.0-1160.119.1.0.5.el7.x86_64 ---> Package kernel-uek-firmware.noarch 0:4.1.12-124.93.1.el7uek will be installed ---> Package linux-firmware.noarch 0:20160909-50.gitc883a6b6.0.1.el7 will be updated ---> Package linux-firmware.noarch 999:20241003-999.35.git95bfe086.el7 will be an update --> Running transaction check ---> Package dracut.x86_64 0:033-463.0.1.el7 will be updated --> Processing Dependency: dracut = 033-463.0.1.el7 for package: dracut-config-rescue-033-463.0.1.el7.x86_64 --> Processing Dependency: dracut = 033-463.0.1.el7 for package: dracut-network-033-463.0.1.el7.x86_64 ---> Package dracut.x86_64 0:033-572.0.13.el7 will be an update --> Running transaction check ---> Package dracut-config-rescue.x86_64 0:033-463.0.1.el7 will be updated ---> Package dracut-config-rescue.x86_64 0:033-572.0.13.el7 will be an update ---> Package dracut-network.x86_64 0:033-463.0.1.el7 will be updated ---> Package dracut-network.x86_64 0:033-572.0.13.el7 will be an update --> Processing Conflict: kernel-3.10.0-1160.119.1.0.5.el7.x86_64 conflicts selinux-policy-targeted < 3.13.1-201 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package selinux-policy-targeted.noarch 0:3.13.1-102.0.2.el7 will be updated ---> Package selinux-policy-targeted.noarch 0:3.13.1-268.0.25.el7_9.2 will be an update --> Processing Dependency: selinux-policy = 3.13.1-268.0.25.el7_9.2 for package: selinux-policy-targeted-3.13.1-268.0.25.el7_9.2.noarch --> Processing Dependency: selinux-policy = 3.13.1-268.0.25.el7_9.2 for package: selinux-policy-targeted-3.13.1-268.0.25.el7_9.2.noarch --> Processing Dependency: policycoreutils >= 2.5-24 for package: selinux-policy-targeted-3.13.1-268.0.25.el7_9.2.noarch --> Running transaction check ---> Package policycoreutils.x86_64 0:2.5-8.0.1.el7 will be updated --> Processing Dependency: policycoreutils = 2.5-8.0.1.el7 for package: policycoreutils-python-2.5-8.0.1.el7.x86_64 ---> Package policycoreutils.x86_64 0:2.5-34.0.1.el7 will be an update --> Processing Dependency: libselinux-utils >= 2.5-14 for package: policycoreutils-2.5-34.0.1.el7.x86_64 --> Processing Dependency: libsemanage >= 2.5-14 for package: policycoreutils-2.5-34.0.1.el7.x86_64 --> Processing Dependency: libsepol >= 2.5-10 for package: policycoreutils-2.5-34.0.1.el7.x86_64 ---> Package selinux-policy.noarch 0:3.13.1-102.0.2.el7 will be updated ---> Package selinux-policy.noarch 0:3.13.1-268.0.25.el7_9.2 will be an update --> Running transaction check ---> Package libselinux-utils.x86_64 0:2.5-6.el7 will be updated ---> Package libselinux-utils.x86_64 0:2.5-15.el7 will be an update --> Processing Dependency: libselinux(x86-64) = 2.5-15.el7 for package: libselinux-utils-2.5-15.el7.x86_64 ---> Package libsemanage.x86_64 0:2.5-4.el7 will be updated --> Processing Dependency: libsemanage = 2.5-4.el7 for package: libsemanage-python-2.5-4.el7.x86_64 ---> Package libsemanage.x86_64 0:2.5-14.el7 will be an update ---> Package libsepol.x86_64 0:2.5-6.el7 will be updated ---> Package libsepol.x86_64 0:2.5-10.el7 will be an update ---> Package policycoreutils-python.x86_64 0:2.5-8.0.1.el7 will be updated ---> Package policycoreutils-python.x86_64 0:2.5-34.0.1.el7 will be an update --> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-34.0.1.el7.x86_64 --> Running transaction check ---> Package libselinux.x86_64 0:2.5-6.el7 will be updated --> Processing Dependency: libselinux(x86-64) = 2.5-6.el7 for package: libselinux-python-2.5-6.el7.x86_64 ---> Package libselinux.x86_64 0:2.5-15.el7 will be an update ---> Package libsemanage-python.x86_64 0:2.5-4.el7 will be updated ---> Package libsemanage-python.x86_64 0:2.5-14.el7 will be an update ---> Package setools-libs.x86_64 0:3.3.8-1.1.el7 will be updated ---> Package setools-libs.x86_64 0:3.3.8-4.el7 will be an update --> Running transaction check ---> Package libselinux-python.x86_64 0:2.5-6.el7 will be updated ---> Package libselinux-python.x86_64 0:2.5-15.el7 will be an update --> Processing Conflict: kernel-3.10.0-1160.119.1.0.5.el7.x86_64 conflicts kexec-tools < 2.0.14-3 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package kexec-tools.x86_64 0:2.0.7-50.0.1.el7 will be updated ---> Package kexec-tools.x86_64 0:2.0.15-51.0.5.el7_9.3 will be an update --> Finished Dependency Resolution Dependencies Resolved ===================================================================================================== Package Arch Version Repository Size ===================================================================================================== Installing: kernel x86_64 3.10.0-1160.119.1.0.5.el7 ol7_latest 52 M kernel-uek x86_64 4.1.12-124.93.1.el7uek ol7_UEKR4 45 M kernel-uek-firmware noarch 4.1.12-124.93.1.el7uek ol7_UEKR4 2.7 M kmod-oracleasm x86_64 2.0.8-28.0.1.el7 ol7_latest 298 k oracleasm-support x86_64 2.1.11-2.el7 ol7_latest 85 k Updating: kexec-tools x86_64 2.0.15-51.0.5.el7_9.3 ol7_latest 356 k selinux-policy-targeted noarch 3.13.1-268.0.25.el7_9.2 ol7_latest 7.2 M Updating for dependencies: dracut x86_64 033-572.0.13.el7 ol7_latest 331 k dracut-config-rescue x86_64 033-572.0.13.el7 ol7_latest 63 k dracut-network x86_64 033-572.0.13.el7 ol7_latest 107 k libselinux x86_64 2.5-15.el7 ol7_latest 162 k libselinux-python x86_64 2.5-15.el7 ol7_latest 235 k libselinux-utils x86_64 2.5-15.el7 ol7_latest 151 k libsemanage x86_64 2.5-14.el7 ol7_latest 150 k libsemanage-python x86_64 2.5-14.el7 ol7_latest 112 k libsepol x86_64 2.5-10.el7 ol7_latest 297 k linux-firmware noarch 999:20241003-999.35.git95bfe086.el7 ol7_latest 382 M policycoreutils x86_64 2.5-34.0.1.el7 ol7_latest 916 k policycoreutils-python x86_64 2.5-34.0.1.el7 ol7_latest 457 k selinux-policy noarch 3.13.1-268.0.25.el7_9.2 ol7_latest 500 k setools-libs x86_64 3.3.8-4.el7 ol7_latest 620 k Transaction Summary ============================================================== Install 5 Packages Upgrade 2 Packages (+14 Dependent packages) Total size: 493 M Total download size: 383 k Downloading packages: (1/2): oracleasm-support-2.1.11-2.el7.x86_64.rpm | 85 kB 00:00:00 (2/2): kmod-oracleasm-2.0.8-28.0.1.el7.x86_64.rpm | 298 kB 00:00:01 -------------------------------------------------------------------------------------- Total 240 kB/s | 383 kB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : libsepol-2.5-10.el7.x86_64 1/37 Updating : libselinux-2.5-15.el7.x86_64 2/37 Updating : dracut-033-572.0.13.el7.x86_64 3/37 Updating : libsemanage-2.5-14.el7.x86_64 4/37 Updating : 999:linux-firmware-20241003-999.35.git95bfe086.el7.noarch 5/37 Installing : kernel-3.10.0-1160.119.1.0.5.el7.x86_64 6/37 Updating : libsemanage-python-2.5-14.el7.x86_64 7/37 Updating : dracut-network-033-572.0.13.el7.x86_64 8/37 Updating : libselinux-utils-2.5-15.el7.x86_64 9/37 Updating : policycoreutils-2.5-34.0.1.el7.x86_64 10/37 Updating : selinux-policy-3.13.1-268.0.25.el7_9.2.noarch 11/37 Updating : setools-libs-3.3.8-4.el7.x86_64 12/37 Updating : libselinux-python-2.5-15.el7.x86_64 13/37 Installing : kernel-uek-firmware-4.1.12-124.93.1.el7uek.noarch 14/37 Installing : kernel-uek-4.1.12-124.93.1.el7uek.x86_64 15/37 Updating : policycoreutils-python-2.5-34.0.1.el7.x86_64 16/37 Updating : selinux-policy-targeted-3.13.1-268.0.25.el7_9.2.noarch 17/37 Updating : kexec-tools-2.0.15-51.0.5.el7_9.3.x86_64 18/37 Installing : kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 19/37 Updating : dracut-config-rescue-033-572.0.13.el7.x86_64 20/37 Installing : oracleasm-support-2.1.11-2.el7.x86_64 21/37 Note: Forwarding request to 'systemctl enable oracleasm.service'. Created symlink from /etc/systemd/system/multi-user.target.wants/oracleasm.service to /usr/lib/systemd/system/oracleasm.service. Cleanup : selinux-policy-targeted-3.13.1-102.0.2.el7.noarch 22/37 Cleanup : selinux-policy-3.13.1-102.0.2.el7.noarch 23/37 Cleanup : dracut-config-rescue-033-463.0.1.el7.x86_64 24/37 Cleanup : linux-firmware-20160909-50.gitc883a6b6.0.1.el7.noarch 25/37 Cleanup : policycoreutils-python-2.5-8.0.1.el7.x86_64 26/37 Cleanup : policycoreutils-2.5-8.0.1.el7.x86_64 27/37 Cleanup : libselinux-utils-2.5-6.el7.x86_64 28/37 Cleanup : setools-libs-3.3.8-1.1.el7.x86_64 29/37 Cleanup : kexec-tools-2.0.7-50.0.1.el7.x86_64 30/37 Cleanup : dracut-network-033-463.0.1.el7.x86_64 31/37 Cleanup : libselinux-python-2.5-6.el7.x86_64 32/37 Cleanup : libsemanage-python-2.5-4.el7.x86_64 33/37 Cleanup : libsemanage-2.5-4.el7.x86_64 34/37 Cleanup : libselinux-2.5-6.el7.x86_64 35/37 Cleanup : libsepol-2.5-6.el7.x86_64 36/37 Cleanup : dracut-033-463.0.1.el7.x86_64 37/37 Verifying : 999:linux-firmware-20241003-999.35.git95bfe086.el7.noarch 1/37 Verifying : libselinux-2.5-15.el7.x86_64 2/37 Verifying : dracut-033-572.0.13.el7.x86_64 3/37 Verifying : policycoreutils-2.5-34.0.1.el7.x86_64 4/37 Verifying : policycoreutils-python-2.5-34.0.1.el7.x86_64 5/37 Verifying : selinux-policy-3.13.1-268.0.25.el7_9.2.noarch 6/37 Verifying : dracut-network-033-572.0.13.el7.x86_64 7/37 Verifying : libselinux-utils-2.5-15.el7.x86_64 8/37 Verifying : kernel-3.10.0-1160.119.1.0.5.el7.x86_64 9/37 Verifying : oracleasm-support-2.1.11-2.el7.x86_64 10/37 Verifying : setools-libs-3.3.8-4.el7.x86_64 11/37 Verifying : libsemanage-python-2.5-14.el7.x86_64 12/37 Verifying : libsemanage-2.5-14.el7.x86_64 13/37 Verifying : libsepol-2.5-10.el7.x86_64 14/37 Verifying : libselinux-python-2.5-15.el7.x86_64 15/37 Verifying : dracut-config-rescue-033-572.0.13.el7.x86_64 16/37 Verifying : kernel-uek-firmware-4.1.12-124.93.1.el7uek.noarch 17/37 Verifying : kernel-uek-4.1.12-124.93.1.el7uek.x86_64 18/37 Verifying : selinux-policy-targeted-3.13.1-268.0.25.el7_9.2.noarch 19/37 Verifying : kmod-oracleasm-2.0.8-28.0.1.el7.x86_64 20/37 Verifying : kexec-tools-2.0.15-51.0.5.el7_9.3.x86_64 21/37 Verifying : libsepol-2.5-6.el7.x86_64 22/37 Verifying : selinux-policy-3.13.1-102.0.2.el7.noarch 23/37 Verifying : libselinux-python-2.5-6.el7.x86_64 24/37 Verifying : libselinux-utils-2.5-6.el7.x86_64 25/37 Verifying : libsemanage-python-2.5-4.el7.x86_64 26/37 Verifying : kexec-tools-2.0.7-50.0.1.el7.x86_64 27/37 Verifying : dracut-network-033-463.0.1.el7.x86_64 28/37 Verifying : dracut-033-463.0.1.el7.x86_64 29/37 Verifying : dracut-config-rescue-033-463.0.1.el7.x86_64 30/37 Verifying : selinux-policy-targeted-3.13.1-102.0.2.el7.noarch 31/37 Verifying : policycoreutils-python-2.5-8.0.1.el7.x86_64 32/37 Verifying : libselinux-2.5-6.el7.x86_64 33/37 Verifying : policycoreutils-2.5-8.0.1.el7.x86_64 34/37 Verifying : libsemanage-2.5-4.el7.x86_64 35/37 Verifying : linux-firmware-20160909-50.gitc883a6b6.0.1.el7.noarch 36/37 Verifying : setools-libs-3.3.8-1.1.el7.x86_64 37/37 Installed: kernel.x86_64 0:3.10.0-1160.119.1.0.5.el7 kernel-uek.x86_64 0:4.1.12-124.93.1.el7uek kernel-uek-firmware.noarch 0:4.1.12-124.93.1.el7uek kmod-oracleasm.x86_64 0:2.0.8-28.0.1.el7 oracleasm-support.x86_64 0:2.1.11-2.el7 Updated: kexec-tools.x86_64 0:2.0.15-51.0.5.el7_9.3 selinux-policy-targeted.noarch 0:3.13.1-268.0.25.el7_9.2 Dependency Updated: dracut.x86_64 0:033-572.0.13.el7 dracut-config-rescue.x86_64 0:033-572.0.13.el7 dracut-network.x86_64 0:033-572.0.13.el7 libselinux.x86_64 0:2.5-15.el7 libselinux-python.x86_64 0:2.5-15.el7 libselinux-utils.x86_64 0:2.5-15.el7 libsemanage.x86_64 0:2.5-14.el7 libsemanage-python.x86_64 0:2.5-14.el7 libsepol.x86_64 0:2.5-10.el7 linux-firmware.noarch 999:20241003-999.35.git95bfe086.el7 policycoreutils.x86_64 0:2.5-34.0.1.el7 policycoreutils-python.x86_64 0:2.5-34.0.1.el7 selinux-policy.noarch 0:3.13.1-268.0.25.el7_9.2 setools-libs.x86_64 0:3.3.8-4.el7 Complete!
2. Now configure the additional groups for "Oracle" user and change its password.

[root@orares ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
[root@orares ~]#
[root@orares ~]# groupadd -g 54327 asmdba
[root@orares ~]# groupadd -g 54328 asmoper
[root@orares ~]# groupadd -g 54329 asmadmin
[root@orares ~]#
[root@orares ~]# usermod -a -G asmadmin,asmdba,asmoper oracle
[root@orares ~]#
[root@orares ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba),54327(asmdba),54328(asmoper),54329(asmadmin)
[root@orares ~]#
[root@orares ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

[root@orares ~]#

3. Now create directories for Grid & Database home.

[root@orares ~]# mkdir -p /u01/app/grid/19c/grid_1
[root@orares ~]# mkdir -p /u01/app/oracle/19c/db_1
[root@orares ~]# mkdir -p /u01/app/oraInventory
[root@orares ~]# chown -R oracle:oinstall /u01
[root@orares ~]# chmod -R 775 /u01

4. Now configure SELINUX & Disable Firewall.

[root@orares ~]#  cat /etc/selinux/config | grep SELINUX
# SELINUX= can take one of these three values:
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
SELINUXTYPE=targeted

[root@orares ~]# vi /etc/selinux/config
[root@orares ~]# cat /etc/selinux/config | grep SELINUX
# SELINUX= can take one of these three values:
SELINUX=permissive
# SELINUXTYPE= can take one of three two values:
SELINUXTYPE=targeted
[root@orares ~]#

[root@orares ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2025-12-22 23:54:13 IST; 15min ago
     Docs: man:firewalld(1)
 Main PID: 788 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─788 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Dec 22 23:54:07 orares.oraeasy.com systemd[1]: Starting firewalld - dynamic firewall daemon...
Dec 22 23:54:13 orares.oraeasy.com systemd[1]: Started firewalld - dynamic firewall daemon.
Dec 22 23:54:14 orares.oraeasy.com firewalld[788]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It wil... it now.
Hint: Some lines were ellipsized, use -l to show in full.
[root@orares ~]#
[root@orares ~]# systemctl stop firewalld
[root@orares ~]#
[root@orares ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@orares ~]#
[root@orares ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Dec 22 23:54:07 orares.oraeasy.com systemd[1]: Starting firewalld - dynamic firewall daemon...
Dec 22 23:54:13 orares.oraeasy.com systemd[1]: Started firewalld - dynamic firewall daemon.
Dec 22 23:54:14 orares.oraeasy.com firewalld[788]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It wil... it now.
Dec 23 00:09:48 orares.oraeasy.com systemd[1]: Stopping firewalld - dynamic firewall daemon...
Dec 23 00:09:50 orares.oraeasy.com systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[root@orares ~]#
5. Now configure the oracleasm.

[root@orares ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
[root@orares ~]#
[root@orares ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting  without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
[root@orares ~]#

6. Now we need to add a raw disk to machine.

View the current attached hard disk.

[root@orares ~]# fdisk -l
Disk /dev/sda: 75.2 GB, 75161927680 bytes, 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bf650

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    27265023    12582912   83  Linux
/dev/sda3        27265024    37750783     5242880   82  Linux swap / Solaris
/dev/sda4        37750784   146800639    54524928    5  Extended
/dev/sda5        37752832    46141439     4194304   83  Linux
/dev/sda6        46143488   146800639    50328576   83  Linux
[root@orares ~]#

Now shutdown the machine and follow below steps:


Select the machine and click on Tools.

In Hard disk section, click on Create.

Select the Hard disk type: VDI. Click Next.

Select Pre-Allocate, as it will be used as ASM storage. Click Next

Select name for disk, its location and size. Then click Finish.

Monitor the Progess.

Once completed, Hard disk can be viewed.

Now select the machine and then click on Storage.

In controller SATA section, click on Add Hard disk.

Select the disk name and click Choose.

Last click Ok.

Now in Storage, you can see the added hard disk.


Now start the machine and view the new attached hard disk.

[root@orares ~]# fdisk -l
Disk /dev/sda: 75.2 GB, 75161927680 bytes, 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bf650

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    27265023    12582912   83  Linux
/dev/sda3        27265024    37750783     5242880   82  Linux swap / Solaris
/dev/sda4        37750784   146800639    54524928    5  Extended
/dev/sda5        37752832    46141439     4194304   83  Linux
/dev/sda6        46143488   146800639    50328576   83  Linux

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@orares ~]#

7. Now need to make the partition for new hard disk.

[root@orares ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xea9db3d7.

Command (m for help): n      ==> Press "n" for new partition.
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):   ==> Press Enter for default.
Using default response p
Partition number (1-4, default 1):  ==> Press Enter for default.
First sector (2048-104857599, default 2048):
Using default value 2048

==> Provide size.
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +25G 
Partition 1 of type Linux and of size 25 GiB is set

==> Do same for next two partition.
Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (52430848-104857599, default 52430848):
Using default value 52430848
Last sector, +sectors or +size{K,M,G} (52430848-104857599, default 104857599): +15G
Partition 2 of type Linux and of size 15 GiB is set

Command (m for help):
Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p):
Using default response p
Partition number (3,4, default 3):
First sector (83888128-104857599, default 83888128):
Using default value 83888128
Last sector, +sectors or +size{K,M,G} (83888128-104857599, default 104857599):
Using default value 104857599
Partition 3 of type Linux and of size 10 GiB is set

Command (m for help): w  ==> Press "w" to save the changes.
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@orares ~]#

==> View the partitions.
[root@orares ~]# fdisk -l

Disk /dev/sda: 75.2 GB, 75161927680 bytes, 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bf650

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    27265023    12582912   83  Linux
/dev/sda3        27265024    37750783     5242880   82  Linux swap / Solaris
/dev/sda4        37750784   146800639    54524928    5  Extended
/dev/sda5        37752832    46141439     4194304   83  Linux
/dev/sda6        46143488   146800639    50328576   83  Linux

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xea9db3d7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    52430847    26214400   83  Linux
/dev/sdb2        52430848    83888127    15728640   83  Linux
/dev/sdb3        83888128   104857599    10484736   83  Linux
[root@orares ~]#
[root@orares ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xea9db3d7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    52430847    26214400   83  Linux
/dev/sdb2        52430848    83888127    15728640   83  Linux
/dev/sdb3        83888128   104857599    10484736   83  Linux


8. Now create ASM disks.

[root@orares ~]# oracleasm createdisk DATA1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@orares ~]#
[root@orares ~]# oracleasm createdisk FRA1 /dev/sdb2
Writing disk header: done
Instantiating disk: done
[root@orares ~]#
[root@orares ~]# oracleasm createdisk CRS1 /dev/sdb3
Writing disk header: done
Instantiating disk: done
[root@orares ~]#
[root@orares ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@orares ~]#
[root@orares ~]# oracleasm listdisks
CRS1
DATA1
FRA1
[root@orares ~]#

9. Now login with oracle user. Place the Grid software and unzip it.

[oracle@orares software]$ pwd
/u01/software
[oracle@orares software]$
[oracle@orares software]$ ls -lrth
total 2.7G
-rw-r--r--. 1 oracle oinstall 2.7G Dec 23 02:05 LINUX.X64_193000_grid_home.zip
[oracle@orares software]$
[oracle@orares software]$ unzip LINUX.X64_193000_grid_home.zip -d /u01/app/grid/19c/grid_1

10. Now create an environment file for ASM & Grid Home.

[oracle@orares ~]$ cat .grid_env

# Environment variables for ASM - Grid Home
ORACLE_SID=+ASM; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/grid/19c/grid_1; export ORACLE_HOME
JAVA_HOME=/usr/bin/java; export JAVA_HOME
PATH=$ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH:.
export PATH

[oracle@orares ~]$
[oracle@orares ~]$ chmod 775 .grid_env
[oracle@orares ~]$ ls -larth .grid_env 
-rwxrwxr-x. 1 oracle oinstall 286 Dec 23 20:07 .grid_env
[oracle@orares ~]$
[oracle@orares ~]$ . .grid_env
[oracle@orares ~]$ env|grep ORA
ORACLE_SID=+ASM
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/grid/19c/grid_1

11. Now start the Grid installation.

[oracle@orares ~]$ cd /u01/app/grid/19c/grid_1
[oracle@orares grid_1]$
[oracle@orares grid_1]$ ls
addnode     crs     deinstall    evm           install        jdk   network  ord   perl     racg      root.sh.old     slax      tomcat        wlm
assistants  css     demo         gpnp          instantclient  jlib  nls      ords  plsql    rdbms     root.sh.old.1   sqlpatch  ucp           wwg
bin         cv      diagnostics  gridSetup.sh  inventory      ldap  OPatch   oss   precomp  relnotes  rootupgrade.sh  sqlplus   usm           xag
cha         dbjava  dmu          has           javavm         lib   opmn     oui   QOpatch  rhp       runcluvfy.sh    srvm      utl           xdk
clone       dbs     env.ora      hs            jdbc           md    oracore  owm   qos      root.sh   sdk             suptools  welcome.html
[oracle@orares grid_1]$

[oracle@orares grid_1]$ ./gridSetup.sh
Launching Oracle Grid Infrastructure Setup Wizard...

The response file for this session can be found at:
 /u01/app/grid/19c/grid_1/install/response/grid_2025-12-23_09-13-25PM.rsp

You can find the log of this install session at:
 /tmp/GridSetupActions2025-12-23_09-13-25PM/gridSetupActions2025-12-23_09-13-25PM.log
You can find the log of this install session at:
 /u01/app/oraInventory/logs/UpdateNodeList2025-12-23_09-13-25PM.log
Moved the install session logs to:
 /u01/app/oraInventory/logs/GridSetupActions2025-12-23_09-13-25PM
[oracle@orares grid_1]$

Now GUI installer window will open. Follow the below steps.

Select Oracle Restart and click Next.

Provide the diskgroup name as CRS, select Redundancy as External. Then click on Change Discovery Path

Provide the ASM disk path.

Select the disk name for CRS. Click Next.
(Note: We will create other diskgroups later.)

Provide the password of SYS user for ASM instance and click Next.

Click Next.

Provide the OS user group and click Next.

Provide Grid base and click Next.

Provide Inventrory location and click Next.

Will execute script manually so click Next.

It will check for Prerequisities.

Click on Fix and Check.

Run the provided script with root user. Then click OK.


[root@orares ~]# /tmp/GridSetupActions2025-12-23_09-13-25PM/CVU_19.0.0.0.0_oracle/runfixup.sh
All Fix-up operations were completed successfully.
[root@orares ~]#

Check Ignore All and click Next.

Review and click Install.

Monitor the progress.

Run the provided scripts with root user. Then click OK.


[root@orares ~]# /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@orares ~]#

[root@orares ~]# /u01/app/grid/19c/grid_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/grid/19c/grid_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.
Using configuration parameter file: /u01/app/grid/19c/grid_1/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/orares/crsconfig/roothas_2025-12-23_09-30-57PM.log
2025/12/23 21:31:09 CLSRSC-363: User ignored prerequisites during installation
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node orares successfully pinned.
2025/12/23 21:31:22 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'

orares     2025/12/23 21:34:36     /u01/app/grid/crsdata/orares/olr/backup_20251223_213436.olr     724960844
2025/12/23 21:34:37 CLSRSC-327: Successfully configured Oracle Restart for a standalone server
[root@orares ~]#

Monitor the progress.

Installation has been completed. Click Close.

12. Now verify the Grid installation.

[oracle@orares grid_1]$ ps -ef|grep pmon
oracle   16922     1  0 21:40 ?        00:00:00 asm_pmon_+ASM
oracle   26980  3614  0 21:56 pts/1    00:00:00 grep --color=auto pmon
[oracle@orares grid_1]$
[oracle@orares grid_1]$ ps -ef|grep tns
root        22     2  0 19:45 ?        00:00:00 [netns]
oracle   10663     1  0 21:38 ?        00:00:00 /u01/app/grid/19c/grid_1/bin/tnslsnr LISTENER -no_crs_notify -inherit
oracle   26994  3614  0 21:56 pts/1    00:00:00 grep --color=auto tns
[oracle@orares grid_1]$ cd bin
[oracle@orares bin]$
[oracle@orares bin]$ ./crsctl check has
CRS-4638: Oracle High Availability Services is online
[oracle@orares bin]$
[oracle@orares bin]$ ./crsctl query has releaseversion
Oracle High Availability Services release version on the local node is [19.0.0.0.0]
[oracle@orares bin]$ ./crsctl check css
CRS-4529: Cluster Synchronization Services is online
[oracle@orares bin]$
13. Now let's create the remaining ASM diskgroups using ASMCA.

[oracle@orares grid_1]$ asmca

Now GUI window will open. Follow the below steps.

Click on Disk Groups.

Click on Create from bottom section.

Provide the Disk Group name, its path and other options. Click OK.

DATA Disk Group has been created. Click on Create again to create FRA Disk Group.

Provide the details and click OK.

Now required Disk Groups have been created.
14. Now let's verify the Disk Groups via SQLPLUS.

[oracle@orares grid_1]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Dec 23 22:27:20 2025
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 NAME,TOTAL_MB/(1024) TOTAL_GB,FREE_MB/1024 FREE_GB,(TOTAL_MB-FREE_MB)/1024 USED_GB,(FREE_MB/TOTAL_MB)*100 FREE_PER 
     from v$asm_diskgroup;

NAME                             TOTAL_GB    FREE_GB    USED_GB   FREE_PER
------------------------------ ---------- ---------- ---------- ----------
CRS                            9.99609375  9.8984375  .09765625 99.0230559
DATA                                   25 24.9140625   .0859375   99.65625
FRA                                    15 14.9140625   .0859375 99.4270833


15. Now we will install the Database Home software. So first unzip the software.

[oracle@orares software]$ pwd
/u01/software
[oracle@orares software]$ ls -lrth
total 5.6G
-rw-r--r--. 1 oracle oinstall 2.9G Dec 23 02:03 LINUX.X64_193000_db_home.zip
-rw-r--r--. 1 oracle oinstall 2.7G Dec 23 02:05 LINUX.X64_193000_grid_home.zip
[oracle@orares software]$ unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/19c/db_1
[oracle@orares software]$
16. Now create an environment file for Database & its Home.

[oracle@orares ~]$ cat .db_env

# Environment variables for Database - DB Home
ORACLE_SID=orcldb; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/19c/db_1; export ORACLE_HOME
JAVA_HOME=/usr/bin/java; export JAVA_HOME
PATH=$ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH:.
export PATH
[oracle@orares ~]$ . .db_env
[oracle@orares ~]$  env|grep ORA
ORACLE_SID=orcldb
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/19c/db_1
[oracle@orares ~]$

17. Now start the Database Home installation.

[oracle@orares ~]$ cd /u01/app/oracle/19c/db_1
[oracle@orares db_1]$ ls
addnode     crs   dbjava       dmu      hs             jdbc  md       olap     ords  plsql    rdbms          runInstaller   sqlj      ucp
apex        css   dbs          drdaas   install        jdk   mgw      OPatch   oss   precomp  relnotes       schagent.conf  sqlpatch  usm
assistants  ctx   deinstall    dv       instantclient  jlib  network  opmn     oui   QOpatch  root.sh        sdk            sqlplus   utl
bin         cv    demo         env.ora  inventory      ldap  nls      oracore  owm   R        root.sh.old    slax           srvm      wwg
clone       data  diagnostics  has      javavm         lib   odbc     ord      perl  racg     root.sh.old.1  sqldeveloper   suptools  xdk
[oracle@orares db_1]$ ./runInstaller
Launching Oracle Database Setup Wizard...

The response file for this session can be found at:
 /u01/app/oracle/19c/db_1/install/response/db_2025-12-23_10-36-19PM.rsp

You can find the log of this install session at:
 /u01/app/oraInventory/logs/InstallActions2025-12-23_10-36-19PM/installActions2025-12-23_10-36-19PM.log
[oracle@orares db_1]$

Now GUI installer window will open. Follow the below steps.

Select Software only and click Next.

Select Single Instance and click Next.

Select the Edition and click Next.

Provide Oracle Base and click Next.

Provide OS group and click Next.

We will run root script manually, so click Next.

Check on Ignore All and click Next.

Verify the details and click Install.

Monitor the progress.

Run the script with root user and click OK.

[root@orares ~]# /u01/app/oracle/19c/db_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/19c/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

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/19c/db_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@orares ~]#

Now installation has been completed. Click Close.

18. Now let's create the database with DBCA.

[oracle@orares db_1]$ dbca


Select Create Database and click Next.

Select Advanced and click Next.

Select General Purpose and click Next.

Provide Database, SID and PDB name. Click Next.

Select Storage option as ASM. Click Next.

Provide FRA options and click Next.

Check Listener and click Next.

Provide SGA & PGA value. Click Next.

Click Next.

Provide sys/system user password. Click Next.

Click Next.

Review the details and click Finish.

Monitor the progress.


Now Database has been created. Click Close.

19. Now verify the database.

[oracle@orares ~]$ ps -ef|grep pmon
oracle    5757     1  0 Dec23 ?        00:00:00 ora_pmon_orcldb
oracle   16922     1  0 Dec23 ?        00:00:00 asm_pmon_+ASM
oracle   20747  3614  0 00:32 pts/1    00:00:00 grep --color=auto pmon
[oracle@orares ~]$
[oracle@orares ~]$ ps -ef|grep tns
root        22     2  0 Dec23 ?        00:00:00 [netns]
oracle   10663     1  0 Dec23 ?        00:00:00 /u01/app/grid/19c/grid_1/bin/tnslsnr LISTENER -no_crs_notify -inherit
oracle   20761  3614  0 00:32 pts/1    00:00:00 grep --color=auto tns
[oracle@orares ~]$
[oracle@orares ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 24-DEC-2025 00:32:30

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                23-DEC-2025 21:38:01
Uptime                    0 days 2 hr. 54 min. 29 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/grid/19c/grid_1/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/orares/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orares.oraeasy.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "+ASM_CRS" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "+ASM_FRA" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "46a3632ba42417ede0651fe43e14032c" has 1 instance(s).
  Instance "orcldb", status READY, has 1 handler(s) for this service...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).
  Instance "orcldb", status READY, has 1 handler(s) for this service...
Service "orcldb" has 1 instance(s).
  Instance "orcldb", status READY, has 1 handler(s) for this service...
Service "orcldbXDB" has 1 instance(s).
  Instance "orcldb", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "orcldb", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@orares ~]$

[oracle@orares ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 24 00:29:17 2025
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>
SQL> def
DEFINE _DATE           = "24-DEC-25" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orcldb" (CHAR)
DEFINE _USER           = "SYS" (CHAR)
DEFINE _PRIVILEGE      = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1903000000" (CHAR)
DEFINE _EDITOR         = "vi" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0" (CHAR)
DEFINE _O_RELEASE      = "1903000000" (CHAR)
SQL>
SQL> select name,open_mode,cdb,version,status from v$database, v$instance;

NAME      OPEN_MODE            CDB VERSION           STATUS
--------- -------------------- --- ----------------- ------------
ORCLDB    READ WRITE           YES 19.0.0.0.0        OPEN

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
SQL>
20. Now check the Oracle restart configuration using srvctl.

[oracle@orares ~]$ srvctl config
orcldb
[oracle@orares ~]$
[oracle@orares ~]$ srvctl status database -d orcldb
Database is running.
[oracle@orares ~]$ srvctl config database -d orcldb
Database unique name: orcldb
Database name: orcldb
Oracle home: /u01/app/oracle/19c/db_1
Oracle user: oracle
Spfile: +DATA/ORCLDB/PARAMETERFILE/spfile.269.1220657139
Password file:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups: DATA,FRA
Services:
OSDBA group:
OSOPER group:
Database instance: orcldb
21. Now we need to ensure that CRS service for DB instances set for auto restart whenever server reboots.

Check current setting.
[root@orares ~]# ps -ef|grep d.bin root 1010 946 0 15:20 pts/0 00:00:00 grep --color=auto d.bin oracle 1981 1 8 13:20 ? 00:09:53 /u01/app/grid/19c/grid_1/bin/ohasd.bin reboot oracle 2271 1 0 13:20 ? 00:00:20 /u01/app/grid/19c/grid_1/bin/evmd.bin oracle 2369 1 0 13:20 ? 00:00:24 /u01/app/grid/19c/grid_1/bin/ocssd.bin [root@orares ~]# [root@orares ~]# cd /u01/app/grid/19c/grid_1/bin [root@orares bin]# ./crsctl stat res ora.orcldb.db -p | grep AUTO_START AUTO_START=restore [root@orares bin]# ./crsctl stat res ora.DATA.dg -p | grep AUTO_START AUTO_START=never [root@orares bin]# ./crsctl stat res ora.FRA.dg -p | grep AUTO_START AUTO_START=never [root@orares bin]# As its not set up for Auto start, so let's modify that.
[root@orares bin]# ./crsctl modify resource "ora.DATA.dg" -attr "AUTO_START=always" CRS-4995: The command 'Modify resource' is invalid in crsctl. Use srvctl for this command. [root@orares bin]#x [root@orares bin]# ./crsctl modify resource "ora.DATA.dg" -attr "AUTO_START=always" -unsupported [root@orares bin]# ./crsctl modify resource "ora.FRA.dg" -attr "AUTO_START=always" -unsupported [root@orares bin]# ./crsctl modify resource "ora.orcldb.db" -attr "AUTO_START=always" -unsupported Now verify.
[root@orares bin]# ./crsctl stat res ora.orcldb.db -p | grep AUTO_START AUTO_START=always [root@orares bin]# ./crsctl stat res ora.DATA.dg -p | grep AUTO_START AUTO_START=always [root@orares bin]# ./crsctl stat res ora.FRA.dg -p | grep AUTO_START AUTO_START=always
22. Now reboot the server and verify the DB services.

[oracle@orares bin]$ su -
Password:
Last login: Thu Dec 25 13:10:43 IST 2025 on pts/0
[root@orares ~]#

[root@orares bin]# init 6

Remote side unexpectedly closed network connection
─────────────────────────────────────────────────────────────────────────────────────
Session stopped
    - Press  to exit tab
    - Press R to restart session
    - Press S to save terminal output to file
    ┌──────────────────────────────────────────────────────────────────────┐
    │                 • MobaXterm Personal Edition v23.2 •                 │
    │               (SSH client, X server and network tools)               │
    │                                                                      │
    │ ⮞ SSH session to oracle@192.168.1.45                                 │
    │   • Direct SSH      :  ✓                                             │
    │   • SSH compression :  ✓                                             │
    │   • SSH-browser     :  ✓                                             │
    │   • X11-forwarding  :  ✓  (remote display is forwarded through SSH)  │
    │                                                                      │
    │ ⮞ For more info, ctrl+click on help or visit our website.            │
    └──────────────────────────────────────────────────────────────────────┘

Last login: Thu Dec 25 15:26:49 2025
[oracle@orares ~]$ ps -ef|grep pmon
oracle    2732     1  0 15:27 ?        00:00:00 asm_pmon_+ASM
oracle    2814  2689  0 15:27 pts/0    00:00:00 grep --color=auto pmon
[oracle@orares ~]$
[oracle@orares ~]$
[oracle@orares ~]$ ps -ef|grep pmon
oracle    2732     1  0 15:27 ?        00:00:00 asm_pmon_+ASM
oracle    2818  2689  0 15:27 pts/0    00:00:00 grep --color=auto pmon
[oracle@orares ~]$
[oracle@orares ~]$
[oracle@orares ~]$ uptime -p
up 2 minutes
[oracle@orares ~]$
[oracle@orares ~]$ ps -ef|grep pmon
oracle    2732     1  0 15:27 ?        00:00:00 asm_pmon_+ASM
oracle    2892     1  0 15:27 ?        00:00:00 ora_pmon_orcldb
oracle    3021  2689  0 15:28 pts/0    00:00:00 grep --color=auto pmon
[oracle@orares ~]$



Thank you for reading!

I hope this content has been helpful to you. Your feedback and suggestions are always welcome — feel free to leave a comment or reach out with any queries.

Abhishek Shrivastava

📧 Email: oraeasyy@gmail.com
🌐 Website: www.oraeasy.com

Follow Us

Comments