Wednesday, December 9, 2020

DBCA Silent Mode for Container Database

# ---------------------------------------------------------------------
# glogin.sql
# ---------------------------------------------------------------------
# Modify the configuration of GLOGIN to show you better results.

cat >> $ORACLE_HOME/sqlplus/admin/glogin.sql <<EOF
set pages 700 lines 700 timing on time on colsep '|' trim on trims on numformat 999999999999999 heading on feedback on
COLUMN NAME FORMAT A20
COLUMN FILE_NAME FORMAT A80
SET SQLPROMPT '&_user@&_connect_identifier> '
DEFINE _EDITOR=vi
EOF

# ---------------------------------------------------------------------
# Database Creation Version 19c (With CDB/PDB on ASM Disks)
# SINGLE Create Database Silent on ASM and Container True

dbca -silent -createDatabase -templateName General_Purpose.dbc \
  -gdbName cdbprod \
  -sid cdbprod \
  -createAsContainerDatabase true \
  -databaseConfigType single \
  -SysPassword Welcome1 \
  -SystemPassword Welcome1 \
  -emConfiguration NONE \
  -storageType ASM \
  -datafileDestination +DATA \
  -redoLogFileSize 200 \
  -characterSet AL32UTF8 \
  -enableArchive true \
  -archiveLogMode auto \
  -recoveryAreaDestination +FRA \
  -memoryPercentage 50 \
  -dbOptions IMEDIA:false,CWMLITE:false,SAMPLE_SCHEMA:false,ORACLE_TEXT:false,APEX:false,OMS:false,DV:false,JSERVER:false,SPATIAL:false

# ---------------------------------------------------------------------
# This is to setup the password of your new CDP, necessary when you use DBCA Silent.
# ---------------------------------------------------------------------

orapwd dbuniquename=cdbprod file='+DATA' force=y entries=10 password="Welcome1+"

# ---------------------------------------------------------------------
# Validate the Database Creation
# ---------------------------------------------------------------------

srvctl config database -db cdbprod

ORACLE Configuration

# ------------------------------------------------------------------------
su - oracle

# ------------------------------------------------------------------------
# Version Variable
# ------------------------------------------------------------------------
#

ORA_VER_INST="11.2.0.4"
ORA_VER_INST="12.1.0.2"
ORA_VER_INST="12.2.0.1"
ORA_VER_INST="12.2.0.2"
ORA_VER_INST="18.1.0.1"
ORA_VER_INST="18.1.0.2"
ORA_VER_INST="18.2.0.1"
ORA_VER_INST="18.2.0.2"
ORA_VER_INST="18.3.0.1"
ORA_VER_INST="18.3.0.2"
ORA_VER_INST="18.4.0.1"
ORA_VER_INST="19.1.0.1"
ORA_VER_INST="19.2.0.2"
ORA_VER_INST="19.3.0.1"

# ------------------------------------------------------------------------
# Oracle Edition
# ------------------------------------------------------------------------
#

ORA_EDITION="db_SE_01"
ORA_EDITION="db_SE1_01"
ORA_EDITION="db_SE2_01"
ORA_EDITION="db_EE_01"
ORA_EDITION="db_PE_01"
ORA_EDITION="db_XE_01"

# ------------------------------------------------------------------------
# SRV01 - ORACLE
# ------------------------------------------------------------------------
#

cat > /home/oracle/.cdb1 <<EOF
# Variables Of Environment ORACLE [ ORACLE ]
export TMP=/tmp
export TMPDIR=\${TMP}
export HOST=\`hostname\`
export UPTIME=\`uptime | sed 's/.*up \([^,]*\), .*/\1/'\`
export ORACLE_HOSTNAME=\${HOST}
export ORACLE_BASE=/u01/app/oracle
export ORACLE_VERSION=${ORA_VER_INST}
export ORACLE_EDITION=${ORA_EDITION}
export ORACLE_HOME=\${ORACLE_BASE}/product/\${ORACLE_VERSION}/\${ORACLE_EDITION}
export GRID_HOME=/u01/app/\${ORACLE_VERSION}/grid
export ORACLE_TERM=xterm
export ORACLE_UNQNAME=cdbprod
export ORACLE_SID=cdbprod
export GRID_SID="+ASM"
export OGG_HOME=\${ORACLE_BASE}/product/ogg_19c
export TFA_HOME=\${ORACLE_HOME}/suptools/tfa/release/tfa_home
export OCK_HOME=\${ORACLE_HOME}/suptools/orachk
export OH=\${ORACLE_HOME}
export DBS=\${ORACLE_HOME}/dbs
export TNS=\${ORACLE_HOME}/network/admin
export OGG=\${OGG_HOME}
export TFA=\${TFA_HOME}
export OCK=\${OCK_HOME}
export ORATOP=\${ORACLE_HOME}/suptools/oratop/oratop
export OPATCH=\${ORACLE_HOME}/OPatch
export JAVA_HOME=\${ORACLE_HOME}/jdk
export PS1=\$'[ \${ORACLE_SID} ]|[ \${LOGNAME}@\h:\`pwd\`: ]\$ '
export PATH=\${PATH}:/usr/sbin:/usr/bin:/sbin:/bin:\${ORACLE_HOME}/bin:\${GRID_HOME}/bin:\${OPATCH}:\${ORACLE_HOME}/perl/bin:\${JAVA_HOME}/bin:\${OGG_HOME}:\${TFA_HOME}/bin:\${OCK_HOME}/
export LD_LIBRARY_PATH=\${ORACLE_HOME}/lib:\${ORACLE_HOME}/perl/lib:\${GRID_HOME}/lib:/lib:/usr/lib
export CLASSPATH=\${ORACLE_HOME}/JRE:\${ORACLE_HOME}/jlib:\${ORACLE_HOME}/rdbms/jlib
export ALERTDB=\${ORACLE_BASE}/diag/rdbms/\${ORACLE_UNQNAME}/\${ORACLE_SID}/trace/alert_\${ORACLE_SID}.log
export ALERTDG=\${ORACLE_BASE}/diag/rdbms/\${ORACLE_UNQNAME}/\${ORACLE_SID}/trace/drc\${ORACLE_SID}.log
export ALERTGG=\${OGG_HOME}/ggserr.log
export ALERTASM=\${ORACLE_BASE}/diag/asm/+asm/\${GRID_SID}/trace/alert_\${GRID_SID}.log
export LSNRCTL=\`ps -ef | grep tnslsnr | grep -v "grep" | wc -l\`
alias dblog='tail -f \${ALERTDB}'
alias dglog='tail -f \${ALERTDG}'
alias gglog='tail -f \${ALERTGG}'
alias asmlog='tail -f \${ALERTASM}'
alias sqlplus='rlwrap sqlplus'
alias s='rlwrap sqlplus / as sysdba'
alias rman='rlwrap rman'
alias r='rlwrap rman target /'
alias dgmgrl='rlwrap dgmgrl'
alias d='rlwrap dgmgrl /'
alias asmcmd='rlwrap asmcmd'
alias a='rlwrap asmcmd'
alias adrci='rlwrap adrci'
alias ad='rlwrap adrci'
alias ggsci='rlwrap \${OGG_HOME}/ggsci'
alias ogg='rlwrap \${OGG_HOME}/ggsci'
alias p='ps -ef | grep pmon | grep -v grep'
alias l='rlwrap lsnrctl status'
alias rest='crsctl stat res -t -init'
alias res='crsctl stat res -t'
alias orat='\${ORATOP}/oratop -f -i 10 / as sysdba'
alias meminfo='free -m -l -t'
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
alias cpuinfo='lscpu'
umask 0022
clear
if [[ \${ORACLE_SID} = \`ps -ef | grep pmon | grep -i \${ORACLE_SID} | awk '{ print \$NF }' | sed s/ora_pmon_//g\` ]]
then
  DB_STATUS="ONLINE"
else
  DB_STATUS="OFFLINE"
fi
if [ \${LSNRCTL} != 0 ]
then
  DB_LISTNER="ONLINE"
else
  DB_LISTNER="OFFLINE"
fi
echo ">----------------------------------------------------------------------------------------------"
echo "# SERVER_UPTIME.....: [ \${UPTIME} ]"
echo "# ORACLE_BASE.......: [ \${ORACLE_BASE} ]"
echo "# ORACLE_HOME.......: [ \${ORACLE_HOME} ]"
echo "# ORACLE_VERSION....: [ \${ORACLE_VERSION} ]"
echo "# ORACLE_SID........: [ \${ORACLE_SID} ]"
echo "# DATABASE_STATUS...: [ \${DB_STATUS} ]"
echo "# LISTENER_STATUS...: [ \${DB_LISTNER} ]"
echo ">----------------------------------------------------------------------------------------------"
EOF

grep -v '^#\|^$' /etc/oratab

# ------------------------------------------------------------------------
chown oracle.oinstall /home/oracle/.cdb1

echo ". /home/oracle/.cdb1" >> /home/oracle/.bash_profile

Tuesday, December 8, 2020

AFD / ACFS Configuration

# ------------------------------------------------------------------------
# AFD Manually Installation
# ------------------------------------------------------------------------
# AS ROOT

/u01/app/19.3.0.1/grid/bin/afdroot version_check      ---> only to enable acfs
/u01/app/19.3.0.1/grid/bin/afddriverstate supported   ---> only to enable acfs

# SINGLE RESTART
/u01/app/19.3.0.1/grid/bin/asmcmd afd_label DATA /dev/sdb --init
/u01/app/19.3.0.1/grid/bin/asmcmd afd_label FRA /dev/sdc --init

/u01/app/19.3.0.1/grid/bin/asmcmd afd_lslbl
/u01/app/19.3.0.1/grid/bin/asmcmd afd_lsdsk
/u01/app/19.3.0.1/grid/bin/asmcmd afd_state

# RAC
# /u01/app/19.3.0.1/grid/bin/asmcmd afd_label CONFIG /dev/sdb
/u01/app/19.3.0.1/grid/bin/asmcmd afd_label CONFIG /dev/sdb --init

# /u01/app/19.3.0.1/grid/bin/asmcmd afd_label DATA /dev/sdc
/u01/app/19.3.0.1/grid/bin/asmcmd afd_label DATA /dev/sdc --init

# /u01/app/19.3.0.1/grid/bin/asmcmd afd_label FRA /dev/sdd
/u01/app/19.3.0.1/grid/bin/asmcmd afd_label FRA /dev/sdd --init

/u01/app/19.3.0.1/grid/bin/asmcmd afd_lslbl
/u01/app/19.3.0.1/grid/bin/asmcmd afd_lsdsk
/u01/app/19.3.0.1/grid/bin/asmcmd afd_state

#
/u01/app/19.3.0.1/grid/bin/asmcmd lsdsk --statistics


# chown grid.asmadmin /dev/sdb
# chown grid.asmadmin /dev/sdc
# chown grid.asmadmin /dev/sdd

#
/u01/app/19.3.0.1/grid/crs/config/config.sh


# Clear

asmcmd afd_unlabel 'CONFIG'
asmcmd afd_unlabel 'DATA'
asmcmd afd_unlabel 'FRA'


disk /dev/sdb1 is already provisioned for ASM
disk /dev/sdc1 is already provisioned for ASM


dd if=/dev/zero of=/dev/sdb1 bs=1024 count=100
dd if=/dev/zero of=/dev/sdc1 bs=1024 count=100

# ------------------------------------------------------------------------
# Pre-Checks of Oracle Restart Installation
# ------------------------------------------------------------------------

./runcluvfy.sh stage -pre hacfg

GRID Configuration

# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
# Version Variable
#

ORA_VER_INST="11.2.0.4"
ORA_VER_INST="12.1.0.2"
ORA_VER_INST="12.2.0.1"
ORA_VER_INST="12.2.0.2"
ORA_VER_INST="18.1.0.1"
ORA_VER_INST="18.1.0.2"
ORA_VER_INST="18.2.0.1"
ORA_VER_INST="18.2.0.2"
ORA_VER_INST="18.3.0.1"
ORA_VER_INST="18.3.0.2"
ORA_VER_INST="18.4.0.1"
ORA_VER_INST="19.3.0.1"

# ------------------------------------------------------------------------
# Oracle Edition
#

ORA_EDITION="db_SE_01"
ORA_EDITION="db_SE1_01"
ORA_EDITION="db_SE2_01"
ORA_EDITION="db_EE_01"
ORA_EDITION="db_PE_01"

# ------------------------------------------------------------------------
# Grid Folders
# ------------------------------------------------------------------------
#

mkdir -p /u01/app/grid
mkdir -p /u01/app/${ORA_VER_INST}/grid
mkdir -p /u01/app/oraInventory/
#
chown grid.oinstall -R /u01/app/grid
chown grid.oinstall -R /u01/app/${ORA_VER_INST}

#
# chown grid.oinstall /u01/app/oraInventory/

# ------------------------------------------------------------------------
# Database Folders
# ------------------------------------------------------------------------
#

mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/${ORA_VER_INST}/${ORA_EDITION}

#
chown oracle.oinstall -R /u01/app/oracle
chown oracle.oinstall -R /u01/app/oracle/product/${ORA_VER_INST}
#
# chown oracle.oinstall /u01/app/oraInventory/
 

# ------------------------------------------------------------------------
# Configuration
# ------------------------------------------------------------------------

su - grid

# ------------------------------------------------------------------------
# Version Variable
#

ORA_VER_INST="11.2.0.4"
ORA_VER_INST="12.1.0.2"
ORA_VER_INST="12.2.0.1"
ORA_VER_INST="12.2.0.2"
ORA_VER_INST="18.1.0.1"
ORA_VER_INST="18.1.0.2"
ORA_VER_INST="18.2.0.1"
ORA_VER_INST="18.2.0.2"
ORA_VER_INST="18.3.0.1"
ORA_VER_INST="18.3.0.2"
ORA_VER_INST="18.4.0.1"
ORA_VER_INST="19.1.0.1"
ORA_VER_INST="19.2.0.2"
ORA_VER_INST="19.3.0.1"

# ------------------------------------------------------------------------
# Oracle Edition
#

ORA_EDITION="db_SE_01"
ORA_EDITION="db_SE1_01"
ORA_EDITION="db_SE2_01"
ORA_EDITION="db_EE_01"
ORA_EDITION="db_PE_01"
ORA_EDITION="db_XE_01"

#
# ------------------------------------------------------------------------
# SRV01 - GRID
# ------------------------------------------------------------------------
#

cat > /home/grid/.asm <<EOF
# Variables Of Environment ORACLE [ GRID ]
export TMP=/tmp
export TMPDIR=\${TMP}
export HOST=\`hostname\`
export HOSTNAME=\`hostname -a\`
export UPTIME=\`uptime | sed 's/.*up \([^,]*\), .*/\1/'\`
export ORACLE_HOSTNAME=\${HOST}
export ORACLE_BASE=/u01/app/grid
export ORACLE_VERSION=${ORA_VER_INST}
export GRID_HOME=/u01/app/\${ORACLE_VERSION}/grid
export ORACLE_HOME=\${GRID_HOME}
export OH=\${ORACLE_HOME}
export DBS=\${ORACLE_HOME}/dbs
export TNS=\${ORACLE_HOME}/network/admin
export ORACLE_SID=+ASM
export ORACLE_TERM=xterm
export OPATCH=\${ORACLE_HOME}/OPatch
export JAVA_HOME=\${ORACLE_HOME}/jdk
export PS1=\$'[ \${ORACLE_SID} ]|[ \${LOGNAME}@\h:\`pwd\`: ]\$ '
export PATH=\${PATH}:/usr/sbin:/usr/bin:/sbin:/bin:\${ORACLE_HOME}/bin:\${GRID_HOME}/bin:\${OPATCH}:\${ORACLE_HOME}/perl/bin:\${JAVA_HOME}/bin
export LD_LIBRARY_PATH=\${ORACLE_HOME}/lib:\${ORACLE_HOME}/perl/lib:\${GRID_HOME}/lib:/lib:/usr/lib
export CLASSPATH=\${ORACLE_HOME}/JRE:\${ORACLE_HOME}/jlib:\${ORACLE_HOME}/rdbms/jlib
export ALERTASM=\${ORACLE_BASE}/diag/asm/+asm/\${ORACLE_SID}/trace/alert_\${ORACLE_SID}.log
export LSNRCTL=\`ps -ef | grep tnslsnr | grep -v "grep" | wc -l\`
alias asmlog='tail -f \${ALERTASM}'
alias sqlplus='rlwrap sqlplus'
alias s='rlwrap sqlplus / as sysasm'
alias rman='rlwrap rman'
alias r='rlwrap rman target /'
alias asmcmd='rlwrap asmcmd -p'
alias a='rlwrap asmcmd -p'
alias adrci='rlwrap adrci'
alias ad='rlwrap adrci'
alias p='ps -ef | grep pmon | grep -v grep'
alias l='rlwrap lsnrctl status'
alias rest='crsctl stat res -t -init'
alias res='crsctl stat res -t'
alias wr='watch -d crsctl stat res -t'
alias meminfo='free -m -l -t'
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
alias cpuinfo='lscpu'
umask 0022
clear
if [[ \${ORACLE_SID} = \`ps -ef | grep pmon | grep -i \${ORACLE_SID} | awk '{ print \$NF }' | sed s/asm_pmon_//g\` ]]
then
  DB_STATUS="ONLINE"
else
  DB_STATUS="OFFLINE"
fi
if [ \${LSNRCTL} != 0 ]
then
  DB_LISTNER="ONLINE"
else
  DB_LISTNER="OFFLINE"
fi
echo ">----------------------------------------------------------------------------------------------"
echo "# SERVER_UPTIME.....: [ \${UPTIME} ]"
echo "# ORACLE_BASE.......: [ \${ORACLE_BASE} ]"
echo "# ORACLE_HOME.......: [ \${ORACLE_HOME} ]"
echo "# ORACLE_VERSION....: [ \${ORACLE_VERSION} ]"
echo "# ORACLE_SID........: [ \${ORACLE_SID} ]"
echo "# DATABASE_STATUS...: [ \${DB_STATUS} ]"
echo "# LISTENER_STATUS...: [ \${DB_LISTNER} ]"
echo ">----------------------------------------------------------------------------------------------"
EOF

# ------------------------------------------------------------------------
# Configure the Environment of Grid per File
# ------------------------------------------------------------------------
chown grid.oinstall /home/grid/.asm
echo ". /home/grid/.asm" >> /home/grid/.bash_profile

Thursday, December 3, 2020

Preparing Linux to install Oracle Products

# ---------------------------------------------------------------------
# Setup the ROOT Environment
# ---------------------------------------------------------------------
#

cat > /root/.bash_profile <<EOF
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi

# User specific environment and startup programs
export PS1=\$'[ \${LOGNAME}@\h:\`pwd\`: ]\$ '
export GRID_VERSION=19.3.0.1
export ORACLE_BASE=/u01/app/grid
export GRID_HOME=/u01/app/\${GRID_VERSION}/grid
export ORACLE_HOME=\${GRID_HOME}
export OPATCH=\${ORACLE_HOME}/OPatch
export JAVA_HOME=\${ORACLE_HOME}/jdk
export PATH=\${PATH}:\${HOME}/bin:\${GRID_HOME}/bin:\${OPATCH}:\${JAVA_HOME}/bin
EOF

. .bash_profile

# ---------------------------------------------------------------------
# OEL 7 and 8
# ---------------------------------------------------------------------
hostnamectl set hostname srv01.dbnitro.net --stats

# ---------------------------------------------------------------------
# OR
# ---------------------------------------------------------------------

vim /etc/hosts

# OR

echo "192.168.56.10   srv01.dbnitro.net   srv01"  >> /etc/hosts

# ---------------------------------------------------------------------
# OEL 7 and 8
# ---------------------------------------------------------------------systemctl stop firewalld
systemctl disable firewalld

# ---------------------------------------------------------------------
# yum -y install chrony
# ---------------------------------------------------------------------
systemctl enable chronyd.service
systemctl status chronyd.service
systemctl start chronyd.service
systemctl restart chronyd.service
systemctl status chronyd.service

# ---------------------------------------------------------------------
# Install EPEL for OL7
# ---------------------------------------------------------------------
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# ---------------------------------------------------------------------
# Install EPEL for OL8
# ---------------------------------------------------------------------
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

# ---------------------------------------------------------------------# JAVA
# ---------------------------------------------------------------------
yum -y install java-1.8.0-openjdk-devel.x86_64 java-1.8.0-openjdk.x86_64

# ---------------------------------------------------------------------
dnf -y install java-1.8.0-openjdk-devel.x86_64 java-1.8.0-openjdk.x86_64

# ---------------------------------------------------------------------
# Update the Linux and Kernel
# ---------------------------------------------------------------------
yum -y upgrade

# ---------------------------------------------------------------------
# OEL 7 ---> https://yum.oracle.com/repo/OracleLinux/OL7/baseos/latest/x86_64/index.html

# ---------------------------------------------------------------------
# Verify Installed Packages
# ---------------------------------------------------------------------
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' atop bc.x86_64 beakerlib-vim-syntax binutils bind-utils bzip2-devel.x86_64 bzip2-libs.x86_64 bzip2.x86_64 chrony cpp compat-libstdc++-33 compat-libcap1 dialog elinks elfutils-libelf elfutils-libelf-devel epel-release.noarch firefox gcc gcc-c++ glances glibc glibc-common glibc-devel glibc-headers htop iotop iptraf-ng iscsi-initiator-utils iscsi-initiator-utils-iscsiuio lsscsi libiscsi netbsd-iscsi targetcli ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libiscsi libXtst libXtst-devel lm_sensors lsof make mlocate nawk.x86_64 net-tools ntp nfs-utils nmap perl perl-DBI perl-TermReadKey perl-ExtUtils-MakeMaker perl-CPAN perl-CGI perl-URI.noarch psmisc readline-devel rlwrap smartmontools sos cockpit sysstat telnet tuned tuned-utils unixODBC unixODBC-devel unzip vim-X11 vim-common vim-enhanced vim-filesystem vim-minimal wget xorg-x11-server-Xorg xorg-x11-server-common xorg-x11-utils xorg-x11-apps xorg-x11-xauth xterm.x86_64 whois | egrep "is not installed"
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' kmod-oracleasm.x86_64      --->   NOT NECESSARY FOR AFD/ACFS
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracleasm-support.x86_64   --->   NOT NECESSARY FOR AFD/ACFS
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracleasmlib.x86_64        --->   NOT NECESSARY FOR AFD/ACFS
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' ocfs2-tools.x86_64
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracle-rdbms-server-11gR2-preinstall.x86_64
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracle-rdbms-server-12cR1-preinstall.x86_64
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracle-database-server-12cR2-preinstall.x86_64
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracle-database-preinstall-18c.x86_64
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracle-database-preinstall-19c.x86_64

# ---------------------------------------------------------------------
# Install Packages
# ---------------------------------------------------------------------
yum -y install atop bc.x86_64 beakerlib-vim-syntax binutils bind-utils bzip2-devel.x86_64 bzip2-libs.x86_64 bzip2.x86_64 chrony cpp compat-libstdc++-33 compat-libcap1 dialog elinks elfutils-libelf elfutils-libelf-devel epel-release.noarch firefox gcc gcc-c++ glances glibc glibc-common glibc-devel glibc-headers htop iotop iptraf-ng iscsi-initiator-utils iscsi-initiator-utils-iscsiuio lsscsi libiscsi netbsd-iscsi targetcli ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libiscsi libXtst libXtst-devel lm_sensors lsof make mlocate nawk.x86_64 net-tools ntp nfs-utils nmap perl perl-DBI perl-TermReadKey perl-ExtUtils-MakeMaker perl-CPAN perl-CGI perl-URI.noarch psmisc readline-devel rlwrap smartmontools sos cockpit sysstat telnet tuned tuned-utils unixODBC unixODBC-devel unzip vim-X11 vim-common vim-enhanced vim-filesystem vim-minimal wget xorg-x11-server-Xorg xorg-x11-server-common xorg-x11-utils xorg-x11-apps xorg-x11-xauth xterm.x86_64 whois
yum -y install kmod-oracleasm.x86_64      --->   NOT NECESSARY FOR AFD/ACFS
yum -y install oracleasm-support.x86_64   --->   NOT NECESSARY FOR AFD/ACFS
yum -y install oracleasmlib.x86_64        --->   NOT NECESSARY FOR AFD/ACFS
yum -y install ocfs2-tools.x86_64
yum -y install oracle-rdbms-server-11gR2-preinstall.x86_64
yum -y install oracle-rdbms-server-12cR1-preinstall.x86_64
yum -y install oracle-database-server-12cR2-preinstall.x86_64
yum -y install oracle-database-preinstall-18c.x86_64
yum -y install oracle-database-preinstall-19c.x86_64


# ------------------------------------------------------------------------
# Set parameters on /etc/hosts on Single Instance
# ------------------------------------------------------------------------
#
echo "#"                                                                                                                     >> /etc/hosts
echo "`ifconfig -a | grep inet | awk '{ print $2 }' | head -2 | grep -v 127.0.0.1 | head -1`   `hostname`   `hostname -s`"   >> /etc/hosts

# ------------------------------------------------------------------------
# Disable SELINUX
# ------------------------------------------------------------------------
#

cat > /etc/sysconfig/selinux <<EOF
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
EOF

# ------------------------------------------------------------------------
# Configure limits.conf
# ------------------------------------------------------------------------
#

cat >> /etc/security/limits.conf <<EOF
#
# Oracle Limits Configuration
#
* soft nproc 2047
* hard nproc 16384
* soft nofile 65536
* hard nofile 65536
* soft stack 10240
* hard stack 32768
* soft memlock 60397977
* hard memlock 60397977
EOF

# ------------------------------------------------------------------------
# Create the Groups and Users
# ------------------------------------------------------------------------
# ODA Environment
#

----------------------------------------------------------------------------------------------------------------------
Groups      Group Name      Group ID   Grid is a member           Oracle is a member       Agent is a member
----------- --------------- ---------- -----------------------    ---------------------    -----------------------
oinstall    oinstall        54321      yes (primary group)        yes (primary group)      yes (primary group)
osdba       dba             54322      yes                        yes                      yes
osdba       oper            54323      no                         yes                      yes
osbkpdba    backupdba       54324      no                         yes                      yes
osdba       asmdba          54325      yes                        yes                      yes
osdgdba     dgdba           54326      no                         yes                      yes
osdba       kmdba           54327      no                         yes                      yes
osasm       asmadmin        54328      yes                        no                       no
osoper      asmoper         54329      yes                        no                       yes
osracdba    racdba          54330      yes                        yes                      no
osoper      racoper         54331      yes                        yes                      yes

--------------------------------------------------------------------------------------------------------------------

# ------------------------------------------------------------------------
# Groups ( yum -y install system-config-users )
# ------------------------------------------------------------------------
#
/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 asmdba
/usr/sbin/groupadd -g 54326 dgdba
/usr/sbin/groupadd -g 54327 kmdba
/usr/sbin/groupadd -g 54328 asmadmin
/usr/sbin/groupadd -g 54329 asmoper
/usr/sbin/groupadd -g 54330 racdba
/usr/sbin/groupadd -g 54331 racoper

/usr/sbin/useradd -u 54321 -g oinstall -G dba,oper,backupdba,asmdba,dgdba,kmdba,racdba,racoper oracle
/usr/sbin/useradd -u 54322 -g oinstall -G dba,asmdba,asmadmin,asmoper,racdba,racoper grid

# ------------------------------------------------------------------------
# Create Users Password
# ------------------------------------------------------------------------
# Password
#

passwd grid
passwd oracle

# OR

echo 'oracle:oracle' | chpasswd
echo 'grid:grid' | chpasswd

# ------------------------------------------------------------------------
# Install the Pre-Install Package for Databases
yum -y install oracle-database-preinstall-19c.x86_64


# ------------------------------------------------------------------------
# Validate the Kernel Parameters
sysctl -p

# ------------------------------------------------------------------------
# Creating Directories to Grid and Database Installation
# ------------------------------------------------------------------------
# General Folders
# ------------------------------------------------------------------------

mkdir -p /u01/app/oraInventory
#
mkdir -p /u01/app/grid
mkdir -p /u01/app/grid/diag
#
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/diag
#
chown -R grid.oinstall /u01
chown -R grid.oinstall /u01/app/grid
chown -R grid.oinstall /u01/app/grid/diag
#
chown -R oracle.oinstall /u01/app/oracle
chown -R oracle.oinstall /u01/app/oracle/diag
#
chmod -R 775 /u01/

 ------------------------------------------------------------------------
# Mount tmpfs automatically on Linux
# ------------------------------------------------------------------------
# Create the folders to Grid and Database
# Change the permission to GRID (verify if is necessary re-run this part of the script after Grid installation)
# ------------------------------------------------------------------------
# Grid (Verify this configuration before the Grid Installation)
# ------------------------------------------------------------------------
# Used to Manage Auto Memory

# mount -t tmpfs shmfs -o size=16g /dev/shm

#

echo "shmfs                                     /dev/shm                tmpfs   size=16g        0 0" >> /etc/fstab

#

mount -a