天天看點

使用python登入pgsql,實作監控PostgreSQL

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()

#這個例程擷取所有查詢結果(剩餘)行,傳回一個清單。空行時則傳回空清單。