Introduction to the current environment
Software
Oracle Linux 7.6 (Installed at runlevel 3)
VirtualBox 6.1
Oracle Grid software 19.3.0.0
Oracle Database 19.3.0.0
Machine Info
Virtual machine: dbpr
IP: 10.10.10.9
Oracle Installation Checklist
Operating system Checklist
Item | Task |
---|---|
Linux x86-64 operating system requirements |
The following Linux x86-64 kernels are supported: Oracle Linux 8.1 with the Unbreakable Enterprise Kernel 6: 5.4.17-2011.0.7.el8uek.x86_64 or later Oracle Linux 8 with the Red Hat Compatible kernel: 4.18.0-80.el8.x86_64 or later Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 4: 4.1.12-124.19.2.el7uek.x86_64 or later Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 5: 4.14.35-1818.1.6.el7uek.x86_64 or later Oracle Linux 7.5 with the Red Hat Compatible kernel: 3.10.0-862.11.6.el7.x86_64 or later Red Hat Enterprise Linux 8: 4.18.0-80.el8.x86_64 or later Red Hat Enterprise Linux 7.5: 3.10.0-862.11.6.el7.x86_64 or later SUSE Linux Enterprise Server 12 SP3: 4.4.162-94.72-default or later SUSE Linux Enterprise Server 15: 4.12.14-23-default or later Review the system requirements section for a list of minimum package requirements. |
Disable Transparent HugePages |
Oracle recommends that you disable Transparent HugePages and use standard HugePages for enhanced performance. |
Disabling THP [Transparent HugePages]
As per the below output, the Default size of THP is 2M on Linux 7.6
Command to check the THP is enable[root@dbpr ~]# grep Huge /proc/meminfo AnonHugePages: 16384 kB ShmemHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB [root@dbpr ~]#
[root@dbpr ~]# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never [root@dbpr ~]#
The above output shows [always] flag, where THP is enabled.
To disable the THP on Oracle Linux 7.6, add the transparent_hugepage=never
parameter in /etc/default/grub
Let’s take the backup of the grub file at the default location
[root@dbpr ~]# cp /etc/default/grub grub_bkp
[root@dbpr ~]# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet transparent_hugepage=never" GRUB_DISABLE_RECOVERY="true" [root@dbpr ~]#
Need to run command grub2-mkconfig
to regenerate the grub.cfg file.
[root@dbpr ~]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.14.35-1818.3.3.el7uek.x86_64 Found initrd image: /boot/initramfs-4.14.35-1818.3.3.el7uek.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-4cf5dd31ca40ac4383fecc4363d167a6 Found initrd image: /boot/initramfs-0-rescue-4cf5dd31ca40ac4383fecc4363d167a6.img done [root@dbpr ~]#
Restart the system to make the changes permanent.
init 6
Verify the parameter is set correctly
[root@dbpr ~]# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-4.14.35-1818.3.3.el7uek.x86_64 root=/dev/mapper/ol-root ro rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet transparent_hugepage=never [root@dbpr ~]#
Let’s check the THP is enabled.
[root@dbpr ~]# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] [root@dbpr ~]#
Some additional links and MOS Doc if THP is still not disabled.
MOS Doc ID: 1557478.1 / 2066217.1
https://www.thegeekdiary.com/centos-rhel-7-how-to-disable-transparent-huge-pages-thp/
https://oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64
Server Configuration Checklist
Check | Task |
---|---|
Disk space allocated to the /tmp directory | At least 1 GB of space in the /tmp directory. |
Swap space allocation relative to RAM (Oracle Database) | Between 1 GB and 2 GB: 1.5 times the size of the RAM |
Swap space allocation relative to RAM (Oracle Restart) | Between 8 GB and 16 GB: Equal to the size of the RAM |
Checking and Configuring Server Hardware
Checking Server Hardware and Memory Configuration
Check physical RAM size
[root@dbpr ~]# grep MemTotal /proc/meminfo MemTotal: 10222840 kB [root@dbpr ~]#
Configured Swap space
[root@dbpr ~]# grep SwapTotal /proc/meminfo SwapTotal: 16777212 kB [root@dbpr ~]#
Amount of space available for /tmp directory
[root@dbpr ~]# df -h /tmp Filesystem Size Used Avail Use% Mounted on /dev/mapper/ol-root 43G 5.6G 38G 13% / [root@dbpr ~]#
Available free RAM and disk swap space on the system in MB, in GB use –g
[root@dbpr ~]# free -m total used free shared buff/cache available Mem: 9983 129 9727 8 126 9715 Swap: 16383 0 16383 [root@dbpr ~]#
System Architecture
[root@dbpr ~]# uname -a Linux dbpr 4.14.35-1818.3.3.el7uek.x86_64 #2 SMP Mon Sep 24 14:45:01 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux [root@dbpr ~]#
Shared memory (/dev/shm) is mounted properly with sufficient size
[root@dbpr ~]# df -h /dev/shm Filesystem Size Used Avail Use% Mounted on tmpfs 4.9G 0 4.9G 0% /dev/shm [root@dbpr ~]#
Configuring Operating Systems
Operating System Requirements for x86-64
Supported Oracle Linux 7 Distributions for x86-64
Item | Requirements |
---|---|
SSH Requirement | Ensure that OpenSSH is installed on your servers. OpenSSH is the required SSH software. |
Packages for Oracle Linux 7 | Install the latest released versions of the following packages: |
Optional Packages for Oracle Linux 7 | Based on your requirement, install the latest released versions of the following packages: |
Additional Drivers and Software Packages for Linux
Installing OCFS2
# yum install kernel-uek ocfs2
# yum install ocfs2–tools-1.8.6–9
Installation Requirements for ODBC
unixODBC-2.3.4 or later
Checking Kernel and Package Requirements for Linux
Distribution and version of Linux installed
[root@dbpr ~]# cat /etc/oracle-release Oracle Linux Server release 7.6
Determining OS kernel
[root@dbpr ~]# uname -r 4.14.35-1818.3.3.el7uek.x86_64 [root@dbpr ~]#
Check the required packages are installed
[root@dbpr ~]# rpm -q bc binutils compat-libcap1 compat-libstdc++33 elfutils-libelf elfutils-libelf-devel fontconfig-devel \ > glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ \ > libstdc++-devel libxcb make smartmontools sysstat unixODBC bc-1.06.95-13.el7.x86_64 binutils-2.27-34.base.0.1.el7.x86_64 compat-libcap1-1.10-7.el7.x86_64 package compat-libstdc++33 is not installed elfutils-libelf-0.172-2.el7.x86_64 elfutils-libelf-devel-0.172-2.el7.x86_64 fontconfig-devel-2.13.0-4.3.el7.x86_64 glibc-2.17-260.0.9.el7.x86_64 glibc-devel-2.17-260.0.9.el7.x86_64 ksh-20120801-139.0.1.el7.x86_64 libaio-0.3.109-13.el7.x86_64 libaio-devel-0.3.109-13.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libXrender-devel-0.9.10-1.el7.x86_64 libX11-1.6.5-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXi-1.7.9-1.el7.x86_64 libXtst-1.2.3-1.el7.x86_64 libgcc-4.8.5-36.0.1.el7.x86_64 libstdc++-4.8.5-36.0.1.el7.x86_64 libstdc++-devel-4.8.5-36.0.1.el7.x86_64 libxcb-1.13-1.el7.x86_64 make-3.82-23.el7.x86_64 smartmontools-6.5-1.el7.x86_64 sysstat-10.1.5-17.el7.x86_64 unixODBC-2.3.1-11.el7.x86_64 [root@dbpr ~]#
Installing the cvuqdisk RPM for Linux
Oracle Preinstallation RPM is not used in the following document, then to install cvuqdisk
need to locate grid_home/cv/rpm
to install the package as root.
# rpm –ivh cvuqdisk-1.0.10-1.rpm
Using Automatic SSH Configuration
In rare cases during the installation process, the remote node closes the SSH connection, to avoid such problems set the timeout wait to unlimited by setting the parameter LoginGraceTime 0
in file /etc/ssh/sshd_config
.
[root@dbpr ~]# rpm -qa | grep ssh openssh-clients-7.4p1-16.el7.x86_64 libssh2-1.4.3-12.el7.x86_64 openssh-7.4p1-16.el7.x86_64 openssh-server-7.4p1-16.el7.x86_64 [root@dbpr ~]#
Configuring Users, Groups, and Paths
The below table extracts the role separation for grid and oracle users for Oracle 19c Grid Infrastructure and RDBMS Installation.
Please follow the link for more descriptive information on Configuring Users, Groups, and Environments
https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/creating-operating-system-privileges-groups.html#GUID-164A7218-166D-4B58-9A86-88149E8FCB83
OS Group Name | OS User Assigned to OS group | Oracle Group Name | Description | Oracle Privileges |
---|---|---|---|---|
oinstall | grid,oracle | Oracle Inventory and software Owner | ||
dba | grid,oracle | OSDBA | Database Administrator | SYSDBA |
oper | oracle | OSOPER | Database Operator | SYSOPER |
backupdba | oracle | OSBACKUPDBA | Database backup and recovery operations using RMAN and SQL*PLUS | SYSBACKUP |
dgdba | oracle | OSDGDBA | Database Data Guard Operations | SYSDG |
kmdba | oracle | OSKMDBA | Database Transparent Data Encryption keystore operations | SYSKM |
asmdba | grid,oracle | OSDBA | ASM Database Administrator | SYSDBA |
asmoper | grid | OSOPER | ASM Operator group | SYSOPER |
asmadmin | grid | OSASM | Oracle Automatic Storage Management group | SYSASM |
racdba | grid,oracle | OSRACDBA | Perform day-to-day administrations of oracle database on Oracle RAC cluster. | SYSRAC |
For Oracle Restart installations, to successfully install Oracle Database, ensure that the grid user is a member of the racdba
group.
OS groups Creation
/usr/sbin/groupadd -g 54321 oinstall /usr/sbin/groupadd -g 54322 dba /usr/sbin/groupadd -g 54323 oper /usr/sbin/groupadd -g 54324 backupdba /usr/sbin/groupadd -g 54325 dgdba /usr/sbin/groupadd -g 54326 kmdba /usr/sbin/groupadd -g 54327 asmdba /usr/sbin/groupadd -g 54328 asmoper /usr/sbin/groupadd -g 54329 asmadmin /usr/sbin/groupadd -g 54330 racdba
Users Assigned to OS group Creation
useradd -u 54321 -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba grid useradd -u 54331 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba oracle
[root@dbpr ~]# passwd grid Changing password for user grid. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully. [root@dbpr ~]#
[root@dbpr ~]# 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@dbpr ~]#
To be very simple, no need for all groups (Optional)
/usr/sbin/groupadd -g 54321 oinstall /usr/sbin/groupadd -g 54322 dba
/usr/sbin/useradd -u 54331 -g oinstall -G dba oracle /usr/sbin/useradd -u 54332 -g oinstall -G dba grid
Directories (Path) for Grid and Oracle Installation
mkdir -p /grid/app/19.3.0/grid mkdir -p /grid/app/grid chmod -R 775 /grid/app/ chown -R grid:oinstall /grid/app/
mkdir -p /oracle/app/product/19.3.0/dbhome1 mkdir -p /oracle/app/oracle chmod -R 775 /oracle/app/ chown -R oracle:oinstall /oracle/app/
Verifying the Disk I/O Scheduler on Linux
Oracle recommends I/O scheduler for the best performance of ASM disk. The configuration of the Disk I/O Scheduler varies according to the Operating System OS. Linux has multiple Disk I/O schedulers like Deadline, Noop, Anticipatory, and Completely Fair Queuing (CFQ). Here Oracle recommends setting the Disk I/O scheduler to Deadline. If the Disk scheduler is not Deadline it can be set using UDEV rules files.
An excellent link with great comments for Disk I/O Scheduler on RHEL 4, 5, 6 and 7 https://access.redhat.com/solutions/5427
Need to create a shared hard disk with VirtualBox for respective VM. Open Oracle VirtualBox Software, for this procedure the respective machine has to be down (Shutdown).
In the menu Bar, File ⏩
Virtual Media manager ⏩
Create Disk Image ⏩
Dialog Box appears to Create Virtual Hard Disk, Hard Disk File Type Choose VMDK (Virtual Machine Disk) Next ⏩
Storage on physical hard Disk Choose Fixed Size Next ⏩
File Location and size
Set path: E:\Storage\OCRVD.vmdk
Set size: 2GB Create ⏩
In virtual Media Manager, you will see the newly created disk list, right-click on it, and with drop-down list go to properties. Below you will see two tabs Attributes and Information. In Attributes in type option drop-down list select shareable and Apply and close.
As with the above procedure shareable disk is created, now let’s assign this shareable disk to our respective virtual machine named dbpr.
As Virtual Box is open at the left side where the list of VM, right-click on the respective machine with settings ⏩
Storage ⏩
Just beside Storage Controller: SATA you will see two icons with Adds optical drive and Adds hard disk.
Click on Adds hard disk icon you will get a list of the disk in your Oracle VirtualBox, select the newly created disk with shareable and click on choose and finally OK.
Below Output show /dev/sdb
the newly created disk of 2GB.
[root@dbpr ~]# fdisk -l Disk /dev/sda: 322.1 GB, 322122547200 bytes, 629145600 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: 0x000b9626 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 629145599 314059776 8e Linux LVM Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 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 /dev/mapper/ol-root: 46.2 GB, 46170898432 bytes, 90177536 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 /dev/mapper/ol-swap: 17.2 GB, 17179869184 bytes, 33554432 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 /dev/mapper/ol-var: 21.5 GB, 21474836480 bytes, 41943040 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 /dev/mapper/ol-grid: 118.1 GB, 118111600640 bytes, 230686720 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 /dev/mapper/ol-oracle: 118.1 GB, 118111600640 bytes, 230686720 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 /dev/mapper/ol-home: 545 MB, 545259520 bytes, 1064960 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@dbpr ~]#
To check the Disk I/O scheduler.
[root@dbpr ~]# cat /sys/block/sdb/queue/scheduler noop [deadline] cfq [root@dbpr ~]#
Using the fdisk command to partition the newly added raw disk for ASM.
[root@dbpr ~]# cd /dev/ [root@dbpr dev]# ls sd* sda sda1 sda2 sdb [root@dbpr dev]#
[root@dbpr dev]# 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 0xd6659dd9. Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): First sector (2048-4194303, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): Using default value 4194303 Partition 1 of type Linux and of size 2 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@dbpr dev]#
[root@dbpr dev]# ls sd* sda sda1 sda2 sdb sdb1 [root@dbpr dev]#
Let’s check the SCSI ID for the disk /dev/sdb1
[root@dbpr ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdb1 1ATA_VBOX_HARDDISK_VBf7ae0fc6-e1290479 [root@dbpr ~]#
Configuring storage device path
Storage device path can be configured with ASMLIB or manually with setting UDEV rules, this document will follow the manual method setting UDEV rules.
Get into location /etc/udev/rules.d
and with vi editor create a new file named 99-oracle-asmdevices.rules
[root@dbpr rules.d]# cat 99-oracle-asmdevices.rules KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBf7ae0fc6-e1290479", SYMLINK+="asm-ocrvd", OWNER="grid", GROUP="asmadmin", MODE="0660" [root@dbpr rules.d]#
Update Block Device partitions
[root@dbpr rules.d]# /sbin/partprobe /dev/sdb1
Test the UDEV rules for the respective block device partitions with the below command, this test does not run an actual program it’s just for debugging.
[root@dbpr rules.d]# /sbin/udevadm test /block/sdb/sdb1 calling: test version 219 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. === trie on-disk === tool version: 219 file size: 7942570 bytes header size 80 bytes strings 2075066 bytes nodes 5867424 bytes Load module index Created link configuration context. timestamp of '/etc/udev/rules.d' changed Reading rules file: /usr/lib/udev/rules.d/10-dm.rules Reading rules file: /usr/lib/udev/rules.d/100-balloon.rules Reading rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules Reading rules file: /usr/lib/udev/rules.d/13-dm-disk.rules Reading rules file: /usr/lib/udev/rules.d/40-redhat-disable-dell-ir-camera.rules Reading rules file: /usr/lib/udev/rules.d/40-redhat-disable-lenovo-ir-camera.rules Reading rules file: /usr/lib/udev/rules.d/40-redhat.rules Reading rules file: /usr/lib/udev/rules.d/42-usb-hid-pm.rules Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules Reading rules file: /usr/lib/udev/rules.d/60-alias-kmsg.rules Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules Reading rules file: /usr/lib/udev/rules.d/60-drm.rules Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules Reading rules file: /usr/lib/udev/rules.d/60-keyboard.rules Reading rules file: /usr/lib/udev/rules.d/60-net.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-serial.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules Reading rules file: /usr/lib/udev/rules.d/60-raw.rules Reading rules file: /usr/lib/udev/rules.d/61-accelerometer.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs-dm.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules Reading rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules Reading rules file: /usr/lib/udev/rules.d/71-biosdevname.rules Reading rules file: /usr/lib/udev/rules.d/71-seat.rules Reading rules file: /usr/lib/udev/rules.d/73-idrac.rules Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules Reading rules file: /usr/lib/udev/rules.d/75-tty-description.rules Reading rules file: /usr/lib/udev/rules.d/76-phys-port-name.rules Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules Reading rules file: /usr/lib/udev/rules.d/80-net-name-slot.rules Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules Reading rules file: /usr/lib/udev/rules.d/81-kvm-rhel.rules Reading rules file: /usr/lib/udev/rules.d/84-nm-drivers.rules Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules Reading rules file: /usr/lib/udev/rules.d/90-alsa-tools-firmware.rules Reading rules file: /usr/lib/udev/rules.d/90-iprutils.rules Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules Reading rules file: /usr/lib/udev/rules.d/90-vconsole.rules Reading rules file: /usr/lib/udev/rules.d/91-drm-modeset.rules Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules Reading rules file: /usr/lib/udev/rules.d/95-udev-late.rules Reading rules file: /usr/lib/udev/rules.d/98-kexec.rules Reading rules file: /etc/udev/rules.d/99-oracle-asmdevices.rules Reading rules file: /usr/lib/udev/rules.d/99-qemu-guest-agent.rules Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules rules contain 49152 bytes tokens (4096 * 12 bytes), 14287 bytes strings 2155 strings (27282 bytes), 1449 de-duplicated (13702 bytes), 707 trie nodes used PROGRAM '/bin/uname -p' /usr/lib/udev/rules.d/40-redhat.rules:8 starting '/bin/uname -p' '/bin/uname -p'(out) 'x86_64' '/bin/uname -p' [23453] exit with return code 0 PROGRAM '/bin/systemd-detect-virt' /usr/lib/udev/rules.d/40-redhat.rules:11 starting '/bin/systemd-detect-virt' '/bin/systemd-detect-virt'(out) 'kvm' '/bin/systemd-detect-virt' [23454] exit with return code 0 GROUP 6 /usr/lib/udev/rules.d/50-udev-default.rules:52 LINK 'disk/by-id/ata-VBOX_HARDDISK_VBf7ae0fc6-e1290479-part1' /usr/lib/udev/rules.d/60-persistent-storage.rules:56 LINK 'disk/by-path/pci-0000:00:0d.0-ata-2.0-part1' /usr/lib/udev/rules.d/60-persistent-storage.rules:71 IMPORT builtin 'blkid' /usr/lib/udev/rules.d/60-persistent-storage.rules:89 probe /dev/sdb1 raid offset=0 PROGRAM '/usr/lib/udev/scsi_id -g -u -d /dev/sdb' /etc/udev/rules.d/99-oracle-asmdevices.rules:1 starting '/usr/lib/udev/scsi_id -g -u -d /dev/sdb' '/usr/lib/udev/scsi_id -g -u -d /dev/sdb'(out) '1ATA_VBOX_HARDDISK_VBf7ae0fc6-e1290479' '/usr/lib/udev/scsi_id -g -u -d /dev/sdb' [23455] exit with return code 0 OWNER 54321 /etc/udev/rules.d/99-oracle-asmdevices.rules:1 GROUP 54329 /etc/udev/rules.d/99-oracle-asmdevices.rules:1 MODE 0660 /etc/udev/rules.d/99-oracle-asmdevices.rules:1 LINK 'asm-ocrvd' /etc/udev/rules.d/99-oracle-asmdevices.rules:1 handling device node '/dev/sdb1', devnum=b8:17, mode=0660, uid=54321, gid=54329 preserve permissions /dev/sdb1, 060660, uid=54321, gid=54329 preserve already existing symlink '/dev/block/8:17' to '../sdb1' found 'b8:17' claiming '/run/udev/links/\x2fasm-ocrvd' creating link '/dev/asm-ocrvd' to '/dev/sdb1' preserve already existing symlink '/dev/asm-ocrvd' to 'sdb1' found 'b8:17' claiming '/run/udev/links/\x2fdisk\x2fby-id\x2fata-VBOX_HARDDISK_VBf7ae0fc6-e1290479-part1' creating link '/dev/disk/by-id/ata-VBOX_HARDDISK_VBf7ae0fc6-e1290479-part1' to '/dev/sdb1' preserve already existing symlink '/dev/disk/by-id/ata-VBOX_HARDDISK_VBf7ae0fc6-e1290479-part1' to '../../sdb1' found 'b8:17' claiming '/run/udev/links/\x2fdisk\x2fby-path\x2fpci-0000:00:0d.0-ata-2.0-part1' creating link '/dev/disk/by-path/pci-0000:00:0d.0-ata-2.0-part1' to '/dev/sdb1' preserve already existing symlink '/dev/disk/by-path/pci-0000:00:0d.0-ata-2.0-part1' to '../../sdb1' created db file '/run/udev/data/b8:17' for '/block/sdb/sdb1' .ID_FS_TYPE_NEW= .state=online ACTION=add DEVLINKS=/dev/asm-ocrvd /dev/disk/by-id/ata-VBOX_HARDDISK_VBf7ae0fc6-e1290479-part1 /dev/disk/by-path/pci-0000:00:0d.0-ata-2.0-part1 DEVNAME=/dev/sdb1 DEVPATH=/block/sdb/sdb1 DEVTYPE=partition ID_ATA=1 ID_ATA_FEATURE_SET_PM=1 ID_ATA_FEATURE_SET_PM_ENABLED=1 ID_ATA_SATA=1 ID_ATA_SATA_SIGNAL_RATE_GEN2=1 ID_ATA_WRITE_CACHE=1 ID_ATA_WRITE_CACHE_ENABLED=1 ID_BUS=ata ID_FS_TYPE= ID_MODEL=VBOX_HARDDISK ID_MODEL_ENC=VBOX\x20HARDDISK\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 ID_PART_ENTRY_DISK=8:16 ID_PART_ENTRY_NUMBER=1 ID_PART_ENTRY_OFFSET=2048 ID_PART_ENTRY_SCHEME=dos ID_PART_ENTRY_SIZE=4192256 ID_PART_ENTRY_TYPE=0x83 ID_PART_TABLE_TYPE=dos ID_PATH=pci-0000:00:0d.0-ata-2.0 ID_PATH_TAG=pci-0000_00_0d_0-ata-2_0 ID_REVISION=1.0 ID_SERIAL=VBOX_HARDDISK_VBf7ae0fc6-e1290479 ID_SERIAL_SHORT=VBf7ae0fc6-e1290479 ID_TYPE=disk MAJOR=8 MINOR=17 PARTN=1 SUBSYSTEM=block TAGS=:systemd: USEC_INITIALIZED=473743 Unload module index Unloaded link configuration context. [root@dbpr rules.d]#
Reload the UDEV service
[root@dbpr rules.d]# /sbin/udevadm control --reload-rules
Now the disk will be viewable with correct ownership and permission.
[root@dbpr dev]# ls -al sd*1 brw-rw----. 1 root disk 8, 1 Sep 29 17:27 sda1 brw-rw----. 1 grid asmadmin 8, 17 Sep 30 00:16 sdb1 [root@dbpr dev]#
Link for setting UDEV rules on Oracle Linux 5, 6, 7 and 8 https://oracle-base.com/articles/linux/udev-scsi-rules-configuration-in-oracle-linux
Configuring Kernel Parameters
Setting Kernel Parameters manually when Oracle Preinstallation RPM is not used, once the parameters are added in /etc/sysctl.d/99-oracle-database-sysctl.conf
to keep the parameters persistent without restart run /sbin/sysctl -–system
, to review the parameters updated are correct run /sbin/sysctl -a | grep {parameter_name}
example /sbin/sysctl -a | grep ip_local_port_range
[root@dbpr sysctl.d]# cat 99-oracle-database-sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 5234094080 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 [root@dbpr sysctl.d]#
Resource Limits for software Installation
Oracle recommends installing Oracle Preinstallation RPMs to configure resource limits in /etc/security/limits.conf
, As Oracle Preinstallation RPMs configures limits.conf
file for only oracle user. If an environment has role job separation for grid infrastructure, then set the same values from oracle user to the grid user in limits.conf
file.
Find the below output changes in limits.conf
[root@dbpr security]# cat limits.conf # /etc/security/limits.conf # #This file sets the resource limits for the users logged in via PAM. #It does not affect resource limits of the system services. # #Also note that configuration files in /etc/security/limits.d directory, #which are read in alphabetical order, override the settings in this #file in case the domain is the same or more specific. #That means for example that setting a limit for wildcard domain here #can be overriden with a wildcard setting in a config file in the #subdirectory, but a user specific setting here can be overriden only #with a user specific setting in the subdirectory. # #Each line describes a limit for a user in the form: # ## #Where: # can be: # - a user name # - a group name, with @group syntax # - the wildcard *, for default entry # - the wildcard %, can be also used with %group syntax, # for maxlogin limit # # can have the two values: # - "soft" for enforcing the soft limits # - "hard" for enforcing hard limits # # - can be one of the following: # - core - limits the core file size (KB) # - data - max data size (KB) # - fsize - maximum filesize (KB) # - memlock - max locked-in-memory address space (KB) # - nofile - max number of open file descriptors # - rss - max resident set size (KB) # - stack - max stack size (KB) # - cpu - max CPU time (MIN) # - nproc - max number of processes # - as - address space limit (KB) # - maxlogins - max number of logins for this user # - maxsyslogins - max number of logins on the system # - priority - the priority to run user process with # - locks - max number of file locks the user can hold # - sigpending - max number of pending signals # - msgqueue - max memory used by POSIX message queues (bytes) # - nice - max nice priority allowed to raise to values: [-20, 19] # - rtprio - max realtime priority # #
# #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 2047 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 # End of file [root@dbpr security]#
Check the output for configured values in /etc/security/limits.conf
Login with grid user
Check soft and hard values for file descriptor
[grid@dbpr ~]$ ulimit -Sn 1024 [grid@dbpr ~]$ [grid@dbpr ~]$ ulimit -Hn 65536 [grid@dbpr ~]$
Check soft and hard values for the Number of processes
[grid@dbpr ~]$ ulimit -Su 2047 [grid@dbpr ~]$ [grid@dbpr ~]$ ulimit -Hu 16384 [grid@dbpr ~]$
Check soft and hard values for stack
[grid@dbpr ~]$ ulimit -Ss 10240 [grid@dbpr ~]$ [grid@dbpr ~]$ ulimit -Hs 32768 [grid@dbpr ~]$
Login with oracle user
Check soft and hard values for file descriptor
[oracle@dbpr ~]$ ulimit -Sn 1024 [oracle@dbpr ~]$ [oracle@dbpr ~]$ ulimit -Hn 65536 [oracle@dbpr ~]$
Check soft and hard values for the Number of processes
[oracle@dbpr ~]$ ulimit -Su 2047 [oracle@dbpr ~]$ [oracle@dbpr ~]$ ulimit -Hu 16384 [oracle@dbpr ~]$
Check soft and hard values for stack
[oracle@dbpr ~]$ ulimit -Ss 10240 [oracle@dbpr ~]$ [oracle@dbpr ~]$ ulimit -Hs 32768 [oracle@dbpr ~]$
Installation of Oracle grid Infrastructure for a standalone server
The article will proceed with the installation of an oracle grid infrastructure for a standalone server using the software-Only installation. Installation can be done with GUI and silent mode, in silent mode, there are two methods, with a response file and the other without a response file. This article will proceed with the installation in silent mode without using a response file. The software has been unzipped in grid_home i.e. /grid/app/19.3.0/grid/
.
For installation using a response file either go through the GUI mode and record the information in the response file and use that specific response file for installation or else use a sample response file with backup and edit the values with vi editor and proceed with the installation.
[grid@dbpr ~]$ cd /grid/app/soft [grid@dbpr soft]$ ls -lrt total 2821472 -rw-r--r--. 1 grid oinstall 2889184573 Oct 1 21:23 V982068_01.zip [grid@dbpr soft]$ [grid@dbpr soft]$ unzip V982068_01.zip -d /grid/app/19.3.0/grid/
NOTE: To install the cvuqdisk-1.0.10-1.x86_64 package with root user which is shipped with Oracle 19c Grid software at location grid_home/cv/rpm
Verify the version of cluvfy.
[grid@dbpr soft]$ cd /grid/app/19.3.0/grid/ [grid@dbpr grid]$ ./runcluvfy.sh -version Version 19.0.0.0.0 Build 031319x8664 Full version 19.3.0.0.0 [grid@dbpr grid]$
Verifying the Prerequisites before proceeding for software installation at the server and storage level with the below command.
[grid@dbpr grid]$ ./runcluvfy.sh stage -pre hacfg -verbose Verifying Physical Memory ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr 9.7493GB (1.022284E7KB) 8GB (8388608.0KB) passed Verifying Physical Memory ...PASSED Verifying Available Physical Memory ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr 9.4578GB (9917224.0KB) 50MB (51200.0KB) passed Verifying Available Physical Memory ...PASSED Verifying Swap Size ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr 16GB (1.6777212E7KB) 9.7493GB (1.022284E7KB) passed Verifying Swap Size ...PASSED Verifying Free Space: dbpr:/usr,dbpr:/etc,dbpr:/sbin,dbpr:/tmp ... Path Node Name Mount point Available Required Status ---------------- ------------ ------------ ------------ ------------ ------------ /usr dbpr / 38.5625GB 25MB passed /etc dbpr / 38.5625GB 25MB passed /sbin dbpr / 38.5625GB 10MB passed /tmp dbpr / 38.5625GB 1GB passed Verifying Free Space: dbpr:/usr,dbpr:/etc,dbpr:/sbin,dbpr:/tmp ...PASSED Verifying Free Space: dbpr:/var ... Path Node Name Mount point Available Required Status ---------------- ------------ ------------ ------------ ------------ ------------ /var dbpr /var 20.7773GB 5MB passed Verifying Free Space: dbpr:/var ...PASSED Verifying User Existence: grid ... Node Name Status Comment ------------ ------------------------ ------------------------ dbpr passed exists(54321) Verifying Users With Same UID: 54321 ...PASSED Verifying User Existence: grid ...PASSED Verifying Group Existence: dba ... Node Name Status Comment ------------ ------------------------ ------------------------ dbpr passed exists Verifying Group Existence: dba ...PASSED Verifying Group Existence: oinstall ... Node Name Status Comment ------------ ------------------------ ------------------------ dbpr passed exists Verifying Group Existence: oinstall ...PASSED Verifying Group Membership: dba ... Node Name User Exists Group Exists User in Group Status ---------------- ------------ ------------ ------------ ---------------- dbpr yes yes yes passed Verifying Group Membership: dba ...PASSED Verifying Group Membership: oinstall(Primary) ... Node Name User Exists Group Exists User in Group Primary Status ---------------- ------------ ------------ ------------ ------------ ------------ dbpr yes yes yes yes passed Verifying Group Membership: oinstall(Primary) ...PASSED Verifying Run Level ... Node Name run level Required Status ------------ ------------------------ ------------------------ ---------- dbpr 3 3,5 passed Verifying Run Level ...PASSED Verifying Architecture ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr x86_64 x86_64 passed Verifying Architecture ...PASSED Verifying OS Kernel Version ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr 4.14.35-1818.3.3.el7uek.x86_64 4.1.12 passed Verifying OS Kernel Version ...PASSED Verifying OS Kernel Parameter: semmsl ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 250 250 250 passed Verifying OS Kernel Parameter: semmsl ...PASSED Verifying OS Kernel Parameter: semmns ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 32000 32000 32000 passed Verifying OS Kernel Parameter: semmns ...PASSED Verifying OS Kernel Parameter: semopm ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 100 100 100 passed Verifying OS Kernel Parameter: semopm ...PASSED Verifying OS Kernel Parameter: semmni ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 128 128 128 passed Verifying OS Kernel Parameter: semmni ...PASSED Verifying OS Kernel Parameter: shmmax ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 5234094080 5234094080 5234094080 passed Verifying OS Kernel Parameter: shmmax ...PASSED Verifying OS Kernel Parameter: shmmni ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 4096 4096 4096 passed Verifying OS Kernel Parameter: shmmni ...PASSED Verifying OS Kernel Parameter: shmall ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 2097152 2097152 1277855 passed Verifying OS Kernel Parameter: shmall ...PASSED Verifying OS Kernel Parameter: file-max ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 6815744 6815744 6815744 passed Verifying OS Kernel Parameter: file-max ...PASSED Verifying OS Kernel Parameter: ip_local_port_range ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr between 9000 & 65500 between 9000 & 65500 between 9000 & 65535 passed Verifying OS Kernel Parameter: ip_local_port_range ...PASSED Verifying OS Kernel Parameter: rmem_default ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 262144 262144 262144 passed Verifying OS Kernel Parameter: rmem_default ...PASSED Verifying OS Kernel Parameter: rmem_max ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 4194304 4194304 4194304 passed Verifying OS Kernel Parameter: rmem_max ...PASSED Verifying OS Kernel Parameter: wmem_default ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 262144 262144 262144 passed Verifying OS Kernel Parameter: wmem_default ...PASSED Verifying OS Kernel Parameter: wmem_max ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 1048576 1048576 1048576 passed Verifying OS Kernel Parameter: wmem_max ...PASSED Verifying OS Kernel Parameter: aio-max-nr ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 1048576 1048576 1048576 passed Verifying OS Kernel Parameter: aio-max-nr ...PASSED Verifying OS Kernel Parameter: panic_on_oops ... Node Name Current Configured Required Status Comment ---------------- ------------ ------------ ------------ ------------ ------------ dbpr 1 undefined 1 passed Verifying OS Kernel Parameter: panic_on_oops ...PASSED Verifying Package: kmod-20-21 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr kmod(x86_64)-20-23.0.1.el7 kmod(x86_64)-20-21 passed Verifying Package: kmod-20-21 (x86_64) ...PASSED Verifying Package: kmod-libs-20-21 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr kmod-libs(x86_64)-20-23.0.1.el7 kmod-libs(x86_64)-20-21 passed Verifying Package: kmod-libs-20-21 (x86_64) ...PASSED Verifying Package: binutils-2.23.52.0.1 ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr binutils-2.27-34.base.0.1.el7 binutils-2.23.52.0.1 passed Verifying Package: binutils-2.23.52.0.1 ...PASSED Verifying Package: compat-libcap1-1.10 ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr compat-libcap1-1.10-7.el7 compat-libcap1-1.10 passed Verifying Package: compat-libcap1-1.10 ...PASSED Verifying Package: libgcc-4.8.2 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr libgcc(x86_64)-4.8.5-36.0.1.el7 libgcc(x86_64)-4.8.2 passed Verifying Package: libgcc-4.8.2 (x86_64) ...PASSED Verifying Package: libstdc++-4.8.2 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr libstdc++(x86_64)-4.8.5-36.0.1.el7 libstdc++(x86_64)-4.8.2 passed Verifying Package: libstdc++-4.8.2 (x86_64) ...PASSED Verifying Package: libstdc++-devel-4.8.2 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr libstdc++-devel(x86_64)-4.8.5-36.0.1.el7 libstdc++-devel(x86_64)-4.8.2 passed Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...PASSED Verifying Package: sysstat-10.1.5 ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr sysstat-10.1.5-17.el7 sysstat-10.1.5 passed Verifying Package: sysstat-10.1.5 ...PASSED Verifying Package: ksh ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr ksh ksh passed Verifying Package: ksh ...PASSED Verifying Package: make-3.82 ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr make-3.82-23.el7 make-3.82 passed Verifying Package: make-3.82 ...PASSED Verifying Package: glibc-2.17 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr glibc(x86_64)-2.17-260.0.9.el7 glibc(x86_64)-2.17 passed Verifying Package: glibc-2.17 (x86_64) ...PASSED Verifying Package: glibc-devel-2.17 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr glibc-devel(x86_64)-2.17-260.0.9.el7 glibc-devel(x86_64)-2.17 passed Verifying Package: glibc-devel-2.17 (x86_64) ...PASSED Verifying Package: libaio-0.3.109 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr libaio(x86_64)-0.3.109-13.el7 libaio(x86_64)-0.3.109 passed Verifying Package: libaio-0.3.109 (x86_64) ...PASSED Verifying Package: libaio-devel-0.3.109 (x86_64) ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr libaio-devel(x86_64)-0.3.109-13.el7 libaio-devel(x86_64)-0.3.109 passed Verifying Package: libaio-devel-0.3.109 (x86_64) ...PASSED Verifying Package: nfs-utils-1.2.3-15 ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr nfs-utils-1.3.0-0.61.0.1.el7 nfs-utils-1.2.3-15 passed Verifying Package: nfs-utils-1.2.3-15 ...PASSED Verifying Package: smartmontools-6.2-4 ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr smartmontools-6.5-1.el7 smartmontools-6.2-4 passed Verifying Package: smartmontools-6.2-4 ...PASSED Verifying Package: net-tools-2.0-0.17 ... Node Name Available Required Status ------------ ------------------------ ------------------------ ---------- dbpr net-tools-2.0-0.24.20131004git.el7 net-tools-2.0-0.17 passed Verifying Package: net-tools-2.0-0.17 ...PASSED Verifying Users With Same UID: 0 ...PASSED Verifying Current Group ID ...PASSED Verifying Root user consistency ... Node Name Status ------------------------------------ ------------------------ dbpr passed Verifying Root user consistency ...PASSED Pre-check for Oracle Restart configuration was successful. CVU operation performed: stage -pre hacfg Date: 2 Oct, 2020 5:31:07 PM CVU home: /grid/app/19.3.0/grid/ User: grid [grid@dbpr grid]$ [grid@dbpr grid]$
Checking prerequisites for oracle grid infrastructure standalone installation without response file with flag -executePrereqs
that will not install the software.
./gridSetup.sh -silent \ INVENTORY_LOCATION=/grid/app/oraInventory \ oracle.install.option=CRS_SWONLY \ ORACLE_BASE=/grid/app/grid \ oracle.install.asm.OSDBA=asmdba \ oracle.install.asm.OSOPER=asmoper \ oracle.install.asm.OSASM=asmadmin \ oracle.install.crs.config.autoConfigureClusterNodeVIP=false \ oracle.install.crs.config.clusterNodes=dbpr \ oracle.install.config.managementOption=NONE \ oracle.install.crs.rootconfig.executeRootScript=false -executePrereqs [grid@dbpr grid]$ ./gridSetup.sh -silent \ > INVENTORY_LOCATION=/grid/app/oraInventory \ > oracle.install.option=CRS_SWONLY \ > ORACLE_BASE=/grid/app/grid \ > oracle.install.asm.OSDBA=asmdba \ > oracle.install.asm.OSOPER=asmoper \ > oracle.install.asm.OSASM=asmadmin \ > oracle.install.crs.config.autoConfigureClusterNodeVIP=false \ > oracle.install.crs.config.clusterNodes=dbpr \ > oracle.install.config.managementOption=NONE \ > oracle.install.crs.rootconfig.executeRootScript=false -executePrereqs Launching Oracle Grid Infrastructure Setup Wizard... Prerequisite checks executed successfully. Moved the install session logs to: /grid/app/oraInventory/logs/GridSetupActions2020-10-02_07-10-27PM [grid@dbpr grid]$
After checking the prerequisites start the actual installation.
[grid@dbpr grid]$ ./gridSetup.sh -silent \ > INVENTORY_LOCATION=/grid/app/oraInventory \ > oracle.install.option=CRS_SWONLY \ > ORACLE_BASE=/grid/app/grid \ > oracle.install.asm.OSDBA=asmdba \ > oracle.install.asm.OSOPER=asmoper \ > oracle.install.asm.OSASM=asmadmin \ > oracle.install.crs.config.autoConfigureClusterNodeVIP=false \ > oracle.install.crs.config.clusterNodes=dbpr \ > oracle.install.config.managementOption=NONE \ > oracle.install.crs.rootconfig.executeRootScript=false Launching Oracle Grid Infrastructure Setup Wizard... The response file for this session can be found at: /grid/app/19.3.0/grid/install/response/grid_2020-10-02_07-29-58PM.rsp You can find the log of this install session at: /tmp/GridSetupActions2020-10-02_07-29-58PM/gridSetupActions2020-10-02_07-29-58PM.log As a root user, execute the following script(s): 1. /grid/app/oraInventory/orainstRoot.sh 2. /grid/app/19.3.0/grid/root.sh Execute /grid/app/oraInventory/orainstRoot.sh on the following nodes: [dbpr] Execute /grid/app/19.3.0/grid/root.sh on the following nodes: [dbpr] Successfully Setup Software. Moved the install session logs to: /grid/app/oraInventory/logs/GridSetupActions2020-10-02_07-29-58PM [grid@dbpr grid]$ [grid@dbpr grid]$
[root@dbpr ~]# /grid/app/oraInventory/orainstRoot.sh Changing permissions of /grid/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /grid/app/oraInventory to oinstall. The execution of the script is complete. [root@dbpr ~]#
[root@dbpr ~]# /grid/app/19.3.0/grid/root.sh Check /grid/app/19.3.0/grid/install/root_dbpr_2020-10-02_19-35-09-185373377.log for the output of root script [root@dbpr ~]# [root@dbpr ~]# [root@dbpr ~]# cat /grid/app/19.3.0/grid/install/root_dbpr_2020-10-02_19-35-09-185373377.log Performing root user operation. The following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME= /grid/app/19.3.0/grid 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. To configure Grid Infrastructure for a Cluster or Grid Infrastructure for a Stand-Alone Server execute the following command as grid user: /grid/app/19.3.0/grid/gridSetup.sh This command launches the Grid Infrastructure Setup Wizard. The wizard also supports silent operation, and the parameters can be passed through the response file that is available in the installation media. [root@dbpr ~]# [root@dbpr ~]#
Configuring oracle grid infrastructure software binaries without Oracle Automatic Storage Management
1. log in as root run roothas.sh file from Oracle grid home path
# cd /grid/app/19.3.0/grid/crs/install/ # ./roothas.sh
[root@dbpr ~]# cd /grid/app/19.3.0/grid/crs/install/ [root@dbpr install]# [root@dbpr install]# ./roothas.sh Using configuration parameter file: /grid/app/19.3.0/grid/crs/install/crsconfig_params The log of current session can be found at: /grid/app/grid/crsdata/dbpr/crsconfig/roothas_2020-10-02_07-50-29PM.log LOCAL ADD MODE Creating OCR keys for user 'grid', 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 dbpr successfully pinned. 2020/10/02 19:51:02 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service' dbpr 2020/10/02 19:52:30 /grid/app/grid/crsdata/dbpr/olr/backup_20201002_195230.olr 724960844 2020/10/02 19:52:32 CLSRSC-327: Successfully configured Oracle Restart for a standalone server [root@dbpr install]# [root@dbpr install]#
2. log in as Oracle restart owner (grid), location at Grid home/oui/bin for node updation
[grid@dbpr ~]$ cd /grid/app/19.3.0/grid/oui/bin [grid@dbpr bin]$ [grid@dbpr bin]$ ./runInstaller -updateNodeList ORACLE_HOME=/grid/app/19.3.0/grid -defaultHomeName CLUSTER_NODES= CRS=TRUE Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 16383 MB Passed The inventory pointer is located at /etc/oraInst.loc [grid@dbpr bin]$
Check the current status
[grid@dbpr bin]$ ./crsctl check has CRS-4638: Oracle High Availability Services is online [grid@dbpr bin]$ [grid@dbpr bin]$ ./crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ons OFFLINE OFFLINE dbpr STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 OFFLINE OFFLINE STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE dbpr STABLE -------------------------------------------------------------------------------- [grid@dbpr bin]$ [grid@dbpr bin]$
Running Net Configuration Assistant Using Response Files for default Listener
Login into as Grid user and for the response file for listener creation is /grid/app/19.3.0/grid/network/install/netca_typ.rsp
[grid@dbpr ~]$ cd /grid/app/19.3.0/grid/bin [grid@dbpr bin]$ /grid/app/19.3.0/grid/bin/netca -silent -responsefile /grid/app/19.3.0/grid/network/install/netca_typ.rsp Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /grid/app/19.3.0/grid/network/install/netca_typ.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Oracle Net Listener Startup: Listener started successfully. Listener configuration complete. Oracle Net Services configuration successful. The exit code is 0 [grid@dbpr bin]$ [grid@dbpr bin]$
Bash Profile for Grid User /home/grid/ .bash_profile
export ORACLE_BASE=/grid/app/grid export ORACLE_HOME=/grid/app/19.3.0/grid export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Configuring ASM in the silent mode setting the password for sysasm and asm_monitor, creating a disk group named OCRVD with external redundancy.
[grid@dbpr bin]$ asmca -silent -configureASM -diskString '/dev/sd*' -sysAsmPassword Asmsysdbpr#123 -asmsnmpPassword Asmmondbpr#123 -diskGroupName OCRVD -diskList '/dev/sdb*' -redundancy EXTERNAL -au_size 4 ASM has been created and started successfully. [DBT-30001] Disk groups created successfully. Check /grid/app/grid/cfgtoollogs/asmca/asmca-201003PM120250.log for details. [grid@dbpr bin]$
Check the status after configuring ASM
[grid@dbpr bin]$ crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE dbpr STABLE ora.OCRVD.dg ONLINE ONLINE dbpr STABLE ora.asm ONLINE ONLINE dbpr Started,STABLE ora.ons OFFLINE OFFLINE dbpr STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 ONLINE ONLINE dbpr STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE dbpr STABLE -------------------------------------------------------------------------------- [grid@dbpr bin]$ [grid@dbpr bin]$
Newly created disk status
SQL> set linesize 200 column group format a20 column path format a35 column failgroup format a20 column disk format a20 select g.name "Group", d.failgroup "Failgroup", d.name "Disk", d.mode_status "Status", d.path "Path" from v$asm_disk d, v$asm_diskgroup g where d.group_number = g.group_number;SQL> SQL> SQL> SQL> SQL> 2 3 Group Failgroup Disk Status Path -------------------- -------------------- -------------------- ------- ----------------------------------- OCRVD OCRVD_0000 OCRVD_0000 ONLINE /dev/sdb1 SQL>
Installation of Oracle 19c Database software without the response file.
Unzip the software at the oracle_home with the below command
[oracle@dbpr ~]$ cd /oracle/app/soft [oracle@dbpr soft]$ ls -lrt total 2987996 -rw-r--r-- 1 oracle oinstall 3059705302 Oct 8 16:21 V982063_01.zip [oracle@dbpr soft]$ [oracle@dbpr soft]$ [oracle@dbpr soft]$ unzip V982063_01.zip -d /oracle/app/product/19.3.0/dbhome1
Checking prerequisites for oracle database installation without response file with a flag -executePrereqs
that will not install the software.
./runInstaller -silent \ oracle.install.option=INSTALL_DB_SWONLY \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/grid/app/oraInventory \ ORACLE_BASE=/oracle/app/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.OSDBA_GROUP=dba \ oracle.install.db.OSOPER_GROUP=oper \ oracle.install.db.OSBACKUPDBA_GROUP=backupdba \ oracle.install.db.OSDGDBA_GROUP=dgdba \ oracle.install.db.OSKMDBA_GROUP=kmdba \ oracle.install.db.OSRACDBA_GROUP=racdba \ oracle.install.db.rootconfig.executeRootScript=false -executePrereqs [oracle@dbpr dbhome1]$ ./runInstaller -silent \ > oracle.install.option=INSTALL_DB_SWONLY \ > UNIX_GROUP_NAME=oinstall \ > INVENTORY_LOCATION=/grid/app/oraInventory \ > ORACLE_BASE=/oracle/app/oracle \ > oracle.install.db.InstallEdition=EE \ > oracle.install.db.OSDBA_GROUP=dba \ > oracle.install.db.OSOPER_GROUP=oper \ > oracle.install.db.OSBACKUPDBA_GROUP=backupdba \ > oracle.install.db.OSDGDBA_GROUP=dgdba \ > oracle.install.db.OSKMDBA_GROUP=kmdba \ > oracle.install.db.OSRACDBA_GROUP=racdba \ > oracle.install.db.rootconfig.executeRootScript=false -executePrereqs Launching Oracle Database Setup Wizard... Prerequisite checks executed successfully. [oracle@dbpr dbhome1]$ [oracle@dbpr dbhome1]$
Let’s start the software-only installation of Oracle Database 19c with Oracle user
./runInstaller -silent \ oracle.install.option=INSTALL_DB_SWONLY \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/grid/app/oraInventory \ ORACLE_BASE=/oracle/app/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.OSDBA_GROUP=dba \ oracle.install.db.OSOPER_GROUP=oper \ oracle.install.db.OSBACKUPDBA_GROUP=backupdba \ oracle.install.db.OSDGDBA_GROUP=dgdba \ oracle.install.db.OSKMDBA_GROUP=kmdba \ oracle.install.db.OSRACDBA_GROUP=racdba \ oracle.install.db.rootconfig.executeRootScript=false [oracle@dbpr dbhome1]$ ./runInstaller -silent \ > oracle.install.option=INSTALL_DB_SWONLY \ > UNIX_GROUP_NAME=oinstall \ > INVENTORY_LOCATION=/grid/app/oraInventory \ > ORACLE_BASE=/oracle/app/oracle \ > oracle.install.db.InstallEdition=EE \ > oracle.install.db.OSDBA_GROUP=dba \ > oracle.install.db.OSOPER_GROUP=oper \ > oracle.install.db.OSBACKUPDBA_GROUP=backupdba \ > oracle.install.db.OSDGDBA_GROUP=dgdba \ > oracle.install.db.OSKMDBA_GROUP=kmdba \ > oracle.install.db.OSRACDBA_GROUP=racdba \ > oracle.install.db.rootconfig.executeRootScript=false Launching Oracle Database Setup Wizard... The response file for this session can be found at: /oracle/app/product/19.3.0/dbhome1/install/response/db_2020-10-08_05-58-49PM.rsp You can find the log of this install session at: /grid/app/oraInventory/logs/InstallActions2020-10-08_05-58-49PM/installActions2020-10-08_05-58-49PM.log As a root user, execute the following script(s): 1. /oracle/app/product/19.3.0/dbhome1/root.sh Execute /oracle/app/product/19.3.0/dbhome1/root.sh on the following nodes: [dbpr] Successfully Setup Software. [oracle@dbpr dbhome1]$
[root@dbpr ~]# /oracle/app/product/19.3.0/dbhome1/root.sh Check /oracle/app/product/19.3.0/dbhome1/install/root_dbpr_2020-10-08_18-03-18-771803316.log for the output of root script [root@dbpr ~]# [root@dbpr ~]# [root@dbpr ~]# cat /oracle/app/product/19.3.0/dbhome1/install/root_dbpr_2020-10-08_18-03-18-771803316.log Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /oracle/app/product/19.3.0/dbhome1 Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... 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) is available at : /oracle/app/product/19.3.0/dbhome1/bin/tfactl [root@dbpr ~]# [root@dbpr ~]#
Oracle user Bash Profile
export ORACLE_BASE=/oracle/app/oracle export ORACLE_HOME=/oracle/app/product/19.3.0/dbhome1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Let’s check the installation is done properly
[oracle@dbpr ~]$ sqlplus -v SQL*Plus: Release 19.0.0.0.0 - Production Version 19.3.0.0.0 [oracle@dbpr ~]$
MOS Doc ID 885643.1 silent installation of database and client software without using response file 11.2 /12.1/12.2/18c/19c
Let’s check the Central Inventory file for the registered homes
[oracle@dbpr ~]$ cat /etc/oraInst.loc
inventory_loc=/grid/app/oraInventory
inst_group=oinstall
[oracle@dbpr ~]$
[oracle@dbpr ~]$ cd /grid/app/oraInventory/ContentsXML/
[oracle@dbpr ContentsXML]$
[oracle@dbpr ContentsXML]$
[oracle@dbpr ContentsXML]$
[oracle@dbpr ContentsXML]$ ls -lrt
total 16
-rw-rw----. 1 grid oinstall 546 Oct 8 18:02 inventory.xml
-rw-rw----. 1 grid oinstall 174 Oct 8 18:02 oui-patch.xml
-rw-rw----. 1 grid oinstall 300 Oct 8 18:02 comps.xml
-rw-rw----. 1 grid oinstall 292 Oct 8 18:02 libs.xml
[oracle@dbpr ContentsXML]$
[oracle@dbpr ContentsXML]$
[oracle@dbpr ContentsXML]$ cat inventory.xml
<?xml version="1.0" standalone="yes" ?>
<!--Copyright (c) 1999, 2020, Oracle and/or its affiliates.
All rights reserved.-->
<!--Do not modify the contents of this file by hand.-->
<INVENTORY>
<VERSION_INFO>
<SAVED_WITH>12.2.0.7.0</SAVED_WITH>
<MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraGI19Home1" LOC="/grid/app/19.3.0/grid" TYPE="O" IDX="1"/>
<HOME NAME="OraDB19Home1" LOC="/oracle/app/product/19.3.0/dbhome1" TYPE="O" IDX="2"/>
<HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>
[oracle@dbpr ContentsXML]$
[oracle@dbpr ContentsXML]$
2 Comments
Beautiful explanation. Awaiting more posts from you.
ReplyDeletevery much useful ..
ReplyDeletePost a Comment