在Linux平台上生成AWR(Automatic Workload Repository)报告通常是指针对Oracle数据库的操作。AWR报告是Oracle数据库性能诊断的一个重要工具,它可以帮助DBA分析数据库在一段时间内的性能表现。
以下是生成AWR报告的一般步骤:
1. 确认Oracle数据库环境
确保Oracle数据库已经安装,并且数据库正在运行。同时,确认已经开启了自动统计信息的收集,这是生成AWR报告的前提。
2. 登录数据库
使用具有相应权限的账号登录到Oracle数据库。
sqlplus / as sysdba
或者使用具体的用户名和密码登录:
sqlplus username/password
3、在sqlplus中输入@awrrpt
开始按照提示操作,首先是选择要生成awr报告的类型,可以选择text类型和html类型,这里以html类型为例,输入html
选择查看最近多少天的镜像记录;输入1,则表示要查看今天0点开始到当前时间的记2录;输入2,则表示要查看昨天0点开始到当前时间的记录,以此类推。缺省记录最近7天。这里输入1作为示例
输入天数后,界面会显示出一个时间段的表格,每个时间点都对应一个Snap Id,间隔时间默认是1个小时,接下来,输入要生成报告的时间开始点对应的Snap Id,这里以2014-08-28 00:00为例,表中看到其对应的Snap Id是22844。然后,要输入生成报告的时间的结束点对应的Snap Id,这里选2014-08-28 11:00为例,表中看到其对应的Snap Id是22855
接着要求输入生成报告的名字,系统会自动生成一个默认的名字,并会在提示信息中显示出来,如果使用默认名,则不用输入任何内容,直接回车即可。默认名称格式一般都是awrrpt_1_开始snapid_结束snapid.html,我们也可以输入自己定义的名称如:awrrpt_20140828
然后就会在$ORACLE_HOME/rdbms/admin目录下生成html格式的报告
4、下载到本地
用ftp工具登录服务器,并把生成的报告下载到本地。
5、问题处理(重点)
oracle 生成AWRRPT报ora-06502错误的临时解决办法
oracle11g中生成awrrpt时,有时会报ora-06502错误,最近在生成一套系统的AWR报告时出现了如下报错:ORA-06502: PL/SQL: numeric or value error: character string buffer too small,然后生成AWR报告的过程就终止了,查看生成的AWR报告,发现报告时不完整的,AWR报告到Complete List of SQL Text部分就结束了,且最后是以一个非常长的sql语句结束的,且这个sql语句还没有显示完整。
根据上面的分析已经基本清楚,导致AWR报告生成失败的原因就是系统中存在一个特别长的sql。明确了这点,接下来就好办了,生成AWR报告的的sql文本是来自WRH$_SQLTEXT,那只要将这个基表中的sql文本进行截断,应该就能正确的生成AWR报告了。这里说明下,WRH$_SQLTEXT基表保存的是快照期间的sql文本信息,对该表的操作不会影响系统的sql语句运行,但是对基表的操作始终是非常危险的,建议不要直接在生成系统上进行操作,可以将生产的AWR数据导入到测试环境上生成AWR报告。
ERROR:ORA-06502:PL/SQL:numeric or value error:character string buffer
too small ORA-06502:at "YSY.DBMS_WORKLOAD_REPOSITORY", line 919
ORA-06502:at line 1
WRH$_SQLTEXT基表的结构如下:
SQL> desc WRH$_SQLTEXT
Name Null? Type
----------------------------------------- -------- ----------------------------
SNAP_ID NUMBER
DBID NOT NULL NUMBER
SQL_ID NOT NULL VARCHAR2(13)
SQL_TEXT CLOB
COMMAND_TYPE NUMBER
REF_COUNT NUMBER
保存sql文本的字段为CLOB字段,所以可以采用下面的方法对WRH$_SQLTEXT.SQL_TEXT字段进行截断:
可通过以下方法临时解决该问题
update WRH$_SQLTEXT set sql_text = dbms_lob.substr(sql_text,1000);
commit;
执行完上述操作后,成功生成了AWR报告,但是,过长的sql是被截断的,如果要获得完整的sql,可以根据AWR报告中的sqlid到系统中进行查找。
标签:Linux,报告,sql,AWR,生成,SQL,输入 From: https://blog.csdn.net/xdmxmf0/article/details/145257919