阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Python批量统计Oracle数据库的空间使用量

359次阅读
没有评论

共计 2568 个字符,预计需要花费 7 分钟才能阅读完成。

数据库的空间使用情况是好多单位需要关注的,当 Oracle 数据库服务器比较多的时候,手动统计就显得费时费力了,下面编写了 Python 脚本批量统计 Oracle 的表空间总使用量

#! /usr/bin/python
 # -*- coding: UTF-8 -*-
 import cx_Oracle as oracle
 import time
 def nowdate():
 #获取当前时间
        nowdate=time.strftime(“%Y%m%d”,time.localtime())
        return nowdate
 def get_connect(userinfo):
 #获取 Oracle 数据库的登陆信息
  try:
    conn=oracle.connect(userinfo)
    cursor=conn.cursor()
  except Exception as error:
    print(error)
  else:
    return cursor
 def get_sql(filename):
 #获取统计 Oracle 数据库的 sql 语句
    filename=filename
    try:
      with open(filename) as file:
        sql=file.read()
    except FileNotFoundError:
        error=”Sorry,the file ” + filename + ” does not exist.”
        print(error)
    else:
        return sql
 def get_data(sql):
 #获取 Oracle 数据库的表空间使用情况
    cursor.execute(sql)
    data = cursor.fetchall()
    return data
 def get_instance_name():
 #获取 Oracle 数据库实例名字
    cursor.execute(‘select instance_name from v$instance’)
    data = cursor.fetchall()
    cursor.close()
 #    conn.close()
    return data
 def put_data(instance_name,instance_data,nowtime):
 #将得到的数据 insert 到特定的实例的表中, 这里选择的是 202 的实例
  host = “10.29.29.1”
  port = “1521”
  sid = “test209”         
  dsn = oracle.makedsn(host, port, sid)
  conn =oracle.connect(“liuwenhe”, “liuwenhe”, dsn)
  cursor = conn.cursor()
  insert_sql=”insert into liuwenhe.tongji values (‘”+instance_name+”‘,'”+str(instance_data)+”‘,'”+nowtime+”‘)”
  cursor.execute(insert_sql)
  cursor.close()
  conn.commit()
  conn.close()
 if __name__==’__main__’:
    try:
        userinfofile=’userinfo.txt’
        with open(userinfofile) as file:
          userinfos=file.readlines()
          for userinfo in userinfos:
              cursor=get_connect(userinfo)
              instance_name1=get_instance_name()
              instance_name=instance_name1[0][0]
              sql=get_sql(‘select’)
              cursor=get_connect(userinfo)
              instance_data1=get_data(sql)
              instance_data=instance_data1[0][0]
              nowtime=nowdate()
              put_data(instance_name,instance_data,nowtime)
    except Exception as e:
        print (e)

其中统计 Oracle 表空间的的 sql 为(不包含 undo 表空间和临时表空间):

 select

sum(round(used_gb))used_M

  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(+)  and a.tablespace_name!=’UNDOTBS1′  and a.tablespace_name!=’UNDOTBS’  );

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2568字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7804933
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件 130k 的 star 数!让电脑轻松管理安卓手机的神器 大家好,我是星哥。今天给大家安利一款宝...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
Python自学26 – Cookie和Session

Python自学26 – Cookie和Session

Python 自学 26 – Cookie 和 Session 在学习 Web 开发时,Cooki...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...