当前位置: 首页 > news >正文

数据库监控功能-oracle

实现数据库监控功能

定时任务

每天跑两次 上班时间 下班时间 

表 实体


public class DatabaseMonitor {private String id;// 类型 0:磁盘监控 1:数据库监控private Integer type;// ip地址private String ip;// 磁盘监控时为盘符路径,数据库监控时为表空间名称private String subject;// 空间大小private String totalSize;// 使用大小private String usedSize;// 剩余大小private String availSize;// 使用率private String usageRate;// 最大表空间 数据库监控使用的字段private String maxSize;// 检测时间private Date gmtCreate;}

查询表空间使用大小sql

 SELECT df.tablespace_name                  AS "tableSpaceName",df.totalspace                       AS "total",(df.totalspace - tu.totalusedspace) AS "avail",tu.totalusedspace                   AS "used",df.maxsize                          AS "max"FROM (SELECT tablespace_name,ROUND(SUM(bytes) / 1048576)                     TotalSpace,ROUND(SUM(GREATEST(bytes, maxbytes)) / 1048576) MaxSizeFROM dba_data_filesGROUP BY tablespace_name) df,(SELECT ROUND(SUM(bytes) / 1048576) totalusedspace,tablespace_nameFROM dba_segmentsGROUP BY tablespace_name) tuWHERE df.tablespace_name = tu.tablespace_name;

//定时任务 

 //查询表空间使用
 List<PageData> tableSpace = DatabaseMonitorMapper.getTableSpace();
        Date date = new Date();
        List<DatabaseMonitor> listDatabase = new ArrayList<>();
        DatabaseMonitor ddm;
        for (PageData pageData : tableSpace) {
            ddm = new DatabaseMonitor();
            ddm.setId(UUIDGenerator.getUUID());
            ddm.setType(1);
            ddm.setIp(databaseIp);
            ddm.setGmtCreate(date);
            ddm.setSubject(pageData.getString("tableSpaceName"));
            String total = mbConvertGb(objectConvertInt(pageData.get("total")));
            ddm.setTotalSize(total);
            String used = mbConvertGb(objectConvertInt(pageData.get("used")));
            ddm.setUsedSize(used);
            String avail = mbConvertGb(objectConvertInt(pageData.get("avail")));
            ddm.setAvailSize(avail);
            String usageRate = String.format("%.2f%%", (objectConvertInt(pageData.get("used")) / (double) objectConvertInt(pageData.get("total"))) * 100);
            ddm.setUsageRate(usageRate);
            String max = mbConvertGb(objectConvertInt(pageData.get("max")));
            ddm.setMaxSize(max);

            listDatabase.add(ddm);
        }
 // 入库

http://www.xdnf.cn/news/155071.html

相关文章:

  • 【多线程】五、线程同步 条件变量
  • Unity之基于MVC的UI框架-含案例
  • mac笔记本安装brew、nvm、git等完整版
  • C#里使用libxl来创建EXCEL文件然后发送到网络
  • 前端节流、防抖函数
  • MobX 在 React 中的使用:状态管理的新选择
  • CS001-50-depth
  • JFLAP SOFTWARE 编译原理用(自动机绘图)
  • 4月26日星期六今日早报简报微语报早读
  • RabbitMQ 四种交换机(Direct、Topic、Fanout、Headers)详解
  • 代码随想录算法训练营Day35
  • 3、初识RabbitMQ
  • Java学习手册:常用的内置工具类包
  • 35-疫苗预约管理系统(微服务)
  • Jetpack Room 使用详解(下)
  • chrony服务器(1)
  • 我是如何用AI编程制作一个AI表情包生成的小程序
  • 【AI论文】DreamID:基于高保真和快速扩散的三元组ID组学习的人脸交换
  • Ragflow新建的知识库完成后刷新却没有显示,报错MethodNotAllowed: 405 Method Not Allowed:
  • 1软考系统架构设计师:第一章系统架构概述 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析
  • TC3xx学习笔记-UCB BMHD使用详解(一)
  • 多个请求并行改造
  • 使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分
  • Ubuntu20.04部署Dify(Docker方式)
  • 顶点着色器和片元着色器染色+表面体着色器染色
  • 深入理解算力:从普通电脑到宏观计算世界
  • MySQL长事务的隐患:深入剖析与解决方案
  • 【Castle-X机器人】二、智能导览模块安装与调试
  • 【Castle-X机器人】四、智能机械臂安装与调试
  • 【C++】stack、queue和priority_queue的模拟实现