使用python登录pgsql,实现监控PostgreSQL
如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是免费、开源、强大、且功能丰富的数据库。
MySQL的文档非常丰富,有很多质量不错的免费参考手册、图书与在线文档,还有来自于Oracle和第三方厂商的培训与支持。基于最初的MySQL代码还有更多的数据库可供选择,因为几个核心的MySQL开发者已经发布了MySQL分支。最初的MySQL创建者之一 Michael “Monty” Widenius貌似后悔将MySQL卖给了Sun公司,于是又开发了他自己的MySQL分支MariaDB,它是免费的,基于GPL许可。知名的 MySQL开发者Brian Aker所创建的分支Drizzle对其进行了大量的改写,特别针对多CPU、云、网络应用与高并发进行了优化。
PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。它拥有很长的历史,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。
利用python登入PostgreSQL数据库,可以用来实现zabbix监控PostgreSQL数据库的各项性能指标。
使用python的psycopg2库可以登录PostgreSQL数据库并进行相关操作。
pip install psycopg2 #安装psycopg2模块
1、 psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432")
#这个API打开一个连接到PostgreSQL数据库。如果成功打开数据库时,它返回一个连接对象。
2、 connection.cursor()
#该程序创建一个光标将用于整个数据库使用Python编程。
3、 cursor.execute(sql [, optional parameters])
#此例程执行SQL语句。可被参数化的SQL语句(即占位符,而不是SQL文字)。
4、 curosr.executemany(sql, seq_of_parameters)
#该程序执行SQL命令对所有参数序列或序列中的sql映射。
5、 curosr.callproc(procname[, parameters])
#这个程序执行的存储数据库程序给定的名称。该程序预计为每一个参数,参数的顺序必须包含一个条目。
6、 cursor.rowcount
#这个只读属性,它返回数据库中的行的总数已修改,插入或删除最后 execute*().
7、 connection.commit()
#此方法提交当前事务。如果不调用这个方法,无论做了什么修改,自从上次调用commit()是不可见的,从其他的数据库连接。
8、connection.rollback()
#此方法会回滚任何更改数据库自上次调用commit()方法。
9、connection.close()
#此方法关闭数据库连接。请注意,这并不自动调用commit()。如果你只是关闭数据库连接而不调用commit()方法首先,那么所有更改将会丢失!
10、cursor.fetchone()
#这种方法提取的查询结果集的下一行,返回一个序列,或者无当没有更多的数据是可用的。
11、cursor.fetchmany([size=cursor.arraysize])
#这个例程中取出下一个组的查询结果的行数,返回一个列表。当没有找到记录,返回空列表。该方法试图获取尽可能多的行所显示的大小参数。
12、cursor.fetchall()
#这个例程获取所有查询结果(剩余)行,返回一个列表。空行时则返回空列表。