Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141074
  • 博文数量: 19
  • 博客积分: 1416
  • 博客等级: 上尉
  • 技术积分: 273
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-22 00:49
文章分类

全部博文(19)

文章存档

2010年(4)

2009年(15)

我的朋友

分类: LINUX

2010-03-30 19:36:27

    架设的RRD server上,所有的rrd设定的rra都遵循一个规则,第一个rra存放一周的最详细的数据,第二个存放一个月的数据,6/1进行归档,第三个存放365天的数据,72/1进行归档。
    但是今天,有个兄弟提了个需求过来,需要看到一周前的详细数据,那就是说,我所有的第一个rra都要从一周扩展到至少8天,于是,我做了一个错误的决定……将所有服务器的rrd文件全部删除,然后修改生成rrd的库,重新从数据库获取数据,生成rrd文件……
    过了30分钟,我终于回过神来,为何不用rrdresize呢?这次愚昧了一把,所有数据的重新导入浪费了很长时间,而且历史数据也全部丢弃了……
    将所有rrd文件的第一个rra扩展576个数据节点的shell脚本(因为我的数据是5分钟一个):

for i in `find /opt/rrdfile -name "*.rrd"`
do
    echo "Resizing $i ..."
    /opt/rrdtool/bin/rrdtool resize $i GROW 576
    rm -f $i
    cp resize.rrd $i
done

    半个小时搞定……

# du -sh *
384M    app
12G     host
939M    hostgroup

    12G的数据全部删除,然后rebuild,花了两个小时的时间……哭……

    以后做每件事情之前,都要多想一想,有没有别的办法可以达到目的?如果有的话,几种方法比较起来,每一种方法风险如何,难度如何,影响如何?
    事无大小巨细,方法最重要。
阅读(2805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~