Chinaunix首页 | 论坛 | 博客
  • 博客访问: 220752
  • 博文数量: 49
  • 博客积分: 1785
  • 博客等级: 上尉
  • 技术积分: 565
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-01 10:30
文章分类

全部博文(49)

文章存档

2013年(2)

2012年(7)

2011年(11)

2010年(6)

2009年(23)

我的朋友

分类:

2009-07-21 08:48:47

生产环境配置了statspack,每半小时进行一个快照收集,时间长了会积累很多的快照,需要定期删除,下面的脚本是保留两周的快照信息,之前的都删除
 
#!/usr/bin/sh
. /home/db/oracle/.profile
snap_count=`sqlplus -s perfstat/perfstat <        set feedback off;
        set pagesize 0;
        select count(*) from stats\\$snapshot;
EOF
`
if [ "${snap_count}" -gt "700" ]    ---- 保留700个快照,大概两周
        then
                max_snap=`sqlplus -s perfstat/perfstat << EOF
                set feedback off;
                set pagesize 0;
                select max(snap_id) from stats\\$snapshot;
                exit;
                EOF
                `
sqlplus -s perfstat/perfstat << EOF
        delete from stats\$snapshot where snap_id < ${max_snap} - 700;
        commit;
        exit;
EOF
fi
if [ $? != 0 ]
        then
        echo "`date +%y%m%d` Delete failed"
        else
        echo "`date +%y%m%d` Delete successful!"
fi
阅读(659) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~