这个专题讲解Python相关方面的内容,首先是运维方面,例如数据库,Linux等,后续会有Web,爬虫等。
关于Python
Python可以说是目前运维领域最火的一门语言
在看文章之前最好对Python的语法及数据结构有所了解,具体可在网上搜索Python简明教程或廖雪峰的Python教程观看,暂时不需要了解其高级功能。
这部分会和Oracle awr 报告穿插着写
上节讲了如何利用Python连接Oracle数据库并执行SQL语句
这节的内容较多,分别是:
1.使用sys用户连接Oracle数据库 2.通过函数执行SQL语句 3.通过读取文件内的内容来执行SQL语句 4.使用Python 捕获程序异常
使用cx_Oracle获取oracle表空间的使用率
我们新建一个文件,命名为tablespace.sql,该文件的内容是获取表空间的使用率:
文件路径为:/home/oracle/script/tablespace.sql
select a.tablespace_name,a.bytes/1024/ 1024 "Sum MB",(a.bytes-b.bytes)/1024 /1024 "used MB",b.bytes/ 1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100 ,2) "percent_used"
from(select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name, sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
接下来我们上代码
代码较简单就不放源码了,大家自行手工输入
运行结果
首先我们测试下正确的输出结构
可以看到已经获取到了各个表空间的名称
然后我们故意输入给出错误的连接条件看是否可以捕获异常
我们分别输错密码和tns名称
可以看出已经捕获成功
我们是利用fetchall方法来获取数据的,返回的是一个列表(list),我们可以使用i[0]的方式只取感兴趣的列,如下图我们只获取表空间的名称
只需将代码最后一行改成:print (i[0])
至此cx_Oracle模块连接oracle(高级篇)已经讲完,下期介绍一些实用的日常运维方面的命令。
后续会讲述如何将得到的数据存入MySQL数据库供日后分析