600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python创建数据库表空间_7.自动化监控多个Oracle表空间

python创建数据库表空间_7.自动化监控多个Oracle表空间

时间:2022-02-25 20:35:51

相关推荐

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表空间已经讲完。下期待定~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。