前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Python运维]使用cx_Oracle连接Oracle(高级篇)

[Python运维]使用cx_Oracle连接Oracle(高级篇)

作者头像
bsbforever
发布2020-08-19 14:10:26
9990
发布2020-08-19 14:10:26
举报
文章被收录于专栏:时悦的学习笔记

这个专题讲解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

代码语言:javascript
复制
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数据库供日后分析

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档