Oracle-完整指南-数据库-如何极速监控 (oracle闪回恢复数据)
装置性能Oracle
便捷起见,我经常使用启动Oracle,命令如下:
dockerrun-d--nameoracle-p1022:22-p18080:8080-p1521:1521wnameless/oracle-xe-11g-r2
如上命令启动之后,Oracle的监听端口是1521,用户名/明码是system/oracle,数据库SID是xe,要监控Oracle,首先得有账号连下来口头SQL,所以这些衔接消息得记住喽,待会要用。
假设是对既有的Oracle做监控,须要创立账号并分派权限,比如:
--Createthemonitoringuser"cprobe"CREATEUSERcprobeIDENTIFIEDBY<YOUR-PASS>;--Grantthe"cprobe"usertherequiredpermissionsGRANTCONNECTTOcprobe;GRANTSELECTONSYS.GV_$RESOURCE_LIMITtocprobe;GRANTSELECTONSYS.V_$SESSIONtocprobe;GRANTSELECTONSYS.V_$WTCLASSMETRICtocprobe;GRANTSELECTONSYS.GV_$PROCESStocprobe;GRANTSELECTONSYS.GV_$SYSSTATtocprobe;GRANTSELECTONSYS.V_$DATAFILEtocprobe;GRANTSELECTONSYS.V_$ASM_DISKGROUP_STATtocprobe;GRANTSELECTONSYS.V_$SYSTEM_WAIT_CLASStocprobe;GRANTSELECTONSYS.DBA_TABLESPACE_USAGE_METRICStocprobe;GRANTSELECTONSYS.DBA_TABLESPACEStocprobe;GRANTSELECTONSYS.GLOBAL_NAMEtocprobe;
装置Cprobe
Cprobe是一个探针采集器,允许经常出现数据库、两边件的采集,比如MySQL、Redis、MongoDB、Oracle、Kafka、ElasticSearch等,最新版本是v0.7.1,咱们从releases页面下载:
我是arm的,所以下载的是cprobe-v0.7.1-linux-arm64.tar.gz,假设你是x86的,应该下载amd64那个包。假设你从github下载有艰巨,我这里提供一个国际的下载地址:
解紧缩进入对应目录,口头install和start命令即可:
./cprobe-install./cprobe-start./cprobe-status
装置成功。
性能Cprobe采集
首先性能要采集的Oracle的地址,进入刚才cprobe解压出的目录,编辑conf.d/oracledb/main.yaml,修正如下:
global:scrape_interval:15sexternal_labels:cplugin:'oracle'scrape_configs:-job_name:'oracle'static_configs:-targets:-10.99.1.107:1521/xe#ip:port/servicescrape_rule_files:-'link.toml'-'comm.toml'
上方的IP是我的Oracle的IP,你要依据你的环境做调整。这个main.yaml又援用了link.toml和comm.toml,在link.toml中性能认证消息,比如:
[global]username="system"password="oracle"options={}
comm.toml的内容不用动。监控Oracle的原理就是连下来口头一堆SQL,comm.toml中提早帮你预备好了一堆SQL,其实还有cust.toml有更多SQL,看你需求,假设cust.toml中的监控项你也须要,那就把cust.toml也性能到main.yaml中,如下:
global:scrape_interval:15sexternal_labels:cplugin:'oracle'scrape_configs:-job_name:'oracle'static_configs:-targets:-10.99.1.107:1521/xe#ip:port/servicescrape_rule_files:-'link.toml'-'comm.toml'-'cust.toml'
上方咱们测试一下,看看能否真的能够采集到数据:
./cprobe-no-writer-no-httpd-pluginsoracledb
反常来讲,会输入很多目的,相似上方这样:
./cprobe-no-writer-no-httpd-pluginsoracledb2023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/logger/flag.go:12buildversion:0.0.1-2023-12-25-08-39-112023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/logger/flag.go:13command-lineflags2023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/logger/flag.go:20-no-httpd="true"2023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/logger/flag.go:20-no-writer="true"2023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/logger/flag.go:20-plugins="oracledb"2023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/runner/runner.go:25hostname:ulric-flashcat.local2023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/runner/runner.go:26runtime.fd_limits:(soft=61440,hard=unlimited)2023-12-25T10:27:33.868Zinfo/Users/ulric/works/cprobe/lib/runner/runner.go:27runtime.vm_limits:(soft=unlimited,hard=unlimited)>>__name__=oracledb_sessions_valuecplugin=oracleinstance=10.99.1.107:1521/xejob=oraclestatus=ACTIVEtype=BACKGROUND170350005388122.000000>>__name__=oracledb_sessions_valuecplugin=oracleinstance=10.99.1.107:1521/xejob=oraclestatus=ACTIVEtype=USER17035000538811.000000>>__name__=oracledb_resource_current_utilizationcplugin=oracleinstance=10.99.1.107:1521/xejob=oracleresource_name=processes170350005388129.000000>>__name__=oracledb_resource_limit_valuecplugin=oracleinstance=10.99.1.107:1521/xejob=oracleresource_name=processes1703500053881100.000000...
上方的各个参数的含意:
性能Cprobe写入TSDB
监控数据采集到之后,须要写入TSDB,Cprobe在conf.d目录下提供writer.yaml性能文件,把其中writers.url局部改成你自己的时序库的remotewrite地址即可。
性能成功之后,重启Cprobe即可:
./cprobe-restart
writer.yaml的改变须要重启Cprobe能力失效。假设是修正各个插件目录下的性能,改完之后发给HUP信号给Cprobe,Cprobe会智能reload性能,不须要重启。比如:
kill-HUP`pidofcprobe`
仪表盘
笔者整顿了Oracle的Grafana仪表盘,分享给大家,不过Oracle的目的都是经过性能文件自定义SQL采集的,目的差异或者比拟大,这个仪表盘只能是仅供参考了:
如何检查oracle数据库性能
如何检查oracle数据库性能 oracle的性能判断需要综合数据库的多个运行指标来判断:1、进程数量和占用cpu:这个主要看有没有长时间占用cpu的进行。
通常会判断大出sql,需要优化;这个可以用执行计划或者awr报告查看;2、内存占用:主要用系统命令查看ora_占用和系统总内存的比例,swap的使用率;通常swap使用率低就没事;这个主要使用系统命令;3、磁盘占用率:防止磁盘空间不足,需要的主要在系统和用户表空间、RMAN等操作上;这个主要使用系统命令;RMAN命令查看
java代码实现监控oracle使用情况
2. 阿里巴巴数据库连接池(具有数据连接监控功能)
Druid是一个JDBC组件,它包括三部分:
DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
DruidDataSource 高效可管理的数据库连接池。
Druid可以做什么?
1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。