前言:
在生产环境中,当运行中的Oracle数据库出现性能问题的时候,DBA通常都需要我们生成Oracle数据库出现性能问题时间段的AWR或者ASH等报告来判断原因,所以维护人员学会收集AWR、ADDM、ASH报告是必须的。
环境:
CentOS 7.5
Docker 20.10.2
Oracle_11g
AWR报告收集:
AWR(Automatic Workload Repository)自动工作负载库是Oracle公司提供的一个工具。AWR来可以自动收集、处理、并保存性能统计结果,这种统计数据存放在内存中并随后存储在数据库中,这些数据既能在报告中显示也可以通过视图查询。可以协助我们找出Oracle的性能瓶颈。
@?/rdbms/admin/awrrpt
1.1 查看oracle容器内生成的AWR报告
[root@test ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3edfba76f476 registry.aliyuncs.com/helowin/oracle_11g "/bin/sh -c '/home/o…" 2 months ago Up 3 hours 0.0.0.0:1521->1521/tcp oracle_11g[root@test ~]# docker exec -it oracle_11g bash[oracle@3edfba76f476 /]$ su - rootPassword: helowin[root@3edfba76f476 ~]# su - oracle[oracle@3edfba76f476 ~]$ ls /home/oracle/app awrrpt_1_253_255.html
1.2 导出oracle容器内部的AWR报告至之宿主机
—》docker cp 容器ID:容器内文件路径 ./(宿主机路径)
[root@test ~]# docker cp 3edfba76f476:/home/oracle/awrrpt_1_253_255.html ./
其他(RAC):
因为有的系统一般都是RAC,所以需要在各个节点下的AWR报告,如果你愿意登录各个节点,可以使用一下SQL
SQL> @?/rdbms/admin/awrrpti.sql //和上边的区别就在这于,输入报告类型后的部分Instances in this Workload Repository schema~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host------------ -------- ------------ ------------ ------------ 3704746844 2 HS08 HS082 hp102* 3704746844 1 HS08 HS081 hp101Enter value for dbid: 3704746844 (会要求你输入数据库的DBID)Using 3704746844 for database IdEnter value for inst_num: 1 (输入数据库实例NUM,一般就是2节点,所以一般就是输入1 或者2)剩下的部分没啥区别Using 1 for instance number
ADDM报告收集:
ADDM(Automatic Database Diagnostic Monitor) 是植入Oracle数据库的一个自诊断引擎.ADDM 通过检查和分析AWR获取的数据来判断Oracle数据库中可能的问题.
@?/rdbms/admin/addmrpt
3.1 查看oracle容器内生成的ADDM报告
[root@test ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3edfba76f476 registry.aliyuncs.com/helowin/oracle_11g "/bin/sh -c '/home/o…" 2 months ago Up 3 hours 0.0.0.0:1521->1521/tcp oracle_11g[root@test ~]# docker exec -it oracle_11g bash[oracle@3edfba76f476 /]$ su - rootPassword: helowin[root@3edfba76f476 ~]# su - oracle[oracle@3edfba76f476 ~]$ pwd/home/oracle[oracle@3edfba76f476 ~]$ lsaddmrpt_1_254_256.txt app ashrpt_1_0421_1900.html awrrpt_1_253_255.html
3.2 导出oracle容器内部的ADDM报告至之宿主机
—》docker cp 容器ID:容器内文件路径 ./(宿主机路径)
[root@test ~]# docker cp 3edfba76f476:/home/oracle/ashrpt_1_0421_1900.html ./
其他(RAC):
因为有的系统一般都是RAC,所以需要在各个节点下的AWR报告,如果你愿意登录各个节点,可以使用一下SQL
@?/rdbms/admin/ashrpti.sql与上边的不同也就是需要输入DBID和实例NUMBER,明白提示的意思就行。
—注意— :
在生成报告期间,不能有数据库重启的操作,如果有会有报错。
查看生成的各项报告:
ADDM报告
ASH报告