ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 4.Linux monitor tablespace usage

4.Linux monitor tablespace usage

原创 Linux操作系统 作者:tolilong 时间:2016-03-01 22:50:58 0 删除 编辑
1.create database link
先赋予create database link的权限
SQL> grant create database link to mon;


Grant succeeded.


SQL> create database link yangxu connect to system identified by xxxxx_123 using 'yangxu';


Database link created.


2.create table
SQL> create table mon_tablespace(
  2  dbid varchar2(20),
  3  dbname varchar2(20),
  4  tablespace_name varchar2(24),
  5  total_size int,         
  6  free_size int,
  7  use_size int,
  8  usage number(5,2),
  9  mon_date date
  10  );


Table created




3.create view
查询相关信息
SQL> grant create view to mon;


Grant succeeded.


SQL> create view v_mon_tablespace
  2  as
  3  select 
  4  (select dbid from v$database) dbid,
  5  (select name from v$database) dbname,
  6  x.tablespace_name,y.bytes total_size,x.bytes free_size,(y.bytes-x.bytes) use_size,round((y.bytes-x.bytes)/y.bytes,4)*100 usage,
  7  sysdate as mon_date
  8  from 
  9  (select tablespace_name,sum(bytes) bytes from dba_free_space group by tablespace_name) x,
 10  (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) y
 11  where x.tablespace_name=y.tablespace_name
 12  order by  7 desc;




4.Shell script
[mon@oracle6 source]$ cat mon_tablespace 
#!/bin/bash
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=xxxxxdb
DATETIME=`date +"%Y/%m/%d %H:%M:%S"`


$ORACLE_HOME/bin/sqlplus -s mon/mon << EOF >> /home/mon/log/mon_tablespace.log
insert into mon_tablespace select * from v_mon_tablespace;
commit;
exit;
EOF


STRS="topaz yangxu standby abcd"
for STR in $STRS
do
$ORACLE_HOME/bin/sqlplus -s mon/mon << EOF >> /home/mon/log/mon_tablespace.log
insert into mon_tablespace
select 
(select dbid from v\$database@$STR) dbid,
(select name from v\$database@$STR) dbname,
x.tablespace_name,y.bytes total_size,x.bytes free_size,(y.bytes-x.bytes) use_size,round((y.bytes-x.bytes)/y.bytes,4)*100 usage,
sysdate  mon_date
from 
(select tablespace_name,sum(bytes) bytes from dba_free_space@$STR group by tablespace_name) x,
(select tablespace_name,sum(bytes) bytes from dba_data_files@$STR group by tablespace_name) y
where x.tablespace_name=y.tablespace_name
order by  7 desc;
commit;
exit
EOF
  #echo "STR:$STR"
done


5.crontab定时任务
[mon@oracle6 source]$ crontab -l
55 7,16 * * * /home/mon/source/mon_tablespace > /dev/null 2>&1

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24237320/viewspace-2021925/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-13

  • 博文量
    406
  • 访问量
    1009851