一个自动生成awr报告的shell脚本

最近在学习shell编程,搞一点点小工具自动完成awr报告的收集工作,方便系统出现问题时问题排查。
脚本内容如下,系统收集每天开始时间6点结束时间20点的awr报告并存储在/u01/shell_t/awr/目录下

#! /bin/sh

export ORACLE_SID=PROD1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

m=(`sqlplus -S "/ as sysdba" << EOF
set pagesize 0 feedback off verify off heading off echo off
select max(snap_id) from dba_hist_snapshot where begin_interval_time>to_date(to_char(sysdate,‘YYYY-MM-DD‘)||‘ 06
‘,‘YYYY-MM-DD HH24‘) and end_interval_time<=to_date(to_char(sysdate,‘YYYY-MM-DD‘)||‘ 20‘,‘YYYY-MM-DD HH24‘);
EOF`)

n=(`sqlplus -S "/ as sysdba" << EOF
set pagesize 0 feedback off verify off heading off echo off
select min(snap_id) from dba_hist_snapshot where begin_interval_time>to_date(to_char(sysdate,‘YYYY-MM-DD‘)||‘ 06
‘,‘YYYY-MM-DD HH24‘) and end_interval_time<=to_date(to_char(sysdate,‘YYYY-MM-DD‘)||‘ 20‘,‘YYYY-MM-DD HH24‘);
EOF`)

name=(`sqlplus -S "/ as sysdba" << EOF
set pagesize 0 feedback off verify off heading off echo off
select instance_name from v\\\$instance;
EOF`)

date=(`sqlplus -S "/ as sysdba" << EOF
set pagesize 0 feedback off verify off heading off echo off
select to_char(sysdate,‘yyyymmddhh24‘) from dual;
EOF`)

sqlplus -S "/ as sysdba" <<eof
@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/awrrpt.sql;
html
1
$n
$m
/u01/shell_t/awr/awrrpt_1_${name}_${date}.html
EOF

时间: 2024-10-11 01:29:31

一个自动生成awr报告的shell脚本的相关文章

Oracle 每天自动生成AWR报告

经验丰富的老员工希望能够每天为数据库生成1个AWR报告,以便于后期分析数据库的性能变化,手动生成太麻烦,查了一下资料,发现可以自动生成,过程如下. 数据库环境:11gR2 RAC(双节点) AWR报告:由于是RAC数据库,希望生成每个节点的报告及全局报告,时间段为:第一天的0点~第二天的0点. (1)在oracle服务器上创建路径 server2$[/home/oracle]mkdir awrreport (2)创建directory并授权(使用sys账户执行) create or replac

一个自动安装LNMP的简洁Shell脚本

此脚本在生产服务器上使用了一年多,本脚本崇尚简单唯美,只需要一个脚本就可以在任何一台有网络的服务器上自动配置LNMP.本脚本会在脚本执行目录下,建packages目录用于存放LNMP所需要的软件.大家安装完可以删除该目录. 使用方法:1.把shell脚本的内容保存为nginx_php2.root权限下运行:chmod u+x nginx_php; ./nginx_php init; ./nginx_php ins_mysql-server; ./nginx_php ins_mysql-clien

一个自动安装lnmp环境的shell脚本

#/bin/bash #定义nginx源码包版本,脚本会根据版本名称和后缀检查文件是否在当前目录如果你需要安装不同版本的nginx可以修改这两个变量 nginx_version=nginx-1.8.0 format1=tar.gz #定义php-fpm安装包的文件名,如果你需要安装其他版本可以更改这个变量 php_fpm_package_name=php-fpm-5.4.16-36.el7_1.x86_64.rpm #判断系统语言是不是中文是返回0不是返回1 language(){ echo $

oracle手工生成AWR报告方法记录

AWR(Automatic Workload Repository)报告是我们进行日常数据库性能评定.问题SQL发现的重要手段.熟练掌握AWR报告,是做好开发.运维DBA工作的重要基本功. AWR报告的原理是基于Oracle数据库的定时镜像功能.默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中.生成AWR报告时,只需要指定进行分析的时间段(开始镜像编号和结束镜像编号),就可以生成该时间段的性能分析情况.AWR镜像保存在数据库中的时间为一个月左右

Linux平台生成awr报告

1.使用oracle用户登录应用服务器所使用的数据库所在的服务器 # su –oracle 2.输入env命令,查询出ORACLE_HOME 目录 3.然后进入$ORACLE_HOME/rdbms/admin目录,查询awr语句(此步骤可以忽略) 此处可以直接省略2,3步骤,直接执行如下命令: cd $ORACLE_HOME/rdbms/admin 4.用SYSDBA身份登录sqlplus  /  as sysdba 5.在sqlplus中输入@awrrpt 6.开始按照提示操作,首先是选择要生

oracle生成AWR报告

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/43971547 实验环境: 操作系统:win7 旗舰版 64bit 数据库:oracle 11G R2 64bit 第1步:登陆sqlplus C:\Users\Administrator>sqlplus / as sysdba 第2步:跑脚本 SQL> @

手动生成AWR报告

有时候数据库中为安装EM,无法图形化生成AWR报告,此时需要手工生成AWR报告,ORACLE提供了以个sql,可以手工生成AWR报告,首先创建生成报告的目录,这里为/home/oracle/AWR $ mkdir AWR $ cd AWR $ pwd /home/oracle/AWR 进入sqlplus [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Dec 30 

ORACLE AWR概述及生成AWR报告

1.Overview of the Automatic Workload Repository The Automatic Workload Repository (AWR) collects, processes, and maintains performance statistics for problem detection and self-tuning purposes. This data is both in memory and stored in the database.

基于mysqldump编写自动全备增备的shell脚本

基于mysqldump编写自动全备增备的shell脚本 在线上MySQL数据库备份分为全备和增备,而xtrabackup备份已经支持了增量备份了,但是mysqldump就不支持增量备份,所以我们需要写一个shell脚本对于mysqldump来自动全备和增备. 一下脚本要求我们做一个全备的策略,然后如何做增量备份,自动完成每天执行增量备份,每个星期天执行全备.备份完删除二进制文件,减低磁盘压力. [[email protected] ~]# cat mysqlback.sh #!/bin/bash