standby checking script 3则 V1 shell 脚本
---1
#!/bin/sh
export ORACLE_SID=hdb
export ORACLE_BASE=/db/hdbdg/app/product/database
export ORACLE_HOME=/db/hdbdg/app/product/database/11g
export LANG=en_US
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export PATH=$PATH:$ORACLE_HOME/bin:.
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
#备库
get_result=`sqlplus '/ as sysdba'<<EOF
spool off;
select 'stdcseq1=' || max(sequence#) from v\\$archived_log where thread#=1 and applied='YES' group by thread#;
quit;
EOF`
stdcseq1=`echo "$get_result"|grep stdcseq1|cut -d "=" -f2`
echo $stdcseq1
get_result=`sqlplus '/ as sysdba'<<EOF
spool off;
select 'stdcseq2=' || max(sequence#) from v\\$archived_log where thread#=2 and applied='YES' group by thread#;
quit;
EOF`
stdcseq2=`echo "$get_result"|grep stdcseq2|cut -d "=" -f2`
echo $stdcseq2
#主库
get_result=`sqlplus dbmonopr/dbmonoprhdb11@hdb<<EOF
spool off;
select 'seq1=' || max(sequence#) from v\\$archived_log where thread#=1 group by thread#;
quit;
EOF`
echo "$get_result"
seq1=`echo "$get_result"|grep seq1|cut -d "=" -f2`
echo $seq1
seqdiff1=`expr $seq1 - $stdcseq1`
echo 'seqdiff1='$seqdiff1
if [ $seqdiff1 -ge 10 ]
then
echo "CRITICAL - hdb database dataguard error large than 10."
exit 2
fi
if [ $seqdiff1 -ge 6 ]
then
echo "WARNING - hdb database dataguard error large than 6."
exit 1
fi
if [ $seqdiff1 -lt 6 ]
then
echo "OK - hdb database dataguard ok."
exit 0
fi
############2:
version=`sqlplus -v|awk '{print $3}'|awk -F '.' '{print $1}'`
process_status='select status from v$managed_standby where process!='"'ARCH' and process like '%MRP%';"
status=`sqlplus -S / as sysdba<<EOF
set heading off
set feedback off
$process_status
exit
EOF`
echo mrp_status=$status
synctime="select to_char(first_time,'""yyyy-mm-dd hh24:mi:ss'"') from v$log_history where recid in (select max(recid) from v$log_history b group by thread#);'
time=`sqlplus -S / as sysdba<<EOF
set heading off
set feedback off
$synctime
exit
EOF`
echo synctime=$time
system=`uname`
case $system in
AIX)
disk_usage=`df -g|egrep -i "archive|fra" |awk '{print $(NF-3)}'`
if [ -n "$disk_usage" ];
then
echo archivedisk_usage=$disk_usage
fi
;;
HP-UX)
disk_usage=`bdf |egrep -i "archive|fra" |awk '{print $(NF-1)}'`
if [ -n "$disk_usage" ];
then
echo archivedisk_usage=$disk_usage
fi
;;
Linux)
disk_usage=`df -h|egrep -i "archive|fra" |awk '{print $(NF-1)}'`
if [ -n "$disk_usage" ];
then
echo archivedisk_usage=$disk_usage
fi
;;
esac
if [ -z "$disk_usage" ];
then
recovery_dest='select value from v$system_parameter where name = '"'db_recovery_file_dest';"
dest=`sqlplus -S / as sysdba<<EOF
set heading off
set feedback off
$recovery_dest
exit
EOF`
dest=${dest#*+}
asmdisk_usage_sql='select round((1-(free_mb/total_mb))*100,2) from v$asm_diskgroup where name='"'$dest';"
asmdisk_usage=`sqlplus -S / as sysdba<<EOF
set heading off
set feedback off
$asmdisk_usage_sql
exit
EOF`
echo archivedisk_usage=${asmdisk_usage}%
fi
if [ $version -eq 10 ];
then
recovery_dest_usage='select PERCENT_SPACE_USED from v$flash_recovery_area_usage where FILE_TYPE like '"'%ARCHIVE%';"
fi
if [ $version -eq 11 ];
then
recovery_dest_usage='select PERCENT_SPACE_USED from v$flash_recovery_area_usage where FILE_TYPE = '"'ARCHIVED LOG';"
fi
usage=`sqlplus -S / as sysdba<<EOF
set heading off
set feedback off
$recovery_dest_usage
exit
EOF`
echo fra_usage=${usage}%
###########3
#!/bin/bash
#env
PATH=/usr/local/bin:/usr/bin:$PATH:.
source /home/oracle11g/.bash_profile
f_getparameter(){
if [ -z "$3" ]; then
return
fi
PARAMETER=$1
sqlplus -s /nolog <<EOF | awk -F= "/^a=/ {print \$2}"
##sqlplus -s /nolog <<EOF
set head off pagesize 0 feedback off linesize 200
whenever sqlerror exit 1
##conn / as sysdba
##conn ${LOGIN_ID}@${db_name}
conn $2@$3
select 'a='||value from v\$parameter where name = '$PARAMETER';
EOF
}
f_getvalues(){
if [ -z "$3" ]; then
return
fi
PARAMETER=$1
sqlplus -s /nolog <<EOF | awk -F= "/^a=/ {print \$2}"
##sqlplus -s /nolog <<EOF
set head off pagesize 0 feedback off linesize 200
whenever sqlerror exit 1
##conn / as sysdba
##conn ${LOGIN_ID}@${db_name}
conn $2@$3
select 'a='||round(max_utilization/limit_value*100) from v\$resource_limit where resource_name='$PARAMETER';
EOF
}
f_getlist(){
if [ -z "$1" ]; then
return
fi
PARAMETER=$1
# sqlplus -s /nolog <<EOF | awk -F= "/^a=/ {print \$2}"
sqlplus -s /nolog <<EOF
set head off pagesize 0 feedack off linesize 50
whenever sqlerror exit 1
conn $2@$3
select status from v\$managed_standby where process!='ARCH' and process like '%MRP%';
select to_char(first_time,'yyyy-mm-dd hh24:mi:ss') from v\$log_history where recid in (select max(recid) from v\$log_history b group by thread#);
select PERCENT_SPACE_USED from v\$flash_recovery_area_usage where FILE_TYPE like 'ARCHIVE%';
EOF
}
db_list_checking(){
db_list="ora11g_test sdbs"
#db_list="sdbs"
##remove rdbs because 210.187 can't telnet 58.8.95.3 port 1528,need network check more
for db_name in ${db_list}
do
LOGIN_ID=dbmgr/t1234DBA
echo "###########$db_name###"
#echo $list
f_getlist ANY $LOGIN_ID $db_name
done
}
main()
{
echo '----------------'`date`'------------------checing konw---------------------------'
db_list_checking
echo '----------------'`date`'------------------over---------------------------'
}
main
standby checking script 3则 V1 shell 脚本的更多相关文章
- Linux Shell脚本面试25问
Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...
- 【转】Linux Shell脚本面试25问
Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...
- shell脚本面试题
Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...
- shell脚本调试运行
1.在命令行提供参数:$sh -x script.sh 但是有的shell脚本只能用 ./xxx.sh的方式运行,不能用sh命令解析执行.则此方法会报错.2.脚本开头提供参数:#!/bin/sh ...
- 对shell脚本进行加密
用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.同样,在shell脚本运行时会也泄露敏感信息.请问如何 ...
- shell脚本从入门到精通(中级)之提高篇
shell 脚本入门到精通(中级) 一.shell 脚本的执行 二.输出格式化 三.数据类型 四.重定向 五.变量 一.shell 脚本的执行 1. 脚本执行的4种方法 $ ls /tmp/test. ...
- Shell脚本编程(一):初识shell script
Shell简介 Shell是一个命令解释器,它是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核 ...
- 利用shell脚本实现计划任务功能 V1.2
2013.05.10 mytask 1.2 主程序休眠时间分成若干小的时间片断分段休眠,避免长时间的休眠不能及时响应系统信号. 2013.05.07 mytask 1.1 昨天发布了mytask1. ...
- shell脚本规划化模板
shell脚本规划化模板 Linux运维过程中,shell脚本是不可缺少的工具,但是每个运维人员编程的习惯都不一样,很多时候就是实现某个功能,写出来的脚本都是烂七八糟的.脚本必须规范化,应该从以后几个 ...
随机推荐
- Linus Torvalds: 成功的项目源于99%的汗水与1%的创新
2017年2月15日,在加利福尼亚州的开源领袖峰会上,由Linux基金会执行董事Jim Zemlin进行的一次采访中,Torvalds讨论了他如何管理Linux内核的开发以及他对工作的态度. Linu ...
- P1912 [NOI2009]诗人小G[决策单调性优化]
地址 n个数划分若干段,给定$L$,$p$,每段代价为$|sum_i-sum_j-1-L|^p$,求总代价最小. 正常的dp决策单调性优化题目.不知道为什么luogu给了个黑题难度.$f[i]$表示最 ...
- Money Systems
链接 分析:来看看背包九讲里面的一段话: 对于一个给定了背包容量.物品费用.物品间相互关系(分组.依赖等) 的背包问题,除了再给定每个物品的价值后求可得到的最大价值外,还可以得 到装满背包或将背包装至 ...
- [转] 编写高效的 CSS 选择器
高效的CSS已经不是一个新的话题了,也不是我一个非得重拾的话题,但它却是我在Sky公司工作之时,所感兴趣的,关注已久的话题. 有很多人都忘记了,或在简单的说没有意识到,CSS在我们手中,既能很高效,也 ...
- python2和python3中的range区别
python2中的range返回的是一个列表 python3中的range返回的是一个迭代值 for i in range(1,10)在python2和python3中都可以使用,但是要生成1-10的 ...
- strTemp.Format ("%.*lf",3,600.0);
CString strTemp; strTemp.Format ("%.*lf",3,600.0); 这句话的含义?求指教 优质解答 这就是一个格式化输出,分号之前的CStri ...
- 玩转 React 服务器端渲染
React 提供了两个方法 renderToString 和 renderToStaticMarkup 用来将组件(Virtual DOM)输出成 HTML 字符串,这是 React 服务器端渲染的基 ...
- linux控制USB的绑定/解绑
linux控制USB的绑定/解绑 http://www.jianshu.com/p/57293f9be558 今天工作中遇到一个问题, 要用代码实现USB的enable和disable. 谷歌了一番, ...
- OpenCPN介绍及编译
OpenCPN介绍及编译 OpenCPN是一个航海应用软件系统,采用wxWidgets界面框架,支持OpenGL,可以跨平台运行在Windows , Linux , Mac电脑上. OpenCPN是一 ...
- LayUI 子父窗体的交互
---恢复内容开始--- 收到的工作是将一个ERP的窗体程序改为网页实现,所以就肯定需要弹框来选择(如:物料编码.部门.业务员等等) 本文采取的前段框架是LayUI. layUI的官网API网址:ht ...