Wednesday 6 December 2017

SSH script to access multiple servers


#!/bin/ksh
#set -x
LOGFILE=/tmp/scan.log
echo " Scan test` date ` " > $LOGFILE
echo " " >>$LOGFILE
echo " " >>$LOGFILE
echo "==================================================================================================================" >>$LOGFILE
for i in ` cat /tmp/server.lst` ; do
server=`echo $i | awk -F\~ ' { print $1} ' `
echo Scan Status for $server  | tee -a $LOGFILE
/usr/sbin/ping $server
var_ping=$?
if [[ $var_ping -eq 0 ]] ; then
    ssh -o batchmode=yes $server true
    var_date=$?
    if [[ $var_date -eq 0 ]] ; then
      echo $server id | tee -a $LOGFILE
      ssh $server id | tee -a $LOGFILE
      echo "==================================================================================================================" >>$LOGFILE
    else
      echo $server ========== not Accessable =========== >>$LOGFILE2
    fi
else
  echo $server ========== not pingable =========== >>$LOGFILE2
fi
done

Saturday 27 May 2017

How to collect RDA in RAC env. This is applicable for only RDA 4.XXX


 How to collect RDA in RAC env. This is applicable for only RDA 4.XXX

  1.1 To setup the config file
./rda.sh -vX RDA::Remote setup_cluster

1.2 verify the nodes for which rda will be collected.

./rda.sh -vX RDA::Remote list

1.3  Collect RDA
./rda.sh -v -e REMOTE_TRACE=1

Wednesday 24 May 2017

How to generate awr in a rac instance for every one hour ( snapshot)

How to generate awr in a rac instance for every one hour ( snapshot)

# Jeyaseelan

if [ $# -ne 2 ] ; then
 echo usage : ./awr.sh instance_number date
 echo         ./awr.sh 1 12-JUN-2011
exit
fi
# Directory where this script resides
set -xv
STATSDIR=.
STATSREP=.
INSTANCE_NUMBER=$1
CURR_DATE=$2

AWRREPORT=snap.sql
# -------------------------------------------------->
# ---------- Start of program

rm  $AWRREPORT
echo "Generating reports in $STATSREP ... Pls wait ..."
sqlplus -s /nolog <<!
conn / as sysdba
set serveroutput on size 1000000
set feed off term off trims on linesize 300
 dbms_output.put_line('database connection');
spool $AWRREPORT
declare
    min_snap number;
    next_snap number;
    min_snap_time varchar2(20);
    next_snap_time varchar2(20);
    fileName varchar2(255);
    cursor c1 is select instance_number,snap_id, to_char(startup_time,'ddmm_hh24mi') snap_time from dba_hist_snapshot where instance_number=$INSTANCE_NUMBER and to_char(BEGIN_INTERVAL_TIME,'dd-MON-yyyy') = '$CURR_DATE' order by snap_id;
    c1_rec c1%rowtype;
begin
    for c1_rec in c1 loop
        select min(snap_id) into next_snap from dba_hist_snapshot  where snap_id > c1_rec.snap_id and instance_number=$INSTANCE_NUMBER;
        select to_char(end_interval_time,'ddmonyyy_hh24mi') into next_snap_time from dba_hist_snapshot where instance_number=$INSTANCE_NUMBER and   snap_id = next_snap;
        dbms_output.put_line('define begin_snap='||c1_rec.snap_id);
        dbms_output.put_line('define end_snap='||next_snap);
       fileName := '$STATSREP'||'/'||'$ORACLE_SID'||'_awrrpt'||'_'||c1_rec.instance_number||'_'||c1_rec.snap_id||'_'||next_snap||'.lst';
      dbms_output.put_line('define report_name='||fileName);
        dbms_output.put_line('define report_type='||'text');
        dbms_output.put_line('define num_days='||'3');
        dbms_output.put_line('@$ORACLE_HOME/rdbms/admin/awrrpt');
    end loop;
exception
    when no_data_found then
        -- Only last snap remaining
        null;
    when others then
        dbms_output.put_line(sqlerrm);
end;
/
spool off
!
echo test
sqlplus -s /nolog  <<!
 conn / as sysdba
        @$AWRREPORT
!

Tuesday 25 April 2017

How to Delete a Target in EM12C/EM13c

1. The proper way of deleting the target is via EM COnsole or EMCLI command
    EM CONSOLE => Login via manage target priv account=> search the target => Click Target Name
    => target Type => target Setup => remove target

    alternatively usinh emcli
     emcli delete_target -name="<target_Name>" -type="target_type" -delete_monitored_targets
       for example
 emcli delete_target -name="test.as.in.com:3832" -type="oracle_emd" -delete_monitored_targets
   
  Please note to delete an agent, all the related targets should be deleted first.



2. for some reason if if the host or agent is unreachable or down during target removal
   the above step will not work , you may want to use the following command
    BEGIN mgmt_admin.cleanup_agent('test.as.in.com:3832'); END;

3. Sometime while deleting the target, the connection from OEM and agent got disconnected
   we may get into the following error message

ORA-20238: Target LSNR_TEST:oracle_listener is currently in the process of being deleted
do the following steps.. if the first step failed move on the second step
exec sysman.mgmt_admin.delete_target('TARGET_NAME','TARGET_TYPE');
exec sysman.mgmt_admin.delete_target_internal('TARGET_NAME','TARGET_TYPE');
for example:
exec sysman.mgmt_admin.delete_target('ORCLE12CHOME_1','oracle_home');
exec sysman.mgmt_admin.delete_target_internal('ORCLE12CHOME_1','oracle_home');

ZFS

Public Cloud tools comparison