############################################################################## # # Version: 2018.02.02.0001 ################################################################################ ################################################################################ oracle (our offering): #rhel 7: 12.2 #Future rhel 7: 12c ASM, LVM rhel 6: 11.2.0.4 ASM, LVM rhel 6: 11.2.0.3 LVM #rhel 7: 10.2.0.5 LVM #no longer offered ################################################################################ #get hugepages value #Hugepage size is fixed with = 2048KB (2MB) SGA=$(grep SGA $PARAMORACLEFILE | awk -F= '{print $2}') #Calculate in KB SGAKB=$(echo "$SGA*1024*1024" | bc) # Checking the available memory MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) # Checking the memory page size in bytes (default is 4K) PAGESIZE=$(getconf PAGE_SIZE) # Checking the huge page size in Mbytes HUGEPAGESIZE=$(awk '/Hugepagesize/ {print $2}' /proc/meminfo) HUGEPAGES=$(echo "$SGAKB/$HUGEPAGESIZE" | bc) echo "HUGEPAGESIZE: $HUGEPAGESIZE" echo "HUGEPAGES : $HUGEPAGES" #add to: /etc/sysctl.conf or to tuned profile #and change /etc/default/grub and grub-mkconfig to build new grub lines ################################################################################ #ORACLEASM vi /etc/sysconfig/oracleasm ORACLEASM_SCANORDER="mpath dm sd" ls -l /dev/oracleasm/disks major number (rhel 6.x) should be: 253 #if all are using multipath #ORACLEFD #done in database setup itself ASM_DISKSTRING ################################################################################ #Assume /etc/oratab, change if different ORATAB=/etc/oratab export ORACLE_SID=$(awk -F: '/^\+ASM/ {print $1}' $ORATAB) export ORACLE_HOME=$(awk -F: '/^\+ASM/ {print $2}' $ORATAB) export PATH=$PATH:$ORACLE_HOME/bin #export LD_LIBRARY_PATH=$ORACLE_HOME/lib ################################################################################ #There should be at least 3 or more (but an odd numbered) voting disks, #plus 2 OCR/CRS disks. cat /var/opt/oracle/ocr.loc sudo su - oracle find /u01 -name olsnodes find /or* -name olsnodes PATH=$PATH:(...above-path....)/bin olsnodes crs_stat -t ocrcheck crsctl -h crsctl query crs activeversion crsctl query css votedisk crsctl check crs crsctl status resource -t ################################################################################ #disable/enable CRS /oracle999/u01/app/oracle/product/*/grid/bin/crsctl enable crs /oracle999/u01/app/oracle/product/*/grid/bin/crsctl disable crs ################################################################################ # NEW oracle ASM style: Filter Driver (versus old ASMLIB) # # The fd keeps anyone, including root, from accidentally "dd'ing" the devices # it stands in the way of the OS doing anything bad to the disks # That is, a dd as root looks like it works (dd messages), but the fd traps # the command from actually destroying the disk (but no errors, looks like # the dd works, but it actual data write goes to /dev/null). # #Start /oracle999/u01/app/oracle/product/12.1.0/grid/bin/srvctl start asm #Check /oracle999/u01/app/oracle/product/12.1.0/grid/bin/srvctl status asm ps aux |grep -i asm $ORACLE_HOME/bin/asmcmd afd_state $ORACLE_HOME/bin/asmcmd afd_lsdsk asmcmd afd_label #DATA128G001 /dev/sdX1 cd /dev/oracleafd/disks chown oracle:dba * /dev/oracleafd/disks #where ASM disk map files are ################################################################################ #asmcmd for unix admins - to get the disk layout #non-interactive #su oracle -c /u01/app/oracle/product/10.2/asm/bin/asmcmd << EOF su oracle -c asmcmd << EOF > /tmp/myasmfile lsdsk -k EOF #interactive su - oracle -c asmcmd ls lsdg lsdsk -k #gives ASM_DEV_NAME and PHY_DEV_NAME_AND_PATH lsdsk #physical device path lsdsk -p #physical device path lsdsk -statistics #iostat stuff lsdsk -g #show order by path? lsdsk -t #time last used? lsdsk -I #use w/ caution - scans disk headers ################################################################################ #RAC test to see if there or not OUTPUT="no_RAC" if [[ -n $(ps -elf | grep -i crsd.bin | grep -v grep) ]] then RACDIR=$(dirname $(ps -elf \ | grep -i crsd.bin \ | grep -v grep \ | sed -e 's/reboot//' \ | awk '{print $NF}' ) ) RACSYSTEMS=$($RACDIR/olsnodes 2> /dev/null | tr '\012' '_') if [[ -n $RACSYSTEMS ]] then OUTPUT="RAC_running_on_$RACSYSTEMS" fi fi ################################################################################ #ASMLIB asmlib commands /etc/init.d/oracleasm status #/etc/init.d/oracleasm scandisks /etc/init.d/oracleasm listdisks /etc/init.d/oracleasm querydisk /dev/sdX | /dev/mapper/mpathX /etc/init.d/oracleasm querydisk -p /etc/init.d/oracleasm createdisk cd /dev/oracleasm/disks chown oracle:dba * #sudo /etc/init.d/oracleasm start /etc/init.d/oracleasm stop /etc/init.d/oracleasm restart /etc/init.d/oracleasm enable /etc/init.d/oracleasm disable /etc/init.d/oracleasm configure /etc/init.d/oracleasm createdisk * /etc/init.d/oracleasm deletedisk * /etc/init.d/oracleasm querydisk * /etc/init.d/oracleasm listdisks /etc/init.d/oracleasm scandisks /etc/init.d/oracleasm status ################################################################################ Clear out ASM info on a disk to make it look like ASM never owned/used it (Removing the "private region") DISK_PARTITION=/dev/sdd dd if=/dev/zero of=$DISK_PARTITION bs=1024 count=100 ################################################################################ #UDEV rules #check if there (either asmlib or udev - not both) grep oracle /etc/udev/rules.d/* | grep dba | grep scsi_id | grep -i asm #reload file changes to udev: udevadm control --reload-rules ################################################################################ MYDISK=mpathe /oracle999/u01/app/oracle/product/12.1.0/grid/bin/kfed \ op=read \ dev=/dev/mapper/$MYDISK \ text=/tmp/$MYDISK dd if=/dev/mapper/$MYDISK bs=1024 count=1 ################################################################################