python创建数据库表空间_7.自动化监控多个Oracle表空间
自動化監控多個Oracle表空間
上節講了如何利用Python自動監控Oracle表空間使用率
這節會利用一個循環一次性查詢多個表空間使用率
環境設置
Linux系統為 Centos 6.8
Python環境為 Python 3.6
orale信息文件
其次建立一個新的文本文件存放多個數據庫的信息
注意最后一行不能是空白行
文件名稱:/home/oracle/script/oracle_list.txt
10.65.1.120 sys sys_password 1521 dctest
10.60.14.70 sys sys_password 1527 np1
最終程序
文件名稱:/home/oracle/script/checktablespace_multiple.py
#!/usr/bin/python
#coding=utf8
import cx_Oracle
from sendmail_phone import *
def oraclesql(cursor):
#這里我們使用python的open方法打開文件并讀取文件內容作為SQL語句執行
#可使用絕對路徑或相對路徑
fp=open('/home/oracle/script/tablespace.sql','r')
#fp=open('./tablespace.sql','r')
fp1=fp.read()
cursor.execute(fp1)
data=cursor.fetchall()
return data
if __name__=="__main__":
mailcontent=[]
#這里打開oracle_list文件并讀取其中內容
file1=open(r"/home/oracle/script/oracle_list.txt")
oracle_list=file1.readlines()
file1.close()
#循環讀取每行的內容并使用split函數獲取到相關數據庫信息
for i in oracle_list:
info=i.split()
ipaddress=info[0].strip()
username=info[1].strip()
password=info[2].strip()
port=info[3].strip()
tnsname=info[4].strip()
try:
db = cx_Oracle.connect(username+'/'+password+'@'+ipaddress+':'+port+'/'+tnsname ,mode=cx_Oracle.SYSDBA)
except Exception as e:
content= (tnsname+' is Unreachable,The reason is '+ str(e)).strip()
mailcontent.append(content)
else:
cursor = db.cursor()
data=oraclesql(cursor)
cursor.close()
db.close()
for i in data:
usage=int(i[4])
if usage>=90:
tablespace=i[0]
mailcontent.append('Be Careful tablespace '+tablespace+' on '+tnsname+' is '+str(usage)+'% Used!')
#這里我們判斷mailcontent長度是否為0,不為0說明有超過90%的表空間,然后我們發送郵件
if len(mailcontent) != 0:
content='\n'.join(mailcontent)
send_mail(to_list,' Tablespace usage warnning',content)
運行結果
當有表空間超過閾值即可收到短信
源碼位置
代碼放在我的github主頁,歡迎大家查看
至此自動化監控Oracle表空間已經講完。下期待定~
總結
以上是生活随笔為你收集整理的python创建数据库表空间_7.自动化监控多个Oracle表空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频号原创内容播放量增350%,微信搜一
- 下一篇: python采用编译型方式执行_Pyth