Tuesday, 2 July 2019

step by step to apply patch in Oracle Weblogic Server

Step 1: set WL_HOME variable

/u01/oracle/middleware/wlserver_10.3/server/bin/setWLSEnv.sh

$ . $WL_HOME/server/bin/setWLSEnv.sh
  $ java weblogic.version

  [oracle@SAID-DR bin]$ . ./setDomainEnv.sh

CLASSPATH=/u01/oracle/middleware/patch_wls1036/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/u01/oracle/middleware/patch_ocp371/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java/jdk1.6.0_34/lib/tools.jar:/u01/oracle/middleware/wlserver_10.3/server/lib/weblogic_sp.jar:/u01/oracle/middleware/wlserver_10.3/server/lib/weblogic.jar:/u01/oracle/middleware/modules/features/weblogic.server.modules_10.3.6.0.jar:/u01/oracle/middleware/wlserver_10.3/server/lib/webservices.jar:/u01/oracle/middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/u01/oracle/middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:

PATH=/u01/oracle/middleware/wlserver_10.3/server/bin:/u01/oracle/middleware/modules/org.apache.ant_1.7.1/bin:/usr/java/jdk1.6.0_34/jre/bin:/usr/java/jdk1.6.0_34/bin:/usr/lib64/qt-3.3/bin:/usr/NX/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

Your environment has been set.

Step 2: Check Weblogic Version

----Check Weblogic Version---

[oracle@SAID-DR ClassicDomain]$cd /u01/oracle/middleware/user_projects/domains/ClassicDomain/
[oracle@SAID-DR ClassicDomain]$ java weblogic.version

WebLogic Server 10.3.6.0  Tue Nov 15 08:52:36 PST 2011 1441050

Use 'weblogic.version -verbose' to get subsystem information

Use 'weblogic.utils.Versions' to get version information for all modules

Step 3: Download required patch to apply

----Download Weblogic Patch ----

[oracle@SAID-DR ClassicDomain]$

[oracle@SAID-DR ClassicDomain]$ pwd
/u01/oracle/middleware/user_projects/domains/ClassicDomain
[oracle@SAID-DR ClassicDomain]$
root@SAID-DR ~]# cd /u01/patch/
[root@SAID-DR patch]# chown oracle:oinstall p28710912_1036_Generic.zip
[root@SAID-DR patch]# chmod 755 p28710912_1036_Generic.zip
[root@SAID-DR patch]#

Step 4: Apply patch

--------Apply Patch--------------
[oracle@SAID-DR ~]$ cd /u01/oracle/middleware/utils/bsu/
[oracle@SAID-DR bsu]$ ls -lrt
total 40
-rw-r--r-- 1 oracle oinstall 25214 Apr 24  2018 smartupdate.ico
-rw-r--r-- 1 oracle oinstall   516 Apr 24  2018 patch-client.jar
-rw-r--r-- 1 oracle oinstall   520 Apr 24  2018 bsu.jar
-rwxr-x--- 1 oracle oinstall   135 Apr 24  2018 bsu.sh
[oracle@SAID-DR bsu]$./bsu.sh

This is the syntax for the command to view the downloaded patches as below:

[oracle@SAID-DR bsu]$ ./bsu.sh -prod_dir=/u01/oracle/middleware/wlserver_10.3 -patch_download_dir=/u01/patch -status=downloaded -view -verbose
ProductName:       WebLogic Server
ProductVersion:    10.3 MP6
Components:        WebLogic Server/Core Application Server,WebLogic Server/Admi
                   nistration Console,WebLogic Server/Configuration Wizard and
                   Upgrade Framework,WebLogic Server/Web 2.0 HTTP Pub-Sub Serve
                   r,WebLogic Server/WebLogic SCA,WebLogic Server/WebLogic JDBC
                    Drivers,WebLogic Server/Third Party JDBC Drivers,WebLogic S
                   erver/WebLogic Server Clients,WebLogic Server/WebLogic Web S
                   erver Plugins,WebLogic Server/UDDI and Xquery Support,WebLog
                   ic Server/Evaluation Database,WebLogic Server/Workshop Code
                   Completion Support
BEAHome:           /u01/oracle/middleware
ProductHome:       /u01/oracle/middleware/wlserver_10.3
PatchSystemDir:    /u01/oracle/middleware/utils/bsu
PatchDir:          /u01/oracle/middleware/patch_wls1036
Profile:           Default
DownloadDir:       /u01/patch
JavaVersion:       1.6.0_29
JavaVendor:        Sun

[oracle@SAID-DR bsu]$

Install the patch:

[oracle@SAID-DR cache_dir]$ cp /u01/patch/p28710912_1036_Generic.zip /u01/oracle/middleware/utils/bsu/cache_dir/
[oracle@SAID-DR cache_dir]$ ls -lrt
total 98428
-rwxr-xr-x 1 oracle oinstall 100789655 Feb 14 03:39 p28710912_1036_Generic.zip
[oracle@SAID-DR cache_dir]$ unzip p28710912_1036_Generic.zip
Archive:  p28710912_1036_Generic.zip
  inflating: patch-catalog_26407.xml 
  inflating: 7HKN.jar               
  inflating: README.txt             
[oracle@SAID-DR cache_dir]$ pwd
/u01/oracle/middleware/utils/bsu/cache_dir
[oracle@SAID-DR cache_dir]$

./bsu.sh -install -patch_download_dir=/u01/oracle/middleware/utils/bsu/cache_dir -patchlist=7HKN -prod_dir=/u01/oracle/middleware/wlserver_10.3


3.25 PM 
[root@SAID-DR bsu]# cat bsu.sh
#!/bin/sh

JAVA_HOME="/usr/java/jdk1.6.0_34"

MEM_ARGS="-Xms1024m -Xmx4096m"            -----Modify the Memory parameter from 256 to 1024 and 512 to 4096

"$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*
[root@SAID-DR bsu]#

[oracle@SAID-DR bsu]$ ./bsu.sh -install -patch_download_dir=/u01/oracle/middleware/utils/bsu/cache_dir -patchlist=7HKN -prod_dir=/u01/oracle/middleware/wlserver_10.3
Checking for conflicts.....
.....
No conflict(s) detected

Installing Patch ID: 7HKN..
Result: Success

[oracle@SAID-DR bsu]$
[oracle@SAID-DR bsu]$

----check if the patch is installed-------
./bsu.sh -prod_dir=/u01/oracle/middleware/wlserver_10.3 -status=applied -verbose -view

[oracle@SAID-DR bsu]$ ./bsu.sh -prod_dir=/u01/oracle/middleware/wlserver_10.3 -status=applied -verbose -view
ProductName:       WebLogic Server
ProductVersion:    10.3 MP6
Components:        WebLogic Server/Core Application Server,WebLogic Server/Admi
                   nistration Console,WebLogic Server/Configuration Wizard and
                   Upgrade Framework,WebLogic Server/Web 2.0 HTTP Pub-Sub Serve
                   r,WebLogic Server/WebLogic SCA,WebLogic Server/WebLogic JDBC
                    Drivers,WebLogic Server/Third Party JDBC Drivers,WebLogic S
                   erver/WebLogic Server Clients,WebLogic Server/WebLogic Web S
                   erver Plugins,WebLogic Server/UDDI and Xquery Support,WebLog
                   ic Server/Evaluation Database,WebLogic Server/Workshop Code
                   Completion Support
BEAHome:           /u01/oracle/middleware
ProductHome:       /u01/oracle/middleware/wlserver_10.3
PatchSystemDir:    /u01/oracle/middleware/utils/bsu
PatchDir:          /u01/oracle/middleware/patch_wls1036
Profile:           Default
DownloadDir:       /u01/oracle/middleware/utils/bsu/cache_dir
JavaVersion:       1.6.0_29
JavaVendor:        Sun


Patch ID:          7HKN
PatchContainer:    7HKN.jar
Checksum:          -1767993263
Severity:          optional
Category:          General
CR/BUG:            28710912
Restart:           true
Description:       WLS PATCH SET UPDATE 10.3.6.0.190115
WLS PATCH SET UPDATE 10
                   .3.6.0.190115


[oracle@SAID-DR bsu]$




Monday, 18 March 2019

umount2: Device or resource busy in Linux

Error: We got the following error during umount one directory

root@said ~]# umount -f /u05/STPADDAPTER/input
umount2: Device or resource busy
umount: /u05/STPADDAPTER/input: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount2: Device or resource busy

Solution


root@said ~]# umount -f /u05/STPADDAPTER/input
umount2: Device or resource busy
umount: /u05/STPADDAPTER/input: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount2: Device or resource busy
[root@said ~]# umount -l /u05/STPADDAPTER/input 
[root@said ~]# mount //10.11.1.67/STPADDAPTER/input  /u05/STPADDAPTER/input -o username=administrator,password=bach@123,file_mode=0777,dir_mode=0777,sec=ntlm,uid=oracle,gid=oinstall
^C
You have mail in /var/spool/mail/root
[root@said ~]# umount -l /u05/STPADDAPTER/input
umount: /u05/STPADDAPTER/input: not mounted
[root@said ~]# mount -f //10.11.1.67/STPADDAPTER/input  /u05/STPADDAPTER/input -o username=administrator,password=,file_mode=0777,dir_mode=0777,sec=ntlm,uid=oracle,gid=oinstall

[root@said ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7             481G  1.3G  456G   1% /
tmpfs                 252G   75G  178G  30% /dev/shm
/dev/sda2             197G   60M  187G   1% /tmp
/dev/sda3             197G  7.4G  180G   4% /usr
/dev/sda6              99G  2.1G   92G   3% /var
/dev/mapper/mpathhp1  493G  135G  333G  29% /u01
/dev/mapper/mpathfp1 1008G  886G   72G  93% /u02
/dev/mapper/mpathgp1  493G  329G  139G  71% /u03
/dev/mapper/mpathip1  591G   91G  470G  17% /u04
/dev/mapper/mpathjp1 1008G  386G  572G  41% /u05
/dev/mapper/mpathkp1  493G  252G  216G  54% /u06
/dev/mapper/mpathlp1  493G   15G  453G   4% /u07
/dev/mapper/mpathnp1  493G   48G  420G  11% /u09
/dev/mapper/mpathop1  2.0T  1.5T  450G  77% /BARMAN
/dev/sda1             477M  184M  265M  41% /boot
/dev/mapper/mpathpp1 1008G  187G  771G  20% /archivelog
//10.11.1.65/MICR/DATA
                      1.8T  306G  1.4T  19% /u05/MICR/DATA
//10.11.1.65/MICR/IMAGE
                      1.8T  306G  1.4T  19% /u05/MICR/IMAGE
//10.11.1.65/XML/ICE  1.8T  306G  1.4T  19% /u05/XML/ICE
//10.11.1.65/XML/IRE  1.8T  306G  1.4T  19% /u05/XML/IRE
//10.11.1.65/EFT_XML/ICE
                      1.8T  306G  1.4T  19% /u05/EFT_XML/ICE
//10.11.1.65/EFT_XML/IRE
                      1.8T  306G  1.4T  19% /u05/EFT_XML/IRE
//10.11.1.67/STPADDAPTER/input
                     1008G  386G  572G  41% /u05/STPADDAPTER/input
//10.11.1.67/STPADDAPTER/output
                     1008G  386G  572G  41% /u05/STPADDAPTER/output
[root@said ~]#

mount //10.11.1.67/STPADDAPTER/output  /u05/STPADDAPTER/output -o username=administrator,password=,file_mode=0777,dir_mode=0777,sec=ntlmssp,uid=oracle,gid=oinstall

Monday, 25 February 2019

email alert configure in Linux/UNIX/Solaris/Windows server for Database health monitoring

The following process we configure for email alert to check Database Health

Step 1. Configure SMTP client from where we will send mail

[oracle@said dbalert]$ cat /etc/mail.rc
# This is the configuration file for Heirloom mailx (formerly
# known under the name "nail".
# See mailx(1) for further options.
# This file is not overwritten when 'make install' is run in
# the mailx build process again.

# Sccsid @(#)nail.rc 2.10 (gritter) 3/4/06

# Do not forward to mbox by default since this is likely to be
# irritating for most users today.
set hold

set smtp=smtp://10.11.1.204          ----smtp server information
set from="db.alert@saidrase.info"  ----email account from where mail send

Step 2. configure a shell script into smtp client server from where mail send to destination mail address


#!/bin/bash
NOW=$(date +"%M-%H-%m-%d-%Y")
MAIL_TO="saidrase@yahoo.com","rasel.said@gmail.com"
ssh oracle@10.88.1.112 /export/home/oracle/dbalert/dbinfo_mis.sh
scp oracle@10.88.1.112:/export/home/oracle/dbalert/MIS_Database_Info.html /u01/dbalert/
ssh oracle@10.88.1.112 rm -f /export/home/oracle/dbalert/MIS_Database_Info.html
##ssh oracle@10.88.1.112 df -h >>/u01/dbalert/Database_Info.html
##ssh oracle@10.88.1.112 tail -30 /d01/app/oracle/diag/rdbms/bacdbpr/bacdb/trace/alert_bacdb.log >>/u01/dbalert/Database_Info.html
echo "

File System Information    

"  >> /u01/dbalert/MIS_Database_Info.html
echo "" >> /u01/dbalert/Database_Info.html
echo "

Alert Log Information    

"  >> /u01/dbalert/MIS_Database_Info.html
echo "" >> /u01/dbalert/MIS_Database_Info.html
echo "10.88.1.112 Server Health Check Information. Please Download the attached file" | mail -v  -a /u01/dbalert/MIS_Database_Info.html -s "MIS Database Server Health Check" $MAIL_TO
rm /u01/dbalert/alert_mis.txt /u01/dbalert/mis_fs.txt
mv /u01/dbalert/MIS_Database_Info.html /u01/dbalert/MIS_Database_Info_$NOW.html
exit


Step 3. Prepare a shell script to connect Database into monitoring Database server

#!/bin/bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/db_1
PATH=$ORACLE_HOME/bin:$HOME/bin:/usr/bin/X11:/usr/bin/X11R6:/usr/local/sbin:/sbin:/bin:/emc/EMCpower/reloc/EMCpower/bin/sparcv9:/etc/emc/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/openwin/bin:.; export PATH
ORACLE_PATH=$ORACLE_HOME/bin:.; export ORACLE_PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
LD_LIBRARY_PATH_64=$ORACLE_HOME/lib; export LD_LIBRARY_PATH_64
CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib; export CLASSPATH
ORACLE_SID=orcl; export ORACLE_SID
sqlplus  -s "/ as sysdba" << EOF
set trimspool on
SET LINE 1000
SET ECHO OFF
SET VERIFY OFF
SET TERMOUT OFF
SET HEADING OFF
SET FEEDBACK OFF
SET wrap off
SET MARKUP HTML ON
column TABLESPACE_NAME for a30
spool on
spool /home/oracle/dbalert/MIS_Database_Info.html
@/home/oracle/dbalert/version_MIS.sql
spool off
exit;
EOF
exit;

Step 4. Prepare a sql script to collect data from Database server 

SET MARKUP HTML ON

SET MARKUP HTML OFF

conn c##monitor/""@dbname

select '

' || 'MIS Database Server Healthcheck Information (10.88.1.112)' || '' || '' || '

' from dual;

select  '

' || 'Tablespace Information used more than 85% in MISDB PDB' || '' || '' || '' || '

' from dual;
conn c##monitor/""@dbname

SET MARKUP HTML ON
SET PAGES 800
SET HEADING ON

select a.TABLESPACE_NAME,a.d "No of DataFile",round(a.BYTES) "TOTAL_SIZE_(M)",a.BYTES-b.BYTES "USED (M)",round(((a.BYTES-b.BYTES)/a.BYTES)*100,2) "%USED"
from
(
  select TABLESPACE_NAME,count(file_name) D,sum(BYTES)/1048576 BYTES
  from dba_data_files
  group by TABLESPACE_NAME
) a,
(
  select TABLESPACE_NAME,sum(BYTES)/1048576 BYTES, max(BYTES)/1048576 largest
  from dba_free_space
  group by TABLESPACE_NAME
)b
where a.TABLESPACE_NAME=b.TABLESPACE_NAME and a.TABLESPACE_NAME not like '%UNDO%'
and round(((a.BYTES-b.BYTES)/a.BYTES)*100,2) > 85
order by ((a.BYTES-b.BYTES)/a.BYTES) desc;

set heading on timing off

SET HEADING OFF
SET MARKUP HTML OFF

select  '

' || 'Log Switch Information' || '' || '' || '' || '

' from dual;
SET MARKUP HTML ON

SET HEADING ON
col day for a11
SELECT to_char(first_time,'YYYY-MON-DD') day,
to_char(sum(decode(to_char(first_time,'HH24'),'00',1,0)),'9999') "00",
to_char(sum(decode(to_char(first_time,'HH24'),'01',1,0)),'9999') "01",
to_char(sum(decode(to_char(first_time,'HH24'),'02',1,0)),'9999') "02",
to_char(sum(decode(to_char(first_time,'HH24'),'03',1,0)),'9999') "03",
to_char(sum(decode(to_char(first_time,'HH24'),'04',1,0)),'9999') "04",
to_char(sum(decode(to_char(first_time,'HH24'),'05',1,0)),'9999') "05",
to_char(sum(decode(to_char(first_time,'HH24'),'06',1,0)),'9999') "06",
to_char(sum(decode(to_char(first_time,'HH24'),'07',1,0)),'9999') "07",
to_char(sum(decode(to_char(first_time,'HH24'),'08',1,0)),'9999') "08",
to_char(sum(decode(to_char(first_time,'HH24'),'09',1,0)),'9999') "09",
to_char(sum(decode(to_char(first_time,'HH24'),'10',1,0)),'9999') "10",
to_char(sum(decode(to_char(first_time,'HH24'),'11',1,0)),'9999') "11",
to_char(sum(decode(to_char(first_time,'HH24'),'12',1,0)),'9999') "12",
to_char(sum(decode(to_char(first_time,'HH24'),'13',1,0)),'9999') "13",
to_char(sum(decode(to_char(first_time,'HH24'),'14',1,0)),'9999') "14",
to_char(sum(decode(to_char(first_time,'HH24'),'15',1,0)),'9999') "15",
to_char(sum(decode(to_char(first_time,'HH24'),'16',1,0)),'9999') "16",
to_char(sum(decode(to_char(first_time,'HH24'),'17',1,0)),'9999') "17",
to_char(sum(decode(to_char(first_time,'HH24'),'18',1,0)),'9999') "18",
to_char(sum(decode(to_char(first_time,'HH24'),'19',1,0)),'9999') "19",
to_char(sum(decode(to_char(first_time,'HH24'),'20',1,0)),'9999') "20",
to_char(sum(decode(to_char(first_time,'HH24'),'21',1,0)),'9999') "21",
to_char(sum(decode(to_char(first_time,'HH24'),'22',1,0)),'9999') "22",
to_char(sum(decode(to_char(first_time,'HH24'),'23',1,0)),'9999') "23"
,sum(1) "TOTAL_IN_DAY"
from v$log_history where first_time > sysdate-5
GROUP by to_char(first_time,'YYYY-MON-DD') order by 1 asc;

SET MARKUP HTML OFF
SET HEADING OFF

SET HEADING OFF

SET MARKUP HTML OFF
select  '

' || 'MISDB Database User Login Since Last 6 Hours' || '' || '' || '' || '

' from dual;
SET MARKUP HTML ON

SET HEADING ON
col Logon_Time for a22
col machine for a25

Select to_char(logon_time,'dd/mm/yyyy hh24:mi:ss') Logon_Time,osuser,status,USERNAME,schemaname,machine
from v$session
where type !='BACKGROUND'
AND osuser not in ('root','oracle','grid','WIN-MQ01PK54063$','BSAPP','OracleHomeUser')
and trunc(logon_time)=trunc(sysdate-1/4);

SET MARKUP HTML OFF
SET HEADING OFF

SET MARKUP HTML OFF
select  '

' || 'MISDB Database Invalid Object Information' || '' || '' || '' || '

' from dual;
SET MARKUP HTML ON

SET HEADING ON
col owner for a22


SELECT owner,count(*) Total_Invalid_Objects FROM dba_objects where status='INVALID' group by owner;

SET MARKUP HTML OFF
SET HEADING OFF

SET MARKUP HTML OFF
select  '

' || 'MISDB Database FRA Information' || '' || '' || '' || '

' from dual;
SET MARKUP HTML ON

SET HEADING ON
col file_type for a22

SELECT file_type,percent_space_used FROM v$flash_recovery_area_usage;

SET MARKUP HTML OFF
SET HEADING OFF

SET MARKUP HTML OFF
select  '

' || 'MISDB Database UpTime Information' || '' || '' || '' || '

' from dual;
SET MARKUP HTML ON

SET HEADING ON
col InsName for a22

SELECT INSTANCE_NAME InsName,to_char(STARTUP_TIME,'DD-MON-YY hh24:mi:ss')  StartupTime FROM  v$instance ;

SET MARKUP HTML OFF
SET HEADING OFF