【ORACLE】自动产生AWR报告

【ORACLE】自动产生AWR报告 1. LINUX系统下: ##sh脚本,sh脚本调用sql脚本 #!/bin/bash if [ -f ~/.bash_profile ]; then source ~/.bash_prof…

【ORACLE】自动产生AWR报告[数据库教程]

1. LINUX系统下:

##sh脚本,sh脚本调用sql脚本
#!/bin/bash

if [ -f ~/.bash_profile ]; then  
    source ~/.bash_profile  
fi 

export AWR_CMD=/home/oracle/awr
export AWR_DIR=/home/oracle/awr/report   
RETENTION=31 

# ----------------------------------------------  
# Generate awr report  
# ----------------------------------------------  
$ORACLE_HOME/bin/sqlplus / as sysdba<<EOF   
@${AWR_CMD}/autoawr.sql;  
exit;  
EOF

exit


##sql脚本

代码100分

SET ECHO OFF;
SET VERI OFF;
SET FEEDBACK OFF;
SET TERMOUT ON;
SET HEADING OFF;

VARIABLE dbid NUMBER;
VARIABLE inst_num NUMBER;
VARIABLE bid NUMBER;
VARIABLE eid NUMBER;

代码100分

BEGIN
SELECT MIN (snap_id) INTO :bid FROM dba_hist_snapshot WHERE TO_CHAR (end_interval_time, ‘yyyymmdd hh24‘) > TO_CHAR (SYSDATE-2/24, ‘yyyymmdd hh24‘);

SELECT MAX (snap_id) INTO :eid FROM dba_hist_snapshot WHERE TO_CHAR (end_interval_time, ‘yyyymmdd hh24‘) > TO_CHAR (SYSDATE-2/24, ‘yyyymmdd hh24‘);


SELECT dbid INTO :dbid FROM v$database;

SELECT instance_number INTO :inst_num FROM v$instance;
END;
/

set pagesize 0;
set linesize 121;

代码100分

COLUMN report_name NEW_VALUE report_name NOPRINT;


SELECT instance_name || ‘_awrrpt_‘ || instance_number || ‘_‘ || c.timestamp ||‘_‘ || b.timestamp || ‘.‘ || ‘html‘
report_name
FROM v$instance a,
(SELECT TO_CHAR (end_interval_time, ‘yyyymmdd_HH24MI‘) timestamp
FROM dba_hist_snapshot
WHERE snap_id = :eid) b,
(SELECT TO_CHAR (end_interval_time, ‘yyyymmdd_HH24MI‘) timestamp
FROM dba_hist_snapshot
WHERE snap_id = :bid) c;

SET TERMOUT OFF;
SPOOL $AWR_DIR/&report_name;

SELECT output
FROM TABLE (DBMS_WORKLOAD_REPOSITORY.awr_report_html(:dbid,
:inst_num,
:bid,
:eid));
SPOOL OFF;
SET TERMOUT ON;
CLEAR COLUMNS SQL;
TTITLE OFF;
BTITLE OFF;
REPFOOTER OFF;

UNDEFINE report_name

 

 

2. HP-UX系统下:

##sh脚本,sh脚本调用sql脚本
#!/sbin/sh

if [ -f ~/.profile ]; then  
    . ~/.profile  
fi 

export AWR_CMD=/home/oracle/awr
export AWR_DIR=/home/oracle/awr/report   
RETENTION=31 

# ----------------------------------------------  
# Generate awr report  
# ----------------------------------------------  
$ORACLE_HOME/bin/sqlplus / as sysdba<<EOF   
@${AWR_CMD}/autoawr.sql;  
exit;  
EOF

exit



##sql脚本
SET ECHO OFF;  
SET VERI OFF;  
SET FEEDBACK OFF;  
SET TERMOUT ON;  
SET HEADING OFF;  
   
VARIABLE dbid NUMBER;  
VARIABLE inst_num NUMBER;  
VARIABLE bid NUMBER;  
VARIABLE eid NUMBER;  

BEGIN  
  SELECT MIN (snap_id) INTO :bid FROM dba_hist_snapshot WHERE TO_CHAR (end_interval_time, yyyymmdd) = TO_CHAR (SYSDATE-7, yyyymmdd);  
  
  SELECT MAX (snap_id) INTO :eid FROM dba_hist_snapshot WHERE TO_CHAR (begin_interval_time,yyyymmdd) = TO_CHAR (SYSDATE-1, yyyymmdd);  
  
  SELECT dbid INTO :dbid FROM v$database;  
  
  SELECT instance_number INTO :inst_num FROM v$instance;  
END;  
/  
  
set pagesize 0;
set linesize 121;

COLUMN report_name NEW_VALUE report_name NOPRINT;

SELECT instance_name || _awrrpt_ || instance_number || _ || c.timestamp ||_ || b.timestamp || . || html  
          report_name  
  FROM v$instance a,  
       (SELECT TO_CHAR (end_interval_time, yyyymmdd_HH24MI) timestamp  
          FROM dba_hist_snapshot  
         WHERE snap_id = :eid) b,
           (SELECT TO_CHAR (end_interval_time, yyyymmdd_HH24MI) timestamp  
          FROM dba_hist_snapshot  
         WHERE snap_id = :bid) c;  
  
SET TERMOUT OFF;  
SPOOL $AWR_DIR/&report_name;  
  
SELECT output  
  FROM TABLE (DBMS_WORKLOAD_REPOSITORY.awr_report_html(:dbid,  
                                                 :inst_num,  
                                                 :bid,  
                                                 :eid));  
SPOOL OFF;  
SET TERMOUT ON;  
CLEAR COLUMNS SQL;  
TTITLE OFF;  
BTITLE OFF;  
REPFOOTER OFF;  
  
UNDEFINE report_name

 

【ORACLE】自动产生AWR报告

原文:https://www.cnblogs.com/CL-learning/p/12760621.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8862.html

(0)
上一篇 2023-02-20
下一篇 2023-02-20

相关推荐

  • 利用Python查找字符串中关键词的位置

    利用Python查找字符串中关键词的位置在日常生活和工作中,我们经常需要在一段文字中查找关键词的位置。Python是一门非常强大的编程语言,可以轻松实现这个需求。

    2024-06-20
    48
  • Python二进制转换函数Bin的使用方法

    Python二进制转换函数Bin的使用方法Python中提供了多种用于数字转换的函数,其中二进制转换函数bin()是常用的数字转换函数之一,它将十进制数字转换为二进制数字并以字符串的形式返回。在该文章中,我们将详细介绍Python中二进制转换函数bin()的使用方法。

    2023-12-12
    114
  • 6. 锁「建议收藏」

    6. 锁「建议收藏」开发多用户、数据库驱动的应用时,最大的难点是:一方面要最大程度的利用数据库的并发访问,一方面还要确保每个用户能以一致的方式读取和修改数据,为此有了锁的机制。 6.1 什么是锁 锁机制用于管理对共享资源

    2023-02-18
    146
  • 如何使用 SQL CREATE TABLE 创建新表[亲测有效]

    如何使用 SQL CREATE TABLE 创建新表[亲测有效]本文介绍如何使用 SQL CREATE TABLE 创建新表,DROP TABLE 用来完整地删除一个表,ALTER TABLE 用来更改表列或其他诸如约束或索引等对象。 一、创建表 SQL 不仅用于

    2023-05-17
    144
  • [MySQL]MySQL8.0的一些注意事项以及解决方案[通俗易懂]

    [MySQL]MySQL8.0的一些注意事项以及解决方案[通俗易懂]MySQL8.0 注意事项以及解决方案 1. MySQL8.0 修改大小写敏感配置 天坑MySQL8.0! 在安装后, 便无法通过修改配置文件,重启服务,或者执行sql来更改数据库配置, 要想配置的话

    2023-05-10
    145
  • Python实现删除指定元素

    Python实现删除指定元素 Python语言简单易学,语法简洁,运行效率高,拥有丰富的第三方库。Python可以应用于多种场景,包括自动化脚本、数据分析、机器学习、Web开发等等。本文将重点讲解在Python中如何删除指定元素。

    2024-06-13
    57
  • num的含义

    num的含义num,顾名思义是“数字”的缩写,是指“数值型变量”。

    2024-06-19
    47
  • 使用Python储存数据值的示例

    使用Python储存数据值的示例Python作为一门高级编程语言,提供了很多处理数据的便捷方法。在Python中,可以使用各种数据类型来储存数据。最常见的数据类型包括整数、浮点数、字符串和布尔值。对于复杂的数据类型,比如列表、元组、集合和字典等,Python也提供了丰富的内置方法来操作。

    2024-03-01
    153

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注