oracle数据库维护-巡检脚本

###################################crontab.cr######################################
crontab -e
0 5,16 * * * ksh /orcl/oracle/oraclecheck/checkdb.sh
###################################checkdb.sh######################################
./export/home/oracle1/.profile
hour=`date +'%y.%m.%d.%H00.dat'`
hostname=`hostname`
ipaddr="192.168.1.1"
sid=$ORACLE_SID
/orcl/oracle/oraclecheck/oracle10g_check.sh >> /orcl/oracle/oraclecheck/checkresult/${hostname}_${ipaddr}_${sid}_$hour
FTP_SERVER="10.2.7.5 2121"
FTP_USER=day
FTP_PASS=PASSW
FTP_DIR=OracleCheck

FTP_RESPONSE=`ftp -n -v<<EOF 2>&1
open $FTP_SERVER
user $FTP_USER $FTP_PASS
lcd /orcl/oracle/oraclecheck/checkresult
put ${hostname}_${ipaddr}_${sid}_$hour
bye
EOF`
#################################oracle10g_check.sh####################################
df -h
du -sh *
sar 1 5
vmstat 1 5
echo "Monitoring dir size"

cd /orcl/oracle/admin/orcl/adump

rm orcl_*.aud
cd /orcl/oracle/diag/rdbms/tjorcl/tjorcl
du -sh *
cd /orcl/oracle/diag/tnslsnr/tjwgytm8k1d4/listener_tjorcl/trace
echo "du -sh *"
du -sh *
cd $ORACLE_BASE/admin
cd /orcl/oracle/diag/rdbms/tjorcl/tjorcl/trace
du -sh alert_$ORACLE_SID.log
tail -600 alert_$ORACLE_SID.log|grep ORA-
echo "TRC count"
ls -lrt|grep "tjorcl_"|wc -l
sqlplus "/as sysdba" <<EOF
col status format a25
@/orcl/oracle/oraclecheck/oracle10g_check.sql
exit;
EOF

cd /ogg/ggs
ggsci <<eof
info all
info dpe_a
info dpe_b
info dpe_c
exit
eof

############################################ oracle10g_check.sql ##########################
--spool /tmp/teamsun/oracle_check.log
--Oracleʵ̬ 
set linesize 200
--Oracleʵ̬ 
select 'Oracleʵ̬' from dual;
SELECT instance_name,version,startup_time,status FROM v$instance;
--
   select 'Oracle' from dual;
select owner,table_name,index_name,status from dba_indexes where status='UNUSABLE';
select '---PARTITION INDEX STATUS' from dual;
select index_owner,index_name,partition_name,status from dba_ind_partitions where status='UNUSABLE';
--Oracle
         select 'Oracle' from dual;
select 'process message' from dual;
col Para_process for a30
set lines 100
col machine for a20
col client_info for a20
select (select value from v$parameter where name='processes') Para_process,(select count(1) from v$process) P_VALUE FROM DUAL
;
select * from (
select machine,client_info,status,count(1) from v$session where status='INACTIVE' group by machine,client_info,status order
by count(1) desc ) where rownum<11
union all
select * from (
select machine,client_info,status,count(1) from v$session where status='ACTIVE' group by machine,client_info,status order by 
count(1) desc ) where rownum<11;
select 'Event-status' from dual;
set lines 120
col event for a30
select event,count(1) from v$session where wait_class#<>6 group by event order by count(1) asc;
--Oracle
         select 'Oracle' from dual;
set lines 300
col Status format a10
col "Name" format a15
col "Type" format a10
col "Used %" format a10
col "Size (G)" format a15
col "Used (G)" format a15
SELECT d.status "Status",
       d.tablespace_name "Name",
       d.contents "Type",
       d.extent_management "Extent Management",
       TO_CHAR(NVL(a.bytes / 1024 / 1024/1024, 0), '99,999,990.900') "Size (G)",
       TO_CHAR(NVL(a.bytes - NVL(f.bytes, 0), 0) / 1024 / 1024/1024,
               '99999999.999') || '/' ||
       TO_CHAR(NVL(f.bytes / 1024 / 1024/1024, 0), '99999999.999') "Used (G) Free(G)",
       TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0),
               '990.00') "Used %"
  FROM sys.dba_tablespaces d,
       (select tablespace_name, sum(bytes) bytes
          from dba_data_files
         group by tablespace_name) a,
       (select tablespace_name, sum(bytes) bytes
          from dba_free_space 
         group by tablespace_name) f
 WHERE d.tablespace_name = a.tablespace_name(+)
   AND d.tablespace_name = f.tablespace_name(+)
   AND NOT
        (d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY')
UNION ALL
SELECT d.status "Status",
       d.tablespace_name "Name",
       d.contents "Type",
       d.extent_management "Extent Management",
       TO_CHAR(NVL(a.bytes / 1024 / 1024/1024, 0), '99,999,990.900') "Size (G)",
       TO_CHAR(NVL(t.bytes, 0) / 1024 / 1024/1024, '99999999.999') || '/' ||
       TO_CHAR(NVL(a.bytes / 1024 / 1024/1024, 0), '99999999.999') "Used (G)",
       TO_CHAR(NVL(t.bytes / a.bytes * 100, 0), '990.00') "Used %"
  FROM sys.dba_tablespaces d,
       (select tablespace_name, sum(bytes) bytes
          from dba_temp_files
         group by tablespace_name) a,
       (select tablespace_name, sum(bytes_cached) bytes
          from v$temp_extent_pool
         group by tablespace_name) t
 WHERE d.tablespace_name = a.tablespace_name(+)
   AND d.tablespace_name = t.tablespace_name(+)
   AND d.extent_management like 'LOCAL'
   AND d.contents like 'TEMPORARY'
   order by "Used %" desc;
--
   select 'Oracle Schema' from dual;
col username format a15
col account_status format a20
col lock_date format a25
col expiry_date format a25
select username,account_status,lock_date,expiry_date from dba_users where account_status='EXPIRED(GRACE)';
--RMAN  
select 'RMAN' from dual;
col backup_name format a30
col start_time format a20
col elapsed_time format a20
col status format a10
col input_type format a10
col output_device_type format a10
col input_size format a10
col output_size format a10
col output_rate_per_sec format a10
SELECT r.command_id as "backup_name",
       TO_CHAR(r.start_time, 'YYYY-MM-DD HH24:MI:SS') as "start_time",
       r.time_taken_display as "elapsed_time",
       DECODE(r.status,
              'COMPLETED',
              r.status,
              'RUNNING',
              r.status,
              'FAILED',
              r.status,
              r.status) as "status",
       r.input_type as "input_type",
       r.output_device_type as "output_device_type",
       r.input_bytes_display as "input_size",
       r.output_bytes_display as "output_size",
       r.output_bytes_per_sec_display as "output_rate_per_sec"
  FROM (select command_id,
               start_time,
               time_taken_display,
               status,
               input_type,
               output_device_type,
               input_bytes_display,
               output_bytes_display,
               output_bytes_per_sec_display
          from v$rman_backup_job_details
         order by start_time DESC) r
 WHERE to_char(r.start_time, 'yyyymmdd') >
       to_char(sysdate - 2, 'yyyymmdd');
--spool off
bash-3.00$   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值