How to check invalid objects and broken job in multiple database
来源:互联网 发布:c语言选择排序 编辑:程序博客网 时间:2024/05/16 07:13
Recently i have to do release support. I need to check the invalid objects and broken jobs in nine environment, which is very tedious and time consuming. Thus, i wrote a shell script to do such thing.
#!/bin/bash
#Env part
##TEST Env--vqa2
CUSTOMER_Q2="***/***"
SECURITY_Q2="***/***"
KIOSK_Q2="***/***"
AQ_Q2="***/***"
AQ_FULFILLMENT_Q2="***/***"
AQ_FULFILLMENT_M_Q2="***/***"
AQ_FULFILLMENT_PUT_Q2="***/***"
OMS_FULFILLMENT_Q2="***/***"
OMS_FULFILLMENT_M_Q2="***/***"
OMS_FULFILLMENT_PUT_Q2="***/***"
LOGISTICS_Q2="***/***"
##STAGE
CUSTOMER_STAGE="***/***"
SECURITY_STAGE="***/***"
KIOSK_STAGE="***/***"
AQ_STAGE=""***/***"
AQ_FULFILLMENT_STAGE="***/***"
OMS_FULFILLMENT_STAGE="***/***"
LOGISTICS="***/***"
##PROD
CUSTOMER_PROD="***/***"
SECURITY_PROD="***/***"
KIOSK_PROD="***/***"
AQ_PROD="***/***"
AQ_FULFILLMENT_PROD="***/***"
AQ_FULFILLMNET_MPROD="***/***"
AQ_FULFILLMENT_PUTPROD="***/***"
OMS_FULFILLMENT_PROD="***/***"
OMS_FULFILLMENT_MPROD="***/***"
OMS_FULFILLMENT_PUTPROD="***/***"
LOGISTICS_PROD="***/***"
##ZDRUSER
CUSTOMER_PROD_ZDR="***/***"
SECURITY_PROD_ZDR="***/***"
KIOSK_PROD_ZDR="***/***"
AQ_PROD_ZDR="***/***"
AQ_FULFILLMENT_PROD_ZDR="***/***"
AQ_FULFILLMNET_MPROD_ZDR="***/***"
AQ_FULFILLMENT_PUTPROD_ZDR="***/***"
OMS_FULFILLMENT_PROD_ZDR="***/***"
OMS_FULFILLMENT_MPROD_ZDR="***/***"
OMS_FULFILLMENT_PUTPROD_ZDR="***/***"
LOGISTICS_PROD_ZDR="***/***"
LOG_DIR=/home/rxyu/logs
LOG_FILE=$LOG_DIR/monitor/monitor_release_`date '+%Y_%m_%d'`.log
REPORT_FILE=$LOG_DIR/reports/report_release_`date '+%Y_%m_%d'`.lst
CUR_DATE=`date '+%Y_%m_%d %H:%M:%S'`
ENV=$(echo $1|tr 'a-z' 'A-Z')
if [ $ENV == "STAGE" ]; then
env_list=($CUSTOMER_STAGE $SECURITY_STAGE $KIOSK_STAGE $AQ_STAGE $AQ_FULFILLMENT_STAGE "" "" $OMS_FULFILLMENT_STAGE "" "" $LOGISTICS)
elif [ $ENV == "PROD" ]; then
env_list=($CUSTOMER_PROD $SECURITY_PROD $KIOSK_PROD $AQ_PROD $AQ_FULFILLMENT_PROD $AQ_FULFILLMNET_MPROD $AQ_FULFILLMENT_PUTPROD $OMS_FULFILLMENT_PROD $OMS_
FULFILLMENT_MPROD $OMS_FULFILLMENT_PUTPROD $LOGISTICS_PROD)
elif [ $ENV == "ZDR" ]; then
env_list=($CUSTOMER_PROD_ZDR $SECURITY_PROD_ZDR $KIOSK_PROD_ZDR $AQ_PROD_ZDR $AQ_FULFILLMENT_PROD_ZDR $AQ_FULFILLMNET_MPROD_ZDR $AQ_FULFILLMENT_PUTPROD_ZDR
$OMS_FULFILLMENT_PROD_ZDR $OMS_FULFILLMENT_MPROD_ZDR $OMS_FULFILLMENT_PUTPROD_ZDR $LOGISTICS_PROD_ZDR)
elif [ $ENV == "Q2" ]; then
env_list=($CUSTOMER_Q2 $SECURITY_Q2 $KIOSK_Q2 $AQ_Q2 $AQ_FULFILLMENT_Q2 $AQ_FULFILLMENT_M_Q2 $AQ_FULFILLMENT_PUT_Q2 $OMS_FULFILLMENT_Q2 $OMS_FULFILLMENT_M_
Q2 $OMS_FULFILLMENT_PUT_Q2 $LOGISTICS_Q2)
else
echo "Unknown Environment"
exit
fi
#app body
echo "">>$LOG_FILE
echo "">>$LOG_FILE
echo "">>$LOG_FILE
echo "******************************************************************Start of the Round of DB Validation************************************">>$LOG_FILE
echo "Start one round Release suport at $CUR_DATE for Environment "$ENV" ">>$LOG_FILE
for CONNECT_STR in ${env_list[@]}
do
temp_str="$(echo ${CONNECT_STR:0:5} | tr 'a-z' 'A-Z')"
echo $temp_str
if [ $temp_str == "CUSTO" -o $temp_str == "OMS_F" ]; then
echo "Connecting database "$CONNECT_STR"......">>$LOG_FILE
#to connect database
sqlplus -s $CONNECT_STR <<EEEOF >>$LOG_FILE
set serveroutput on
set feedback on
set linesize 180
col interval format A50
select owner,object_name,object_type,last_ddl_time,status from all_objects o where o.status='INVALID'
/
select j.job,j.LOG_USER,j.last_date,j.interval from dba_jobs j where j.BROKEN='Y'
/
exit;
EEEOF
else
echo "Connecting database "$CONNECT_STR" without Invalid jobs......">>$LOG_FILE
#to conect database
sqlplus -s $CONNECT_STR <<EOF >>$LOG_FILE
set serveroutput on
set feedback on
set linesize 180
col interval format A50
select owner,object_name,object_type,last_ddl_time,status from all_objects o where o.status='INVALID'
/
exit;
EOF
fi
done
echo "******************************************************************End of the Round of DB Validation************************************">>$LOG_FILE
- How to check invalid objects and broken job in multiple database
- How to calculate SQL Azure Database and Objects Size
- How to compile invalid objects
- Recompile Invalid Objects In The Database
- How to backup and restore database in SQL Server
- How to identify all the Corrupted Objects in the Database reported by RMAN
- Script to compile invalid objects in DB
- in salesforce how to run batch from develop console and schedule job apex job
- How to do run-time (or explicit) linking of C++ plug-in components and objects
- How to check ip address in linux
- How to read and save Images in a Sql Server Database using ADO.NET and C#
- How to check and disable Adaptive Cursor Sharing in 11g
- How to collect TrustZone debug logs and check the meaning of error code in the logs
- How to Check Whether Oracle Binary/Instance is RAC Enabled and Relink Oracle Binary in RAC
- How to get multiple select value both in javascript and php
- How to Exploit Multiple Monitor Support in Memphis and Windows NT 5.0
- How To Create Multiple Folders And Sub-Folders In One Go
- How To Create Database In MongoDB
- 高性能IO设计的Reactor和Proactor模式
- 第三周2011.03.14-2011.03.20总结(部分找回)
- 第四周(部分找回)
- 押上我2年的青春
- 第五周:20110328到20110403
- How to check invalid objects and broken job in multiple database
- 第六、七周:20110404-----20110417
- Sping中Bean的简单认识(一)
- 撕咬边MSCS
- 用C#将XML中的文字数据写如WORD文档,并控制其格式(包括字体的样式和字体大小)
- 嵌入式Red5部署
- 版本控制系统对比:Git与Subversion
- 图像处理
- 宏中 equ textequ的的一些用法