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

【Prometheus-OracleDB Exporter安装配置指南,开机自启】

目录

    • 1. 安装Oracle Instant Client
      • 1.1 解压安装包
      • 1.2 创建运行时链接
    • 2. 环境配置
      • 2.1 设置环境变量
      • 2.2 验证配置
    • 3. 安装Oracle DB Exporter
      • 3.1 创建工作目录
      • 3.2 解压安装包
      • 3.3 添加执行权限
    • 4. 数据库监控配置
      • 4.1 创建监控用户(切换到Oracle所属用户)
    • 5. Exporter配置
      • 5.1 配置文件(切回root用户)
      • 5.2 运行参数
    • 6. 服务管理
      • 6.1 创建Systemd服务
      • 6.2 服务控制
      • 6.3 集成到 Prometheu
    • 7. 验证部署
    • 8. 故障排除(STARTUP报错ORA-01102: cannot mount database in EXCLUSIVE mode)
      • 8.1 强制清理进程
      • 8.2 清理所有 Oracle 相关的共享内
      • 8.3 删除锁文件
      • 8.4 数据库重启
    • 8. Grafana展现

1. 安装Oracle Instant Client

1.1 解压安装包

sudo unzip instantclient-basic-linux.x64-19.19.0.0.0dbru.zip -d /usr/local/oracle19c
sudo unzip instantclient-sdk-linux.x64-19.19.0.0.0dbru.zip -d /usr/local/oracle19c

1.2 创建运行时链接

ln -s /usr/local/oracle19c/instantclient_19_27/libclntsh.so.19.1 \/usr/local/oracle19c/instantclient_19_27/libclntsh.so

2. 环境配置

2.1 设置环境变量

echo 'export LD_LIBRARY_PATH=/usr/local/oracle19c/instantclient_19_27:$LD_LIBRARY_PATH' \| sudo tee -a /etc/profile.d/oracle.sh
source /etc/profile.d/oracle.sh

2.2 验证配置

echo $LD_LIBRARY_PATH

在这里插入图片描述

3. 安装Oracle DB Exporter

3.1 创建工作目录

mkdir -p /usr/local/oracledb_exporter

3.2 解压安装包

tar -zxvf oracledb_exporter.0.3.0rc1-ora18.5.linux-amd64.tar.gz \-C /usr/local/oracledb_exporter --strip-components=1

3.3 添加执行权限

chmod +x /usr/local/oracledb_exporter/oracledb_exporter

4. 数据库监控配置

4.1 创建监控用户(切换到Oracle所属用户)

su - oracle
sqlplus / as sysdba
-- 创建用户
CREATE USER monitor IDENTIFIED BY 123456;-- 系统权限授予
GRANT CONNECT, CREATE SESSION TO monitor;
GRANT SELECT ANY DICTIONARY TO monitor;-- 对象权限授予
GRANT SELECT ON v_$sysstat TO monitor;
GRANT SELECT ON v_$database TO monitor;
GRANT SELECT ON v_$session TO monitor;
GRANT SELECT ON v_$resource_limit TO monitor;
GRANT SELECT ON v_$waitclassmetric TO monitor;
GRANT SELECT ON v_$process TO monitor;
GRANT SELECT ON dba_tablespaces TO monitor;
GRANT SELECT ON dba_data_files TO monitor;
GRANT SELECT ON v_$asm_diskgroup TO monitor;-- 补充SYS模式下的视图权限
GRANT SELECT ON SYS.V_$INSTANCE TO monitor;
GRANT SELECT ON SYS.V_$TABLESPACE TO monitor;
GRANT SELECT ON SYS.V_$DATAFILE TO monitor;

5. Exporter配置

5.1 配置文件(切回root用户)

vi /usr/local/oracledb_exporter/config.yml
default:user: monitorpassword: 123456service: ORCLhost: 192.168.15.131port: 1521disable_connection_pool: falsemax_open_connections: 10metric_path: /metrics

5.2 运行参数

export DATA_SOURCE_NAME=monitor/123456@//192.168.15.131:1521/ORCL
export DEFAULT_METRICS=/usr/local/oracledb_exporter/default-metrics.toml
export WEB_LISTEN_ADDRESS=:9161cd /usr/local/oracledb_exporter
# 常规方式启动
./oracledb_exporter --config=config.yml

6. 服务管理

6.1 创建Systemd服务

vi /etc/systemd/system/oracledb_exporter.service
[Unit]
Description=Oracle DB Exporter
After=network.target[Service]
User=root
Environment="DATA_SOURCE_NAME=monitor/123456@//192.168.15.131:1521/ORCL"
Environment="LD_LIBRARY_PATH=/usr/local/oracle19c/instantclient_19_27"
WorkingDirectory=/usr/local/oracledb_exporter
ExecStart=/usr/local/oracledb_exporter/oracledb_exporter
Restart=always[Install]
WantedBy=multi-user.target

6.2 服务控制

systemctl daemon-reload
systemctl start oracledb_exporter
systemctl enable oracledb_exporter
systemctl status oracledb_exporter

在这里插入图片描述

6.3 集成到 Prometheu

vim /usr/local/prometheus/prometheus.yml
scrape_configs:- job_name: 'oracle'static_configs:- targets: ['192.168.15.131:9161']  # 替换为实际 IP 和端口

7. 验证部署

访问http://192.168.15.131:9161/metrics

在这里插入图片描述

8. 故障排除(STARTUP报错ORA-01102: cannot mount database in EXCLUSIVE mode)

SQL> STARTUP
ORACLE instance started.Total System Global Area 1191181696 bytes
Fixed Size                  8895872 bytes
Variable Size             335544320 bytes
Database Buffers          838860800 bytes
Redo Buffers                7880704 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

8.1 强制清理进程

ps -ef | grep ora_ | grep -v grep | awk '{print $2}' | xargs kill -9
# 验证是否还有残留进程
ps -ef | grep ora_ | grep -v grep

8.2 清理所有 Oracle 相关的共享内

ipcs -m | grep oracle | awk '{print $2}' | xargs -n1 ipcrm -m
rm -f $ORACLE_HOME/dbs/lk*

8.3 删除锁文件

# 定位锁文件(通常位于 $ORACLE_HOME/dbs)
ls -l $ORACLE_HOME/dbs/lk*# 删除锁文件(确保数据库已关闭)
rm -f $ORACLE_HOME/dbs/lk*

8.4 数据库重启

SHUTDOWN ABORT;
STARTUP FORCE;

正常输出:
ORACLE instance started.

Total System Global Area 1191181696 bytes
Fixed Size 8895872 bytes
Variable Size 335544320 bytes
Database Buffers 838860800 bytes
Redo Buffers 7880704 bytes
Database mounted.
Database opened.

如果仍报错 ORA-01102,尝试以下命令:
SQL> STARTUP FORCE;
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE OPEN;

8. Grafana展现

在这里插入图片描述

http://www.dtcms.com/a/165524.html

相关文章:

  • JMeter WebSocket 压测详细步骤(支持 ws+proto 协议)
  • intellij idea最新版git开启Local Changes
  • C/C++核心机制深度解析:指针、结构体与动态内存管理(面试精要)
  • 408考研逐题详解:2009年第5题
  • 基于C#开发的适合Windows开源文件管理器
  • OpenCV实战教程:从零开始的计算机视觉之旅
  • 定时任务xxl-job国产化改造,适配磐维数据库(PostgreSQL)
  • 服务器丢包率测试保姆级教程:从Ping到网络打流仪实战
  • 使用 Vue 开发 VS Code 插件前端页面(上)
  • 如何使用CAN分析仪验证MCU CAN错误机制
  • 基于vue框架的电影院网上售票系统49iu6(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • kotlin中Triple的作用
  • django_rq
  • CRMEB-PRO系统定时任务扩展开发指南
  • c++漏缺: stl等 初始化 用法 sort
  • 聚焦数字中国|AI赋能与安全守护:Coremail引领邮件办公智能化转型
  • spring 面试题
  • 对于C++中的STL,push_back()和emplace_back()有什么区别?
  • SQL Server连接异常 证书链是由不受信任的颁发机构颁发的
  • 融合AI助力医疗提效,华奥系医务系统助力医院数字化升级!
  • 出现Invalid bound statement (not found)问题的原因可能有哪些
  • 关于PyCharm新版本出现大量空的`jcef_xx.log`文件的解决方法
  • Copilot重磅更新:引用文件夹创建Word文档
  • .NET Core 数据库ORM框架用法简述
  • 在企业微信中,回调地址 redirect_uri 是允许包含端口号
  • Seata客户端@GlobalTransactional核心源码解析
  • 微信小程序中使用 多线程 Worker
  • 自定义实现elementui的锚点
  • StarRocks Lakehouse 如何重构大数据架构?
  • 腾讯云服务器性能提升全栈指南(2025版)