注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

监控Postgres数据库大小状态  

2012-06-30 15:19:37|  分类: Postgresql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

监控Postgres数据库大小状态

postgresql内置函数 http://www.postgresql.org/docs/current/static/functions-admin.html

Table 9-59. Database Object Size Functions

NameReturn TypeDescription
pg_column_size(any)intNumber of bytes used to store a particular value (possibly compressed)
pg_database_size(oid)bigintDisk space used by the database with the specified OID
pg_database_size(name)bigintDisk space used by the database with the specified name
pg_indexes_size(regclass)bigintTotal disk space used by indexes attached to the specified table
pg_relation_size(relation regclass, fork text)bigintDisk space used by the specified fork ('main', 'fsm' or 'vm') of the specified table or index
pg_relation_size(relation regclass)bigintShorthand for pg_relation_size(..., 'main')
pg_size_pretty(bigint)textConverts a size in bytes into a human-readable format with size units
pg_table_size(regclass)bigintDisk space used by the specified table, excluding indexes (but including TOAST, free space map, and visibility map)
pg_tablespace_size(oid)bigintDisk space used by the tablespace with the specified OID
pg_tablespace_size(name)bigintDisk space used by the tablespace with the specified name
pg_total_relation_size(regclass)bigintTotal disk space used by the specified table, including all indexes and TOAST data


书写Shell脚本,执行postgres内置函数 pg_database_size

#!/usr/bin/expect -f 
set timeout 5 
set cmd [lindex $argv 0] 
set passwd [lindex $argv 1] 
spawn /usr/pgsql-9.1/bin/psql -U hpcadmin -d hpcdb -W  -c "${cmd}"
expect {
         "*assword for user hpcadmin*"
              {
                     send "${passwd}"
                     send "\n"
               }
       }
expect eof


在crontab中添加任务,定时执行

vim /etc/crontab

*/10 *  *  *  *  root /root/run_sql.sh  "select pg_database_size('mydb')" hpcadmin >> /root/table_size.log


重启crond

/etc/init.d/crond restart


其实最好是写一个函数将时间和DB大小存储到一张表里。


当然也可以使用上一篇介绍check_postgres进行监控。


  评论这张
 
阅读(803)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017