python巡检oracle,Python巡检Oracle表空间并邮件告警

最近,自学了Python基础,突发奇想,把以前通过shell自定义通过nagios实现Oracle表空间以及ASM以及备份的脚本改进下,首先感叹的是Python脚本看上去确实挺好的,效率还不错。

这是初步版本,姑且定义为v0.1吧,目前具备的功能很简单——得到超过阀值的表空间信息。

#############################################

# python3.5 #

# Any questions contact me ! #

# 2424623044@qq.com #

#############################################

#/usr/bin/python3

#coding=utf-8

import cx_Oracle

jdbc=["system/redhat@10.1.14.67/ora.my.com",] #后面增加完整的数据库JDBC即可

for d in jdbc:

con = cx_Oracle.Connection(d)

cur=con.cursor()

c = cur.execute("""select tablespace_name,

max_gb,

used_gb,

round(100 * used_gb / max_gb) "pct_used(%)"

from (select a.tablespace_name tablespace_name,

round((a.bytes_alloc - nvl(b.bytes_free, 0)) / power(2, 30),

2) used_gb,

round(a.maxbytes / power(2, 30), 2) max_gb

from (select f.tablespace_name,

sum(f.bytes) bytes_alloc,

sum(decode(f.autoextensible,

'YES',

f.maxbytes, 'NO',

f.bytes)) maxbytes

from dba_data_files f

group by tablespace_name) a,

(select f.tablespace_name, sum(f.bytes) bytes_free

from dba_free_space f

group by tablespace_name) b

where a.tablespace_name = b.tablespace_name(+)

union all

select h.tablespace_name tablespace_name,

round(sum(nvl(p.bytes_used, 0)) / power(2, 30), 2) used_gb,

round(sum(decode(f.autoextensible,

'YES',

f.maxbytes,

'NO',

f.bytes)) / power(2, 30),

2) max_gb

from v$temp_space_header h, v$temp_extent_pool p, dba_temp_files f

where p.file_id(+) = h.file_id

and p.tablespace_name(+) = h.tablespace_name

and f.file_id = h.file_id

and f.tablespace_name = h.tablespace_name

group by h.tablespace_name)""")

for x in c:

if x[3]>60: #阀值为60,这里是为了测试

print ("The IP:%s TBS %s usages is %s"%(d.split('@')[1].split('/')[0],x[1],x[3]))

cur.close()

con.close()

#结果:Warning:IP:10.1.14.67 TBS 3 usages is overtarget 99

遗留问题:

1.未封装,数据库JDBC信息透明

2.未多线程化,脚本相对比较低级

3.未加入邮件告警功能

4.未设置异常处理

后续继续优化。

oracle表空间不足:ORA-01653: unable to extend table

问题背景: oracle表空间不足报错是比较常见的故障,尤其是没有对剩余表空间做定期巡检的系统: 报错代码如下: oracle表空间不足错误代码:ORA-01653: unable to extend ...

Oracle表空间,用户,用户授权

一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客“怎样玩转千万级 ...

Oracle表空间管理

oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;              //修改表空间数据文件类型 2.ALT ...

【转】Oracle 表空间与数据文件

--============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...

六分钟学会创建Oracle表空间的步骤

经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...

修改Oracle 表空间名称 tablespace name

修改表空间名称步骤如下: 1. 使用oracle用户登录执行 $sqlplus / as sysdba 2. 执行修改表空间命令如下 SQL> alter tablespace  TEST re ...

interview:about Oracle表空间

Oracle表空间 SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计.Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可 ...

Oracle表空间详解

Oracle表空间详解 1.表空间的分类 Oracle数据库把表空间分为两类:系统表空间和非系统表空间. 1.1系统表空间指的是数据库系统创建时需要的表空间,这些表空间在数据库创建时自动创建,是每个数 ...

Oracle 表空间扩充

Oracle 表空间扩充 一.现场环境: (1)操作系统:AIX (2)数据库:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - ...

随机推荐

给大一的学弟学妹们培训java web的后台开发讨论班计划

蓝旭工作室5月大一讨论班课程计划   课时 讨论班性质 讨论班名称 主要内容 主讲人   第一讲 先导课 后台开发工具的使用与MySQL数据库基础 后台开发工具的基本使用方法与工程的创建,MySQL数 ...

用 BigDump 工具导入超大 MySQL 数据库备份文件

用 BigDump 工具导入超大 MySQL 数据库备份文件  创建于 2010-07-01, 周四 00:00  作者 白建鹏 在这篇文章中, ...

chgrp、chown、chmod命令

讲解内容: 权限代号的含义如下: r:读写目录或文件的权限    read w :写入目录或文件的权限  write x :执行目录或文件的权限 -:删除目录或文件的权限 s:特殊权限,更改目录或文件 ...

PuTTY 'modmul()' 函数缓冲区下溢漏洞(CVE-2013-4206)

漏洞版本: PuTTY 0.52 - 0.63 漏洞描述: BUGTRAQ ID: 61645 CVE(CAN) ID: CVE-2013-4206 PuTTY是Windows和Unix平台上的PuT ...

HTML5 autocomplete属性、表单自动完成

autocomplete属性 1.定义autocomplete属性规范表单是否启用自动完成功能.自动完成允许浏览器对字段的输入,是基于之前输入的值.2.应用范围autocomplete使用

laravel5.2之logout注销账号无效

问题描述:laravel5.2的框架,使用框架auth用户认证后,进行账号注销退出的时候,无法实现. 只有清除浏览器缓存,才能实现账号退出. 解决办法: 改变路由 Route::get('auth/l ...

UVa 11461 - Square Numbers【数学,暴力】

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

scrapy中 Mongo的存储

import pymongo MONGO_HOST = 'localhost' MONGO_PORT = 27017 MONGO_DB = 'today' MONGO_COLL = 'mm' clas ...

[Swift]LeetCode454. 四数相加 II | 4Sum II

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l)there are such th ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值