自动化监控多个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表空间相关推荐

  1. Python3.x的mysqlclient的安装、Python操作mysql,python连接MySQL数据库,python创建数据库表,带有事务的操作,CRUD

    1.数据库操作 1.1准备工作: 1.安装一个mysql数据库软件 2.创建一个数据库,test 3.在python的环境安装一个模块: MySQLdb 1.2 安装mysql的连接包 第一种:工具安 ...

  2. oracle表分区四种方式的含义,Oracle表分区详细说明

    Oracle表分区 自从oracle8i 开始可以把一个表分割为多个小的部分,这样可以对oracle的性能优化带来很大的好处~ 例如:改善表的查询性能,更加容易管理表数据,备份和恢复操作更方便 在or ...

  3. python创建数据库表_Python 操作数据库(1)SQL基础

    一.数据库 关系型数据库 常见的关系型数据库:SQL Server.MySql.MariaDB.SQLite.ORACLE.PostgreSQL等 非关系型数据库 常见的非关系型数据看:MongoDB ...

  4. python创建数据库并对表结构备份_Python 数据库表操作之多表结构的创建与分析...

    一.多表结构的创建与分析 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在 ...

  5. python创建数据库的sql语句_对python插入数据库和生成插入sql的示例讲解

    如下所示: #-*- encoding:utf-8 -*- import csv import sys,os import pymysql def read_csv(filename): ''' 读取 ...

  6. navcat设置oracle表主键自增_初识 Oracle 表空间设置与管理

    本文出自头条号老王谈运维,转载请说明出处. 前言 表空间是 Oracle 特有的一种逻辑结构,是管理和组织 Oracle 数据文件一种方式,一个Oracle 数据库能够有一个或多个表空间,而一个表空间 ...

  7. oracle表分区--亿级的数据在oracle表中存储,表分区的一个真实应用场景

    我从来没有操作处理过如此大量的真实数据. 我的一个任务,通过kafka流式处理消息框架 消费 整个城市 其中一种手机网络的信号接入信息. 千万级人口,只要有人使用手机网络,就会产生一条数据,可想而知, ...

  8. python创建数据库表空间_Python 操作 mysql

    """python 操作mysql时,默认开启事务,必须在增删改之后 提交数据,才会真正对数据库发生变化,默认默认是回滚 提交数据: conn.commit() 回滚数据 ...

  9. 用python创建数据库监控平台(3)安装Python3.5

    本系列文章思路来自微信公众号:宅必备 1.解压包 [root@monit Python]# tar -xzf Python-3.5.2.tgz 2移动 [root@monit Python]# mv ...

最新文章

  1. layui如何存在多个弹窗_layui常见弹窗使用方法
  2. 美式期权定价python_【优质好课】Python量化期权实战应用
  3. 关于Firefox在Win8下界面显示错乱的解决方法
  4. python能用来做什么有意思的事情-用 Python 自动化办公能做到哪些有趣或有用的事情?...
  5. html5视频播放怎么结束,html5设置或返回音频/视频是否应该在结束时再次播放的属性loop...
  6. 1.6.2 多表插入
  7. c语言设计通讯录管理程序,C语言程序的设计学生通讯录管理系统方案.docx
  8. jsp 页面中文乱码解决(笔记)
  9. 读书笔记_Effective_C++_条款二:尽量以const, enum, inline替换#define
  10. paip.提升开发效率-----vs2010 快速查找文件
  11. 关于:在 Office 2021 中自定义模板
  12. qt plugins 插件框架
  13. ABAP--新语法--New Keyword in ABAP--第四天--CORRESPONDING MOVE-CORRESPONDING(DEEP) REDUCE
  14. 什么是360度全景图,360度全景图有什么用
  15. 现代版的———项链 :(  转
  16. android实现多画面播放,Android实现炫酷播放效果
  17. 字符串ASCII码的常用方法
  18. aliyun短信及短信模板操作
  19. Linux系统编程 50 -stat和stat函数 穿透和非穿透
  20. vue各类轮播图大全

热门文章

  1. android 页面过渡动画,Activity过渡动画的实现方法
  2. Android实现侧滑抽屉菜单,android studio自带的抽屉侧滑菜单怎么设置点击事件?还头一回遇到,汗!...
  3. [SDOI2013]森林(树上主席树+启发式合并+lca)
  4. 2019牛客第八场A All-one Matrices(单调栈)
  5. 树莓派的linux系统安装,树莓派安装Linux操作系统
  6. 为什么要学python-为什么要学 Python?
  7. the pdf expert for android v2.6.0,PDF Expert
  8. 什么叫pin脚的pad_为什么特小尺寸液晶屏价格比较高
  9. codeforce 266c Below the Diagonal 矩阵变换 (思维题)
  10. C++ #define详解