linux_oracle_healthcheck.sh
#!/bin/bash
##########################################################################################
# Script: LINUX_ORACLE.bash
##########################################################################################
#
# ORACLE HEALTH CHECK
##########################################################################################
DATE=$(date +%Y%m%d)
HOSTNAME=$(hostname)
HCDIR=/oracle/xunjian
HCFILE=${HCDIR}/orachk_${DATE}_${HOSTNAME}.log
#export ORACLE_SID=orcl1
#export ORACLE_BASE=/oracle/oracle
#export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#export PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/u01/11.2.0/grid/bin:$ORACLE_HOME/bin:$ORACLE_HOME/dcm/bin:$ORACLE_HOME/webcache/bin:$ORACLE_HOME/opmn/bin
#export LD_LIBRARY_PATH=$ORACLE_HOME/lib
exec > $HCFILE
##############OS AND CLUSTER CHECK###########################################################
date
echo '######################################VMSTAT 2 10###########################################'
vmstat -S M 2 10
echo '######################################MEM USAGE#############################################'
free -m
echo '######################################FS STATUS#############################################'
df -h
echo '######################################CLUSTER STATUS########################################'
su - grid -c "crs_stat -t"
echo '######################################CRS STATUS############################################'
su - grid -c "crsctl check crs"
echo '######################################VOTEDISK STATUS#######################################'
su - grid -c "crsctl query css votedisk"
echo '######################################OCR STATUS############################################'
su - grid -c "ocrcheck"
echo '######################################OCR BACKUP############################################'
su - grid -c "ocrconfig -showbackup"
echo '######################################LSNR STATUS###########################################'
su - grid -c "lsnrctl status"
####################DB CHECK###########################################################
su - oracle -c "sqlplus -S / as sysdba" <<EOF
set pagesize 1000;
set linesize 200;
prompt ######################################DB NAME###############################################
select name from v\$database;
prompt ######################################INSTANCE STATUS######################################
select instance_name,status from gv\$instance;
prompt ######################################ARCHIVELOG MOD#######################################
archive log list;
prompt ######################################DB SIZE##############################################
select sum(bytes)/1024/1024/1024 DBSIZE_GB from dba_segments;
prompt ######################################STORAGE USEGE##############################################
col NAME for a20
set lin 150
select NAME,TOTAL_MB,FREE_MB,STATE from v\$asm_diskgroup;
prompt ######################################USERS################################################
col username format a25
col account_status format a18
col default_tablespace format a20
col temporary_tablespace format a20
select username,account_status,default_tablespace,temporary_tablespace from dba_users;
prompt ######################################CONTROLFILE###########################################
col name format a65;
select name,status from v\$controlfile;
prompt ######################################REDO LOG##############################################
col member format a60;
select f.member "member", f.group# "group", l.bytes/1024/1024 "size", l.status from v\$logfile f, v\$log l where f.group#=l.group# order by f.group#,f.member;
prompt ######################################TABLESPACE############################################
set line 200 pagesize 9999
col tablespace_name for a20
select b.tablespace_name,round(sum(b.bytes)/1024/1024,0) sum_MB,
round(sum(b.bytes)/1024/1024,0)-round(sum(nvl(a.bytes,0))/1024/1024,0) use_MB,
round(sum(nvl(a.bytes,0))/1024/1024,0) free_MB,
round((sum(b.bytes)-sum(nvl(a.bytes,0)))/sum(b.bytes),4)*100 use_precent
from (select tablespace_name,file_id,sum(bytes) bytes from dba_free_space group by tablespace_name,file_id) a,
dba_data_files b
where a.file_id(+)=b.file_id and a.tablespace_name(+)=b.tablespace_name
group by b.tablespace_name
union all
select b.tablespace_name,round(b.bytes/1024/1024,0) sum_MB,
round(nvl(a.bytes,0)/1024/1024,0) use_MB,
round(b.bytes/1024/1024,0)-round(nvl(a.bytes,0)/1024/1024,0) free_MB,
round(nvl(a.bytes,0)/b.bytes,4)*100 use_precent
from (select tablespace_name,sum(nvl(bytes_used,0)) bytes from gv\$temp_extent_pool group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes from dba_temp_files group by tablespace_name)b
where a.tablespace_name(+)=b.tablespace_name
order by use_precent desc;
prompt ######################################DATA-TEMP FILE##############################################
col TABLESPACE_NAME for a15
col file_name for a50
set linesize 150
select TABLESPACE_NAME,FILE_NAME,FILE_ID,BYTES/1024/1024 mb,ONLINE_STATUS from dba_data_files
union all
select TABLESPACE_NAME,FILE_NAME,FILE_ID,BYTES/1024/1024 mb,STATUS from dba_temp_files
order by 1;
prompt ######################################INVALID OBJECTS#######################################
select count(*) from dba_objects where status = 'INVALID';
prompt ######################################UNUSE INDEX###########################################
select count(*) from dba_indexes where status='UNUSABLE';
exit;
EOF
echo 'BACKGROUD ALERT'
echo '######################################BACKGROUD ALERT#########################################'
tail -500 /oracle/oracle/diag/rdbms/orcldb/orcldb1/trace/alert_orcldb1.log
echo '######################################END#####################################################'
########################FTP TO LOCAL###########################
HOST_IP=192.168.1.18
USRNM="ftp"
PWD="password"
LOCAL_DIR=/oracle/xunjian
REMOTE_DIR=/dbcheck/test
ftp -inv $HOST_IP<<!
user ${USRNM} ${PWD}
bin
prompt
lcd ${LOCAL_DIR}
cd ${REMOTE_DIR}
mput orachk_${STAMP}_${HOSTNAME}.log
bye
!
exit
linux_oracle_healthcheck.sh的更多相关文章
- 数据库备份并分离日志表(按月)sh 脚本
#!/bin/sh year=`date +%Y` month=`date +%m` day=`date +%d` hour=`date +%H` dir="/data/dbbackup/f ...
- Linux下如何查找.sh后缀的文件
find / -name *.sh或locate *.shfind 与locate的区别:locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称
- sh 测试网段在线主机
yum install nmap nmap -sP 192.168.21.1/24 查看网段在线主机 grep -vwf file1 file2 文件内容比较 #!/bin/bash # day=` ...
- Maven打包生成可运行bat/sh脚本文件
利用Maven的appassembler-maven-plugin插件,就可以实现自动打包可运行的脚本,还可以跨平台. <plugin> <groupId>org ...
- 记一个简单的保护if 的sh脚本
真是坑爹,就下面的sh,竟然也写了很久! if [ `pwd` != '/usr/xx/bin/tomcat' ] then echo "rstall is not allowed in c ...
- 主机巡检脚本:OSWatcher.sh
主机巡检脚本:OSWatcher.sh 2016-09-26更新,目前该脚本只支持Linux操作系统,后续有需求可以继续完善. 注意: 经测试,普通用户执行脚本可以顺利执行前9项检查: 第10项,普通 ...
- Oracle巡检脚本:ORAWatcher.sh
Oracle巡检脚本:ORAWatcher.sh #!/usr/bin/ksh echo "" echo "ORAWatcher Version:1.0.1" ...
- 解决:/bin/sh: 1: /home/**/custom_app.sh: Permission denied错误
出现如下错误,一般是执行权限不够. /bin/sh: : /home/custom_app.sh: Permission denied 解决方法是:cd 到此文件目录,对提示的文件赋予可执行权限或读写 ...
- SH Script Grammar
http://linux.about.com/library/cmd/blcmdl1_sh.htm http://pubs.opengroup.org/onlinepubs/9699919799/ut ...
随机推荐
- 如何成为python高手
本文是从 How to become a proficient Python programmer 这篇文章翻译而来. 这篇文章主要是对我收集的一些文章的摘要.因为已经有很多比我有才华的人写出了大量关 ...
- node.js Websocket消息推送---GoEasy
Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ...
- oracle信息统计
优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN:列统计: --列中唯一值的数量(NDV),NULL值的数量,数据分 ...
- 为windows应用程序提供托盘图标
1>包含头文件 #include "Shellapi.h" 2>相关结构体和函数: NOTIFYICONDATA WINSHELLAPI BOOL ...
- C++ 开篇
C++ 程序员历练之路 1.C++ primer 2.C++程序设计语言 C++之父的作品 3.C++标准库 STL 4.TCP/IP协议详解 共3卷 5.Oracle数据库和MySQl数据库的学习 ...
- cocos2d-x 帧循环不严谨造成场景切换卡顿
最近在用cocos2d-x做引导界面,2dx版本是2.2.3,场景切换加上了效果,所有资源都已经使用texturepacker打包预加载,但是在实际运行调试中,场景切换相当卡顿. 各种纠结后,无意中将 ...
- kali linux 安装nvidia
开始安装之前需要说明一下几点: 1.安装闭源显卡驱动有一定风险,比如黑屏或者无法进入图形界面什么的.如果您很害怕折腾,而且不在Linux系统中玩开源游戏(比如Nexuiz)或看高清电影,默认的nouv ...
- [THINKING IN JAVA]操作符
3 操作符 3.1 static import 可以static import静态方法和变量,这样就可以在不写类名的前提下调用类中的静态方法和变量: package com.chenlei.study ...
- 关于u32中查找和定位最后到bit Number of 1 Bits
题目来源: https://leetcode.com/problems/number-of-1-bits/ 刷leetcode的时候发现了这个题目. 作为常年跑底层嵌入式的我,对于这种题目兴趣还是很浓 ...
- 《Matrix Computation 3rd》读书笔记——第3章 一般线性系统