46-Oracle ASH-报告生成

Oracle等待事件分析与AWR和ASH报告 文章目录1 ASH和AWR1.1 ASH1.1.1 ash占用的内存大小1.2 AWR1.3 等待事件分析1.4 MMON进程与MMNL进程1.4.1 MMON进程1.4.2 MMML进程1.5 SYSAUX表空间1.6 采样频率和保留时间2 生成AWR和ASH报告2.1 生成AWR报告2.2 AWR的主要参数2.3 生成AWR报告2.4 ASH报告主要参数 1 ASH和AWR 1.1 ASH 用... 阅读详情
AI摘要

Oracle ASH可用于日常排查数据库性能问题,能快速定位业务卡顿等情况。它具有实时性和持久化的核心价值,采用秒级采样设计,有精准定点、动态权重的采样机制。不同Oracle版本在操作上有差异,还介绍了ASH报告在Linux和Windows系统下的保存路径设置方法。

小伙伴们,Oracle ASH(Active Session History)日常排查性能问题的多不多。当业务突然卡顿、告警频发时,ASH快速定位问题(每秒采样活动会话的等待事件、SQL_ID和阻塞关系,直接透视数据库的实时状态),这个用起来还是很顺手的。ASH是DBA的灭火器,尤其在秒级故障定位中无可替代。不过由于数据保存时间有时效数据容易被覆盖哦。

一、Oracle ASH 性能监控来历和价值

  • ​传统监控局限​
    • 10g前依赖V$SESSION,V$SESSION_WAIT,会话断开后数据丢失,无法回溯瞬态性能问题(如秒级锁争用、SQL执行计划突变)
  • ​ASH的核心价值​
    • ​实时性​:每秒采样活动会话(非空闲状态),捕获SQL执行路径、等待事件、阻塞关系,成为诊断瞬态问题的“高速摄像机”
    • ​持久化​:会话断开后数据仍保留,支持历史性能回溯

二、技术原理:秒级采样的设计​

​1. 采样机制​
  • ​精准定点​:仅采集非空闲会话​(等待事件非Idle类)
  • ​动态权重​:长等待事件采样概率更高(100ms事件采样率是10ms的10倍)
  • ​执行主体​:由后台进程 ​MMNL​ 完成采样
2. 存储架构​ 

​存储层

​位置​

​保留策略​

​进程​

​内存缓冲区​

SGA共享池

循环覆盖,默认保留≤1小时

MMNL

​持久化仓库​

AWR表(WRH$_ACTIVE_SESSION_HIST)

每60分钟或缓冲区满时写入,保留8天

MMON

  • 缓冲区大小:
    • 10g默认1MB,11g默认4MB,可通过隐含参数_ash_size调整修改(不过需要重启实例)
3. 数据高效性​
  • ​写入优化​:仅10%的ASH数据持久化到AWR,使用Direct-Path Insert减少日志生成
  • ​数据关联​:通过SQL_ID、对象ID、等待事件参数进行关联分析系统瓶颈

三、版本操作指南与验证脚本​

​1. Oracle 10g:基础采样​
  • ​生成ASH报告​:
--# 需要交互式输入时间范围
sqlplus / as sysdba
@?/rdbms/admin/ashrpt.sql
---
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
输入 report_type 的值:
  • 验证缓冲区参数​: 
-- 检查内存分配
SELECT * FROM v$sgastat WHERE name LIKE '%ASH buffers%';
--11g
SYS@orcl> SELECT * FROM v$sgastat WHERE name LIKE '%ASH buffers%';

POOL         NAME                            BYTES
------------ -------------------------- ----------
shared pool  ASH buffers                  67108864
--19c
SYS@test19> SELECT * FROM v$sgastat WHERE name LIKE '%ASH buffers%';

shared pool    ASH buffers                  67108864          1
--23ai
SYS@CDB$ROOT> SELECT * FROM v$sgastat WHERE name LIKE '%ASH buffers%';

POOL           NAME                BYTES    CON_ID
______________ ______________ __________ _________
shared pool    ASH buffers       4194304         1
2. Oracle 11g/12c增强功能​
  • ​RAC支持​:
--# 多实例报告生成,登录SCAN-IP地址,
@?/rdbms/admin/ashrpti.sql
SQL*Plus: Release 11.2.0.4.0 Production on Wed Jun 18 14:56:58 2025

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SYS@jshis1> @?/rdbms/admin/ashrpti.sql

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type:
  •  分析脚本查询异常​:
-- 定位行锁争用源头
-- 最近5分钟
SELECT sample_time, session_id, sql_id, blocking_session
FROM v$active_session_history
WHERE event='enq: TX - row lock contention'
  AND sample_time > SYSDATE - 5/1440;
  --23ai
  SYS@CDB$ROOT> SELECT sample_time, session_id, sql_id, blocking_session
  2  FROM v$active_session_history
  3  WHERE event='enq: TX - row lock contention'
  4*   AND sample_time > SYSDATE - 5/1440;
3. Oracle 19c,23ai
  • ​生成报告​:
--验证数据库版本和支持情况
SELECT * FROM v$version;
SYS@CDB$ROOT> show parameter ash;
NAME                          TYPE        VALUE
----------------------------- ----------- ------------------
db_flash_cache_file           string
db_flash_cache_size           big integer 0
db_flashback_log_dest         string      /opt/oracle/FB_FRA
db_flashback_log_dest_size    big integer 100G
db_flashback_retention_target integer     1440
hash_area_size                integer     131072

--如果包出现不可用可以尝试编译修复
SYS@CDB$ROOT> ALTER PACKAGE DBMS_WORKLOAD_REPOSITORY COMPILE;
Package DBMS_WORKLOAD_REPOSITORY altered.
-- 检查内存中最旧数据时间
SYS@CDB$ROOT> SELECT MIN(sample_time) FROM v$active_session_history;

MIN(SAMPLE_TIME)
__________________________________
15-JUN-25 09.38.45.848000000 PM

  -- 开始时间(30分钟前)
  -- 输出HTML格式报告
-- 如果需要就设置SQL*Plus环境
SET LINESIZE 200
SET PAGESIZE 0
SET LONG 1000000
SET LONGCHUNKSIZE 1000000
SET HEADING OFF
SET FEEDBACK OFF
SET TRIMSPOOL ON

-- 指定输出文件
SPOOL /u01/app/oracle/ash_report.html

-- 生成报告
SELECT * 
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_HTML(
  l_dbid     => (SELECT dbid FROM v$database),
  l_inst_num => (SELECT instance_number FROM v$instance),
  l_btime    => SYSDATE - 30/1440,
  l_etime    => SYSDATE
));

-- 结束输出
SPOOL OFF

 四、ASH报告保存路径​

使用绝对路径+时间戳命名​(如ash_$(date +%Y%m%d).html),避免文件覆盖;

同时注意保存的路径oracle用户有读写权限

​操作方式​

​Linux实现​

​Windows实现​

交互式生成

输入/u01/app/oraclereport.html

输入D:\report.html

脚本硬编码路径

Shell中写/u01/app/oracle/report.html

BAT中写D:\report.html

SPOOL重定向

SPOOL /u01/app/oracle/report.html

同Linux(需SQL*Plus环境)

​默认位置​

$ORACLE_HOME/bin或~

%ORACLE_HOME%\RDBMS\ADMIN或用户目录

Linux下生成报告
  • 1. 手动生成报告时指定路径​
执行ashrpt.sql脚本时,在最后一步输入带绝对路径的文件名​:
sqlplus / as sysdba
SQL> @$ORACLE_HOME/rdbms/admin/ashrpt.sql
# 按提示操作:
Enter value for report_type: html
Enter value for begin_time: -30  --例如30分钟前
Enter value for duration: 30     -- 持续30分钟
Enter value for report_name: /home/oracle/reports/ash_20250618.html  --自定义路径
  • 2. 使用SPOOL命令重定向​
在SQL*Plus中直接生成并保存到指定路径:
SET PAGESIZE 0 LONG 1000000 TRIMSPOOL ON
SPOOL /u01/app/oracle/ash_report.html  -- 指定输出路径
SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_HTML(...));
SPOOL OFF
  • 3. 自动化脚本中硬编码路径​
在Shell脚本中直接写入路径(示例run_ash.sh)

#!/bin/bash
sqlplus -s / as sysdba <<EOF
@$ORACLE_HOME/rdbms/admin/ashrpt.sql <<INPUT
html
-30
30
/home/oracle/ash_reports/ash_$(date +%Y%m%d).html  # 固定输出目录
INPUT
EOF
Windows系统设置方法​
  • ​1. 交互式生成时指定路径​
    sqlplus / as sysdba
    SQL> @C:\app\oracle\product\19.0.0\dbhome_1\RDBMS\ADMIN\ashrpt.sql
    # 输入报告参数后:
    Enter value for report_name: D:\oracle_reports\ash_report.html  # 自定义路径
    • 2. 批处理脚本固定路径​
    创建BAT脚本(如create_ash.bat):
    @echo off
    sqlplus -s / as sysdba @C:\scripts\create_ash.sql > D:\ash_output\ash_%date:~0,4%%date:~5,2%%date:~8,2%.html
    --其中create_ash.sql内容:
    SET ECHO OFF
    SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_HTML(...));
    EXIT;
    --注意复制上面的DBMS_放在()中

      

Oracle AWR与ASH性能报告深入解析 AWR 机制:通过对系统整体动态采样收集快照信息,存储在SYSAUX 表空间,每小时采样一次,可以保存7 天,MMON 进程实施,快照分析后写入DBA_HIST_%开头的数据字典。AWR基线:我们可以在数据库平稳正常的状态下创建AWR基线(参照物),在实际生产中可以作为性能指标曲线的一个参照物,有了基线对比,我们就可以很方便的了解到系统的一个真实的性能趋势。第三阶段:DB 级性能优化,AWR 就是数据库层性能诊断报告,当我们无法判断数据库哪里性能出现问题时我们可以做一个全身体检报告来找到我们瓶颈所在。 阅读详情

相关推荐

【Oracle】Oracle活动会话历史(ASH)及报告解读

【Oracle】Oracle活动会话历史(ASH)及报告解读

tttzzzqqq2018的博客 1629

Oracle活动会话历史(ASH)及报告解读

对于数据库运行期间的各种状态的实时监控以及相关性能数据捕获对于解决性能问题,提高整体业务系统运行效率是至关重要的。在Oracle数据库中,实时捕获相关性能数据是通过ASH工具来实现的。ASH通过每秒钟抽取活动会话样本,为分析在最近时刻的性能问题提供最直接最有效的依据。本文主要讲述ASH的用法及使用。

乐沙弥的世界 1万+

python爬虫抖音 个人资料 仅供学习参考 切勿用于商业

本文仅供学习参考 切勿用于商业 本次爬取使用fiddler+模拟器(下载抖音APP)+pycharm 1. 下载最新版本的fiddler(自行百度下载),以及相关配置 1.1.依次点击,菜单栏-Tools-Options-HTTPS,如图1红框打钩,HTTPS旁边Connections配置,如图2红框打钩 1.2.再次点击HTTPS栏,点击Actions选择第二个…to ...

dbva7063的博客 1491

ORACLE 11G 性能诊断优化之ASH实战分析详解

ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。v$active_session_history视图提供了在实例级别抽取会话活动信息。活动会话每分钟会被抽样一次且被存储在sga中的循环缓冲区中.任何被连接到数据库且正等待一个不属于空闲等待事件的会话会被考虑是一个活动的会话。

alisande1的专栏 2936

企业微信API实战:解密external_userid的跨应用一致性管理

本文深入探讨企业微信API中external_userid的跨应用一致性管理问题,解析其本质及在不同应用场景下的ID不一致挑战。通过ID转换与统一管理方案,结合unionid实现跨应用客户数据整合,提供实战代码示例和架构设计,助力企业构建高效的客户管理系统。

weixin_29258297的博客 637

suse ha for sap scale-up性能优化场景安装配置

suse ha for SAP安装配置

jetliu05的博客 2135

Oracle分析报告ash,求分析AWR、ASH、ADDM报告

环境:红帽6.7+ORACLE11.2.0.4.0 双节点RAC情况:应用那边总是出现卡死的状况,一查询数据库,出现了很多的阻塞,并发生了行级排他锁,但如何找到到底是什么原因导致了这个行级排它锁的产生呢?我给出了AWR、ASH、ADDM报告,请大牛们帮分析一下!ADDM内容如下:分析时段----AWR 快照范围从 7416 到 7417。时段从 21-10月-16 03.00.04 下午 开始时段...

weixin_32233079的博客 408

ISP工程师实战笔记:5种Demosaic算法优缺点对比(含Hamilton/DFPD代码片段)

本文从ISP工程师实战角度,深入对比了五种经典Demosaic算法的优缺点。文章详细剖析了双线性插值、Hamilton、DFPD、DLMMSE和GBTF等算法的核心思想、实现差异与性能表现,并提供了Hamilton和DFPD算法的关键代码片段。重点探讨了在图像信号处理流水线中,如何根据画质、计算复杂度和功耗等工程约束进行算法选型与权衡。

weixin_42527589的博客 248

oracle ash 锁,Oracle ---- 性能调查之ASH(二)

今天借助一个例子继续讲ASH的用法。客户报告:一个RAC构成的环境,在11:20左右开始处理慢。提供资料:AWR ReportASH请求事项:原因确认解决方法先简单看一AWR Report 的总体状况。・Node1DB Time: 967.74 (mins)・Node2DB Time: 414.41 (mins)・Node3DB Time: ...

weixin_39562338的博客 220

2026年ComfyUI一键部署指南:秋叶整合包安装与API批量任务实战

节点式工作流是AI图像生成领域实现高度定制化和流程自动化的核心技术范式。其原理在于将图像生成的各个步骤(如提示词编码、模型加载、采样解码等)模块化为可连接、可配置的独立节点,用户通过可视化连线构建专属生成管线。这种架构的技术价值在于突破了固定界面的限制,提供了极致的灵活性与可重复性,尤其适合复杂工作流编排和批量生产任务。在应用场景上,它广泛应用于需要精细控制生成过程的研究、定制化内容创作以及自动化图像生成流水线。本文聚焦于ComfyUI这一代表性工具,详细解析如何通过秋叶整合包实现快速本地部署,并深入演示其

weixin_29056781的博客 541

OpenBCI脑电帽硬件DIY与低成本搭建实战

本文详细介绍了如何通过第三方兼容硬件和开源设计,低成本DIY一套功能完备的OpenBCI脑电采集系统。从硬件选购、组装、软件配置到信号调试,提供了完整的实战指南,将总成本控制在千元级别,使脑机接口技术对爱好者、学生和研究者变得更加触手可及。

weixin_29322855的博客 787

ASH Report For AWDDB/awddb

ASH Report For AWDDB/awddb DB NameDB IdInstanceInst numReleaseRACHost AWDDB 1223021198 awddb 1 10.2.0.1.0 NO JGCKSSDB CPUsSGA SizeBuffer CacheShared PoolASH Buffer ...

weixin_30500663的博客 266

主题045:四足机器人的运动仿真

四足机器人(Quadruped Robot)是模仿哺乳动物四肢运动设计的机器人系统,具有优异的地形适应性和运动稳定性。与双足机器人相比,四足机器人在静态和动态稳定性方面具有天然优势,能够在复杂地形(如楼梯、斜坡、碎石地面)上稳定行走,因此在野外探索、救援任务、军事应用等领域具有广阔的应用前景。本教程将介绍四足机器人的运动学建模、步态规划、稳定性分析和控制策略,并通过Python仿真验证相关理论。典型的四足机器人每条腿包含3个关节:常见的腿部构型包括:对于单腿,足部位置 pfoot\mathbf{p}_{fo

kkchenjj的博客 682

Oracle awr报告

一. Automatic Workload Repository概念 Automatic Workload Repository(AWR)收集、处理和维护用于问题诊断的性能统计信息。该数据既存在于数据块中,也存在于内存中。AWR手机的数据可以通过报告和视图进行查看。 数据库默认情况下已启用AWR收集统计信息,使用STATISTICS初始化参数来控制。此参数必须为typical或all才能启用A

gumengkai的博客 961

手把手教您同花顺如何设置大盘分时均价线

本文将手把手教你如何在同花顺PC端开启大盘指数分时图📈

XiaoqiangClub的博客 4405

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

oracle12c 性能诊断新增工具

在原有awr的类型之上添加了active-html类型,这个类型创建后在最下方会有图形展示,结合了awr addm, ash的数据,可以在em页面上实时展现,也可以用awr生成历史数据 https://docs.oracle.com/en/database/oracle/oracle-database/18/admqs/monitoring-and-tuning-the-database.htm...

敖尔其楞的专栏 749

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Oracle log file sync 等待高,真的是磁盘慢吗?

今天处理了一起 Oracle 19c RAC 数据库性能问题。生产 MES 系统偶发响应缓慢,查看 AWR 后发现,凌晨 02:00–03:00 期间,数据库的等待时间明显升高,最高平均等待达到了 46ms。与事务提交密切相关,当应用执行 COMMIT 时,前台会话需要等待相关 REDO 持久化完成。如果 LGWR 写入延迟增加,事务提交时间也可能随之变长。排查这类问题,我通常会结合一起看。如果两个等待事件同时升高,就需要进一步检查 REDO 写入 I/O。

LuciferLiu_DBA 164

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

46、自适应mysql和oracle(1)

学习过程: 在需求分许里面还有这么一个要求就是能自适应mysql和oracle,虽然只有这么一句话,但是我们应该如何才能实现这个功能,毕竟mysql和oracle数据库所支持的sql语言除了基本的增删改查是一样之外,还是有很多是不同的,比如说分页算法就不同,那么我们如何可以让使用者在不修改java源码的基础上就可以实现自适应mysql和oracle呢?这里我们的解决方法就是使用简单工厂模式,虽然...

JavaDayUp 354

How to disable flush of ASH data to AWR?

MMON process will periodically flush ASH data into AWR tables. Oracle introduced WF enqueue which is used to serialize the flushing of snapshots. If for any reason ( space issue, bugs, hanging etc.....

wangpengfei360 152

oracle 频繁 tm tx,oracle enq: TM & enq: TX 分析

oracle enq: TM & enq: TX 分析作者简介:----------------------------------------------------@ 孙显鹏,海天起点oracle技术专家,十年从业经验@ 精通oracle内部原理,擅长调优和解决疑难问题@ 致力于帮助客户解决生产中的问题,提高生产效率。@ 爱好:书法,周易,中医。微信:sunyunyi_sun@ 易曰:...

weixin_35245810的博客 276

oracle 中断 adg 同步,注意:ORACLE 11G ADG RAC 这个情况下并不能高可用

原标题:注意:ORACLE 11G ADG RAC 这个情况下并不能高可用墨墨导读:一套11 G r2(11.2.0.3)版本的2节点RAC adg环境,节点1因为硬件原因异常crash(apply redo 节点), 但同时实例2上的应用也都断开了(原来都是open)。今天在一套11 G r2(11.2.0.3)版本的2节点RAC adg环境,节点1因为硬件原因异常crash(apply red...

weixin_39577422的博客 954

oracle lsof,[Oracle工程师手记] 通过 lsof 命令查找oracle client 端和 server 端进程

通过 lsof 命令,可以找到 Oracle 的 client 端 和 server 端的进程。例如,我从远端连接到 oracle 数据库:-bash-4.1$ sqlplus sys/oracle@my19c as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Sat Apr 10 03:45:20 2021Copyright (c) 1982...

weixin_39720662的博客 253

【zt】How to disable flush of ASH data to AWR?

MMON process will periodically flush ASH data into AWR tables. Oracle introduced WF enqueue which is used to serialize the flushing of snapshots. If for any reason ( space issue, bugs, hanging etc...

老A的自留地,欢迎加微信交流,微信号zhoul777 228
上一篇: 45-Oracle 索引的新建与重建
下一篇: 47-Oracle ASH报告解读
远方1609
博客等级 码龄22年 577粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值