脚本:自动生成精准的Oracle AWR报告

news2024/11/24 4:28:28

很多朋友把AWR报告发过来让我帮忙分析Oracle数据库的性能,但很多报告都有一个共同的缺陷:就是这些报告覆盖的时间范围太广,导致性能问题的数据被严重稀释。
英文原文:Script: Generating Focused AWR Reports

为了解决这个问题,我开发了下面的脚本。如果您没有明确需求指定特定的诊断时间段,可以使用此脚本从两个维度缩小诊断时间范围:

  • 只覆盖高峰时段: 该脚本自动识别出工作负载最高的快照ID,并生成覆盖这个快照的AWR报告。通过聚焦于负载最高的时间段,可以更清晰地查看潜在的性能问题。
  • 单实例报告: 在多实例环境中,该脚本为每个实例单独生成AWR报告,而不是生成覆盖所有实例的单个数据库范围报告。这种方法有助于定位特定于每个实例的问题,这些问题在查看聚合报告时可能会被掩盖。

这个脚本自动生成的AWR报告会保存在/tmp目录下,文件名中包括实例名和生成时间便于识别。

-- This script generates AWR reports for the peak time over the past back_days (defaulted to 7 days). 
-- Dated July 2024
-- Author: Yuan Yao
CREATE OR REPLACE DIRECTORY tmp AS '/tmp/';

DECLARE
    back_days NUMBER := 7; -- Customize the number of back days here
    peak_id NUMBER;
    my_dbid NUMBER;
    today VARCHAR2(30);
    awr_dir VARCHAR2(40) := 'TMP';
    awr_file UTL_FILE.FILE_TYPE;
    awr_file_name VARCHAR2(60);
BEGIN
    -- Get the peak snap_id
    SELECT snap_id
    INTO peak_id
    FROM (
        SELECT snap_id, average, end_time
        FROM dba_hist_sysmetric_summary
        WHERE average = (SELECT MAX(average)
                         FROM dba_hist_sysmetric_summary
                         WHERE metric_name = 'Average Active Sessions'
                           AND end_time > SYSDATE - back_days)
    )
    WHERE ROWNUM = 1;

    -- Get the DBID
    SELECT dbid
    INTO my_dbid
    FROM v$database;

    -- Get the current date and time
    SELECT TO_CHAR(SYSDATE, 'YYYY_MON_DD_HH24_MI')
    INTO today
    FROM dual;

    -- Loop through each instance in the RAC environment
    FOR instance_rec IN (SELECT instance_number, instance_name FROM gv$instance) LOOP
          awr_file_name := 'awr_' || today || '_' || instance_rec.instance_name || '.html';
        awr_file := UTL_FILE.FOPEN(awr_dir, awr_file_name, 'w');

        -- Generate the AWR report in HTML format for each instance
        FOR curr_awr IN (
            SELECT output
            FROM TABLE(dbms_workload_repository.awr_report_html(
                my_dbid,
                instance_rec.instance_number,
                peak_id - 1, peak_id,
                0))
        )
        LOOP
            UTL_FILE.PUT_LINE(awr_file, curr_awr.output);
        END LOOP;

        UTL_FILE.FCLOSE(awr_file);
    END LOOP;

EXCEPTION
    WHEN OTHERS THEN
        IF UTL_FILE.IS_OPEN(awr_file) THEN
            UTL_FILE.FCLOSE(awr_file);
        END IF;
        RAISE;
END;
/

下面的例子是为两个实例的数据库生成的AWR报告:

[oracle@rac19c1 tmp]$ ls -lrt
...
-rw-r--r--  1 oracle asmadmin 1084024 Jul 31 10:43 awr_2024_JUL_31_10_42_orcl2.html
-rw-r--r--  1 oracle asmadmin 1117641 Jul 31 10:43 awr_2024_JUL_31_10_42_orcl1.html

号主在certview.oracle.com网站上面的证书截屏:在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多模态大模型 intern_vl 2.0版本解读

目录 更大规模的语言模型 多模态输入 多任务输出 性能表现 github:GitHub - OpenGVLab/InternVL: [CVPR 2024 Oral] InternVL Family: A Pioneering Open-Source Alternative to GPT-4o. 接近GPT-4o表现的可商用开源多模态对话模型 论文:https://arxiv.org/pdf…

TypeScript循环2

循环2 for(开始条件&#xff0c;结束条件&#xff0c;变量更新){} for使程序能够重复执行某段代码&#xff0c;直至满足特定条件为至。 // 打印1~100for(let i:number0;i<100;i){console.log(i);}死循环,程序中要避免出现 即使需要你使用&#xff0c;也需要有退出条件 …

Windows系统cmd黑窗口cd命令不起作用的解决办法

一般这种情况是通过win r 输入cmd唤起得窗口是在c盘&#xff0c;而想切换到其他磁盘目录却发现命令并不生效&#xff0c;例如&#xff1a; 解决的办法就是先切换磁盘&#xff0c;再cd到文件夹目录&#xff0c;比如我切换到E盘&#xff0c;就是E&#xff1a; 然后再cd目标目录…

探索Linux世界之Linux环境开发工具的使用

一、yum -- Linux软件包管理器 1、什么是yum yum(Yellow dog Updater, Modified)&#xff1a; 是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上。 在Linux上安装软件的方式&#xff1a; 源代码直接安装&#xff1a;在Linux下安装软件, 一个通…

存储实验:FC-SAN实验与光交配置(GUICLI)

目录 目的环境介绍拓扑环境规划环境解释 实验流程0. FC-SAN存储 WWN查看1. FC-SAN业务主机&#xff08;linux&#xff09;配置1.1 IP配置1.2 查看wwn号 2. 光交配置2.1 GUI2.1.1 跳板机配置2.1.1.1 配置IP2.1.1.2 安装jdk2.1.1.3 浏览器登录光交IP 2.1.2 光交-Alias配置2.1.2.0…

【目标检测类】YOLOv5网络模型结构基本原理讲解

1. 基本概念 YOLOv5模型结构主要包括以下组成部分&#xff1a;‌ 输入端&#xff1a;‌YOLOv5的输入端采用了多种技术来增强模型的性能&#xff0c;‌包括Mosaic数据增强、‌自适应锚框计算、‌以及自适应图片缩放。‌这些技术有助于提高模型的泛化能力和适应不同尺寸的输入图…

springboot+vue+mybatis汽车租赁管理+PPT+论文+讲解+售后

汽车租赁系统是针对目前汽车租赁管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的汽车租赁管理系统存在的问题进行分析&#xff0c;完善客户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率高&…

Unity补完计划 之 SpriteRender

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正 1.SpriteRenderer是什么 渲染精灵用的&#xff0c;是渲染的核心组件&#xff0c;有许多重要参数所以要详细讲一讲 Spri…

大语言模型VRAM估算指南和工具介绍

为了有效地执行大型语言模型(LLM)推理&#xff0c;了解GPU VRAM需求至关重要。VRAM对于存储模型参数、激活、处理批量大小和精度设置至关重要。估算VRAM使用情况的基本公式是:参数数(精度/ 8) 1.2。现代优化技术和框架可以进一步减少VRAM的需求。像VRAM Estimator, Hugging Fac…

Harbor 仓库一键安装

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

H5页面返回时提示用户返回将丢失信息

效果图 代码&#xff0c;组件封装弹窗 <template><div><van-popup v-model"show" :close-on-click-overlay"false" class"popup"><div class"content"><div class"title">提示:</div>…

QT学生管理系统 开发文档

目录 第一章 UI界面设计与开发 登录界面 主界面 UI美化 第二章 数据库设计与开发 数据库设计 连接数据库 数据库功能设计 sql语句设计 查询所有学生数量 查询第几页学生数据 删除学生 修改学生信息 清空学生表 添加单个用户 删除单个用户 修改用户权限 查询所有用户…

常用API_2:应用程序编程接口:ArrayList

文章目录 ArrayList常用方法 案例 &#xff1a;上菜 ArrayList 常用方法 来自黑马程序员学习视频 案例 &#xff1a;上菜 待完善

只有ip没有域名怎么申请证书?

当只有IP地址而没有域名时&#xff0c;仍然可以申请SSL证书以确保通过该IP地址访问的网站或服务的安全性。以下是为IP地址申请SSL证书的一般步骤&#xff1a; 一、确认前提条件 拥有公网IP地址&#xff1a;确保你拥有的是一个公网IP地址&#xff0c;因为内网IP地址不支持签发…

强化学习之Double DQN算法与DQN算法对比学习——以倒立摆(Inverted Pendulum)环境为例

0.简介 DQN算法敲开深度强化学习大门&#xff0c;但是其存在着一些问题&#xff0c;有进一步改进的空间。因此在DQN后出现大量改进算法。在此介绍DQN算法改进算法之一Double DQN&#xff0c;其在DQN算法基础上稍加修改实现在一定程度上改善DQN效果。 普通DQN算法会导致对Q值的过…

Leetcode75-5 反转字符串的元音字母

本质上来说就是反转字符串 一部分需要反转 一部分不动 思路: 1.用String字符串倒序拼接 就是过滤掉不是元音字符 然后把所有的字符&#xff08;非元音的直接复制过来 元音字母直接从反转的字符串里边复制即可&#xff09; 2.看了题解发现自己写的啰嗦了 就是一个双指针问题用…

螺旋矩阵

螺旋矩阵 思路&#xff1a; 这题是一个模拟的题目。 可以观察出一些性质&#xff1a;每次需要换方向的时候都是到达了边界&#xff08;长度和宽度的边界&#xff09;。 不知道怎么转化为代码&#xff01; 哭了 看看题解吧&#xff1a;真不会 看到一个太妙的方法了&#x…

《变形金刚》战斗力排名分析

Top1 天火擎天柱 作为博派的领袖&#xff0c;擎天柱本身实力不凡。然而&#xff0c;胜败乃兵家常事。在《变形金刚2》中&#xff0c;他虽然成功击败了破坏者、碾碎器和红蜘蛛&#xff0c;却不幸被威震天一炮穿心&#xff0c;阵亡。 不过&#xff0c;擎天柱是《变形金刚》系列…

Zero123 论文学习

论文链接&#xff1a;https://arxiv.org/abs/2303.11328 代码链接&#xff1a;https://github.com/cvlab-columbia/zero123 解决了什么问题&#xff1f; 人类通常能够仅凭一个相机视角来想象物体的三维形状和外观。这种能力对于日常任务非常重要&#xff0c;例如物体操纵和在…

快速掌握Vue:基础命令详解

目录 1. Vue概述 2. 快速入门 3. Vue指令 3.1 v-bind 3.2 v-model 3.3 v-on 3.4 v-if 3.5 v-show 3.6 v-for 3.7 案例 4. 生命周期 1. Vue概述 Vue.js&#xff08;读音 /vjuː/, 类似于 「view」&#xff09; 是一套构建用户界面的 「渐进式框架」。与其他重量级框…