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

Ubuntu服务器上如何监控Oracle数据库

在 Ubuntu 服务器上监控 Oracle 数据库,虽然不像在 Windows 或某些企业 Linux(如 RHEL)那样有现成的 GUI 工具,但你完全可以通过命令行工具、脚本、开源监控平台来实现全面监控,包含:

  • 数据库性能指标(CPU、IO、连接数)

  • 活跃会话、慢查询、锁等待

  • 表空间使用、归档日志增长

  • 实时 SQL 执行状态

  • 告警与邮件通知


一、前提条件

在 Ubuntu 服务器上监控 Oracle,你需要满足以下基本条件:

1. Oracle 数据库已部署好

不管是 Oracle 12c、19c、21c,只要能正常运行即可。

 2. 具备 Oracle 客户端工具(SQL*Plus、Oracle Instant Client)

可以远程连接 Oracle 数据库(即使 Oracle 不安装在 Ubuntu 本机上也可以监控)

安装 Oracle Instant Client(基本版):

sudo apt update
sudo apt install libaio1
wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linux.x64-21.9.0.0.0dbru.zip
unzip instantclient-basiclite-linux.x64-21.9.0.0.0dbru.zip
export LD_LIBRARY_PATH=$PWD/instantclient_21_9

二、命令行方式监控 Oracle(适合技术人员)

你可以使用 SQL*Plus 工具通过 SQL 查询实时监控数据库状态:

示例:查看当前连接数

SELECT COUNT(*) FROM v$session;

查看活跃 SQL

SELECT sql_text FROM v$sql WHERE executions > 1000 ORDER BY executions DESC FETCH FIRST 5 ROWS ONLY;

查询等待事件

SELECT event, COUNT(*) FROM v$session_wait GROUP BY event ORDER BY COUNT(*) DESC;

你可以将这些语句封装成脚本,通过 cron 定时采集、输出日志、触发告警。


三、集成开源监控工具(推荐)

以下工具可直接在 Ubuntu 上部署,对 Oracle 提供专属监控模块:

1. Prometheus + Grafana + Oracle Exporter

Oracle Exporter 是一个社区插件,可以采集 Oracle 性能指标,供 Prometheus 拉取,并在 Grafana 中展示图形化面板。

安装步骤简述:
  1. 安装 Oracle Instant Client + Golang 编译环境

  2. 获取 exporter 源码

    git clone https://github.com/iamseth/oracledb_exporter.git
    cd oracledb_exporter
    go build
    
  3. 设置连接配置: 编辑 config.yml,添加用户名、密码、服务名等。

  4. 运行 exporter,并配置 Prometheus 抓取端口

  5. 在 Grafana 导入 Oracle 监控仪表板(已有很多开源模板)。优点:可视化好,自动采集,支持报警


2. Zabbix + Oracle Template

如果你偏向企业级监控,Zabbix 是首选。Zabbix 有专用 Oracle 模板支持以下功能:

  • 表空间使用率

  • SGA/PGA 命中率

  • 用户连接数

  • 活跃事务数

  • DML 语句变化趋势

步骤:
  1. 安装 Zabbix Server、Zabbix Agent(或通过 Proxy)

  2. 使用 Oracle 模板(社区或官方)

  3. 在 Agent 主机配置 .tnsnames.ora 文件,保持能连接 Oracle

  4. 通过自定义 item + SQL 查询方式抓取监控数据。优点:成熟稳定,支持历史趋势、告警规则灵活


四、监控内容建议清单

监控项说明
会话数当前连接数、活跃数、锁定数
SQL执行长时间运行SQL、TOP SQL
表空间剩余空间、增长率
等待事件哪些操作在等待?
重做日志是否存在归档拥堵
PGA/SGA命中率代表内存使用效率
锁与死锁查看是否存在锁等待或死锁现象
CPU/IO负载与数据库并发密切相关

相关文章:

  • JCP官方定义的Java技术体系组成部分详解
  • 操作系统---经典同步问题
  • 高功率激光输出稳定性不足?OAS 光学软件来攻克
  • 【Python网络爬虫实战指南】从数据采集到反反爬策略
  • ActiveMQ 快速上手:安装配置与基础通信实践(一)
  • HTB - BigBang靶机记录
  • 【MySQL数据库】表的增删改查
  • 雪花算法生成int64,在前端js的精度问题
  • PostgreSQL的dblink扩展模块使用方法
  • Java并发编程|CompletableFuture原理与实战:从链式操作到异步编排
  • 数据库监控 | MongoDB监控全解析
  • vue3实现v-directive;vue3实现v-指令;v-directive不触发
  • 【AI平台】n8n入门1:详细介绍n8n的多种安装方式(含docer图形化安装n8n)
  • 武汉火影数字虚拟展厅制作:打破时空限制的数字化盛宴
  • 【高频考点精讲】JavaScript中的组合模式:从树形结构到组件嵌套实战
  • 基于 Spring Boot 的银行柜台管理系统设计与实现(源码+文档+部署讲解)
  • AD16如何设置合适的PCB板框
  • 常见的限流算法
  • 两段文本比对,高亮出差异部分
  • 最新AI-Python机器学习与深度学习技术在植被参数反演中的核心技术应用
  • 新华视点丨广西抗旱一线调查
  • 现场观察·国防部记者会|美将举行大演习“应对中国”,备战太平洋引发关注
  • 云南富源回应“岔河水库死鱼”事件: 初步研判与水体缺氧有关
  • 外交部:中方在黄海暂定海域建造渔业养殖设施,同中韩海域划界无关
  • 出发!陈冬、陈中瑞、王杰三名航天员领命出征
  • 视频丨习近平同阿塞拜疆总统会谈:两国建立全面战略伙伴关系