Oracle的学习心得和知识总结(十八)|Oracle数据库性能压测工具swingbench的安装和使用及AWR ASH ADDM报告生成

news/2024/11/28 21:55:21/

注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下:

1、参考书籍:《Oracle Database SQL Language Reference》
2、参考书籍:《PostgreSQL中文手册》
3、EDB Postgres Advanced Server User Guides,点击前往
4、PostgreSQL数据库仓库链接,点击前往
5、PostgreSQL中文社区,点击前往
6、Oracle Real Application Testing 官网首页,点击前往
7、Oracle 21C RAT Testing Guide,点击前往
8、测试指南 Setting Up Replay Clients,点击前往
9、swingbench-免费的oracle性能压测工具,点击前往
10、使用免费负载生成器swingbench对oracle数据库进行压力测试(测试Oracle的功能或评估性能),点击前往
11、牛刀小试–Oracle Swingbench 压力测试,点击前往


1、本文内容全部来源于开源社区 GitHub和以上博主的贡献,本文也免费开源(可能会存在问题,评论区等待大佬们的指正)
2、本文目的:开源共享 抛砖引玉 一起学习
3、本文不提供任何资源 不存在任何交易 与任何组织和机构无关
4、大家可以根据需要自行 复制粘贴以及作为其他个人用途,但是不允许转载 不允许商用 (写作不易,还请见谅 💖)


Oracle数据库性能压测工具swingbench的安装和使用及AWR ASH ADDM报告生成

  • 文章快速说明索引
  • 压力测试工具简介
    • 简介
    • 安装
    • 使用
  • 负载之后生成报告
    • AWR报告
    • ADDM报告
    • ASH 报告



文章快速说明索引

学习目标:

目的:接下来这段时间我想做一些兼容Oracle数据库Real Application Testing (即:RAT)上的一些功能开发,本专栏这里主要是学习以及介绍Oracle数据库功能的使用场景、原理说明和注意事项等,基于PostgreSQL数据库的功能开发等之后 由新博客进行介绍和分享!


学习内容:(详见目录)

1、Oracle数据库性能压测工具swingbench的安装和使用及AWR ASH ADDM报告生成


学习时间:

2023年04月05日 18:46:41


学习产出:

1、Oracle数据库性能压测工具swingbench的安装和使用及AWR ASH ADDM报告生成
2、CSDN 技术博客 1篇


注:下面我们所有的学习环境是Centos7+PostgreSQL15.0+Oracle19c+MySQL5.7

postgres=# select version();version                                   
-----------------------------------------------------------------------------PostgreSQL 15.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.1.0, 64-bit
(1 row)postgres=##-----------------------------------------------------------------------------#SQL> select * from v$version; BANNER									    BANNER_FULL 								BANNER_LEGACY									CON_ID
--------------------------------------------------------------------------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production	    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production	Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production		     0Version 19.3.0.0.0SQL>
#-----------------------------------------------------------------------------#mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.19    |
+-----------+
1 row in set (0.06 sec)mysql>

压力测试工具简介

简介

Swingbench 是一个免费负载生成器(和基准测试),旨在对 Oracle 数据库进行压力测试。目前最新版本 Swingbench 2.6。SwingBench 由负载生成器,协调器和集群概述组成。该软件可以生成负载并绘制交易/响应时间图表。

  • dominicgiles.com 下载页,点击前往

在这里插入图片描述


  • https://github.com/domgiles/swingbench-public/releases

在这里插入图片描述

[root@dbserver ~]# mkdir /data
[root@dbserver ~]# 
[root@dbserver ~]# cd /data/
[root@dbserver data]# pwd
/data
[root@dbserver data]# wget https://github.com/domgiles/swingbench-public/releases/download/production/swingbench30092022.zip
...

Swingbench 可用于演示和测试技术,例如实际应用程序集群,在线表重建,备用数据库,在线备份和恢复等。SwingBench 附带的代码包括 6 个基准:OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle 和 StressTest …整个框架是用 Java 开发的,因此可以在各种平台上运行。要运行 swingbench,必须在客户端平台上安装 Java 虚拟机(JVM)。JVM 必须至少为 Java 8 或更高版本。尽管 Swingbench 附带了最新的 jdbc 库,这意味着它可以在不需要任何其他库的情况下针对 Oracle 数据库运行,但如果需要,则有必要安装 Oracle OCI 库。这些可以在这里下载:

  • http://www.oracle.com/technology/software/tech/oci/instantclient/index.html

-- 系统信息[root@dbserver data]# cat /etc/os-release 
NAME="Oracle Linux Server"
VERSION="7.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Oracle Linux Server 7.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.9
[root@dbserver data]# 
[root@dbserver data]# uname -a
Linux dbserver 5.4.17-2136.304.4.2.el7uek.x86_64 #2 SMP Fri Feb 25 17:37:41 PST 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@dbserver data]# 
[root@dbserver data]# cat /proc/version
Linux version 5.4.17-2136.304.4.2.el7uek.x86_64 (mockbuild@build-ol7-x86_64.oracle.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39.0.3) (GCC)) #2 SMP Fri Feb 25 17:37:41 PST 2022
[root@dbserver data]#

安装

第一步:卸载系统自带的OpenJDK以及相关的Java文件

# 查看JDK信息
[root@dbserver ~]# java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
[root@dbserver ~]# # 检测jdk的安装包
[root@dbserver ~]# rpm -qa | grep java 
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
tzdata-java-2021e-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.322.b06-1.el7_9.x86_64
[root@dbserver ~]#
# 删除相关Java文件[root@dbserver ~]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64 tzdata-java-2021e-1.el7.noarch python-javapackages-3.4.1-11.el7.noarch java-1.8.0-openjdk-headless-1.8.0.322.b06-1.el7_9.x86_64
[root@dbserver ~]# 
[root@dbserver ~]# rpm -qa | grep java 
[root@dbserver ~]#

第二步:JDK安装

  • https://www.oracle.com/java/technologies/downloads/#java20

在这里插入图片描述

[root@dbserver ~]# cd /data/
[root@dbserver data]# 
[root@dbserver data]# wget https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.tar.gz
...
[root@dbserver data]# tar -zxvf jdk-20_linux-x64_bin.tar.gz 
...
[root@dbserver data]# ls
jdk-20  jdk-20_linux-x64_bin.tar.gz  swingbench30092022.zip
[root@dbserver data]# 

第三步:修改配置文件/etc/profile,配置JDK相关的环境变量


#java environment
export JAVA_HOME=/data/jdk-20
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@dbserver data]# vim /etc/profile
[root@dbserver data]# 
[root@dbserver data]# . /etc/profile
[root@dbserver data]# 
[root@dbserver data]# 
[root@dbserver data]# java -version
java version "20" 2023-03-21
Java(TM) SE Runtime Environment (build 20+36-2344)
Java HotSpot(TM) 64-Bit Server VM (build 20+36-2344, mixed mode, sharing)
[root@dbserver data]#
[root@dbserver data]# javac -version
javac 20
[root@dbserver data]#

第四步:swingbench安装

[root@dbserver data]# unzip swingbench30092022.zip
...[root@dbserver data]# cd swingbench/
[root@dbserver swingbench]# 
[root@dbserver swingbench]# ls
bin  configs  launcher  lib  log  README.txt  source  sql  utils  winbin  wizardconfigs
[root@dbserver swingbench]# 
[root@dbserver swingbench]# ll
总用量 36
drwxr-xr-x 3 root root 4096 10月  1 2022 bin
drwxr-xr-x 2 root root 4096 10月  1 2022 configs
drwxr-xr-x 2 root root  112 3月  14 2022 launcher
drwxr-xr-x 3 root root 4096 6月  24 2022 lib
drwxr-xr-x 2 root root    6 3月   3 2010 log
-rw-rw-rw- 1 root root 6163 3月  16 2022 README.txt
drwxr-xr-x 3 root root   50 6月  24 2022 source
drwxr-xr-x 2 root root 8192 6月  24 2022 sql
drwxr-xr-x 2 root root   61 5月  13 2022 utils
drwx------ 3 root root 4096 5月   6 2022 winbin
drwxr-xr-x 2 root root  155 3月  14 2022 wizardconfigs
[root@dbserver swingbench]#

使用


注:本人使用的是Oracle 19C,以下教程都是在19C上进行的!

[oracle@dbserver ~]$ cat /home/oracle/oracle19c/product/19c/dbhome_1/network/admin/listener.ora
# listener.ora Network Configuration File: /home/oracle/oracle19c/product/19c/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.ORCL =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))
SID_LIST_LISTENER =  
(SID_LIST =  (SID_DESC =  (GLOBAL_DBNAME = orcl)(SID_NAME = orcl))
)
[oracle@dbserver ~]$ cat  ./oracle19c/product/19c/dbhome_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /home/oracle/oracle19c/product/19c/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.LISTENER_ORCL =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))PDBORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLPDB)))
[oracle@dbserver ~]$

第零步:启动Oracle服务

[oracle@dbserver ~]$ lsnrctl startLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-APR-2023 19:43:46Copyright (c) 1991, 2019, Oracle.  All rights reserved.Starting /home/oracle/oracle19c/product/19c/dbhome_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /home/oracle/oracle19c/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /home/oracle/oracle19c/diag/tnslsnr/dbserver/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbserver.localdomain)(PORT=1521)))Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                05-APR-2023 19:44:02
Uptime                    0 days 0 hr. 0 min. 35 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/oracle19c/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /home/oracle/oracle19c/diag/tnslsnr/dbserver/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbserver.localdomain)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@dbserver ~]$

在这里插入图片描述

如上,pdb没有自动注册到侦听,手动注册如下:

[oracle@dbserver ~]$ sqlplus sysdba/123456 as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 5 20:22:36 2023
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.  All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.119.132)(PORT=1521)))';System altered.SQL> alter system set REMOTE_LISTENER=' (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.119.132)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.119.132)(PORT = 1521)))';System altered.SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
[oracle@dbserver ~]$

在这里插入图片描述


第一步:创建测试数据 如下:

[root@dbserver swingbench]# cd bin/
[root@dbserver bin]# 
[root@dbserver bin]# pwd
/data/swingbench/bin
[root@dbserver bin]# 
[root@dbserver bin]# ls
bmcompare  ccwizard  charbench  coordinator  data  jsonwizard  minibench  oewizard  results2pdf  sbutil  shwizard  sqlbuilder  swingbench  tpcdswizard  tpchwizard
[root@dbserver bin]# 
[root@dbserver bin]# ./oewizard

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


注:这个地方 不要用system,最好使用sys用户!如下:

在这里插入图片描述

注:如果 上面这一步next失败,需要重新看一下 服务启动及监听 是否正常!


[oracle@dbserver orclpdb]$ pwd
/home/oracle/oracle19c/oradata/ORCL/orclpdb
[oracle@dbserver orclpdb]$ 
[oracle@dbserver orclpdb]$ ll
总用量 792244
-rw-r-----. 1 oracle oracle 398467072 4月   5 19:51 sysaux01.dbf
-rw-r-----. 1 oracle oracle 293609472 4月   5 19:51 system01.dbf
-rw-r-----. 1 oracle oracle  37756928 3月   3 2022 temp01.dbf
-rw-r-----. 1 oracle oracle 104865792 4月   5 19:51 undotbs01.dbf
-rw-r-----. 1 oracle oracle   5251072 4月   5 19:46 users01.dbf
[oracle@dbserver orclpdb]$ 

在这里插入图片描述

注:上面这个文件路径 特别要说明一下:第一次进来 是没有的,需要大家自己填一个文件路径(这个文件一定不要存在)!!!

在这里插入图片描述

注:我们这里根据自己的需要,选择合适的负载数据量及并发,如下:

在这里插入图片描述
在这里插入图片描述


开始加载数据,如下:

在这里插入图片描述

此刻时间:2023年04月06日 11:18:08

在这里插入图片描述

结束时间:2023年04月06日 11:22:02

在这里插入图片描述

在这里插入图片描述

注:如上 一个错误都没有才算成功!这个很重要 不然下面会出问题的!


开始性能压测,修改connect string,配置server monitoring相关配置参数,调整transtions的load ratio、number of users等 如下:

在这里插入图片描述

在这里插入图片描述


开始压测,如下:(若是一切问题都没有)

在这里插入图片描述


负载之后生成报告

2023年04月06日 12:54:34

等到一定负载之后,我们断开bench,如下:

在这里插入图片描述

2023年04月06日 13:01:15


AWR报告

AWR(Automatic Workload Repository 自动工作负载库)这个工具可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。我们可以根据这些统计数据来分析一些潜在的问题。

AWR的原理:当Oracle启动后,后台会有个进程去每小时采集一次系统的快照信息,信息采集来源为: V$active_Session_History视图,该视图可以展示最近活动会话的历史记录。并将采集到的信息保存8天。采样频率和保存时间可配置,如下:

SQL> set lines 200
SQL> col SNAP_INTERVAL  format a20
SQL> col SRC_DBNAME format a20
SQL> 
SQL> select * from dba_hist_wr_control;DBID SNAP_INTERVAL	RETENTION								    TOPNSQL	   CON_ID   SRC_DBID SRC_DBNAME
---------- -------------------- --------------------------------------------------------------------------- ---------- ---------- ---------- --------------------
1591249645 +00000 01:00:00.0	+00008 00:00:00.0							    DEFAULT		0 1591249645 CDB$ROOTSQL>

快照由MMON和MMNL的进程自动地每隔固定时间采集一次。MMON进程负责执行多种和管理相关的后台任务,MMNL负责执行轻量级切高频率的管理相关的后台任务。

Oracle 可以将8天的awr快照数据进行储存,我们可以将oracle中的任何两个时间点(输入日期后,会返回相应的时段内,快照对应的时间 如下)生成该段时间内的awr报告。


首先创建一个快照,如下:

SQL> exec dbms_workload_repository.create_snapshot();PL/SQL procedure successfully completed.SQL> 
SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql
...

在这里插入图片描述

...
<p />
End of Report
</body></html>
Report written to awrrpt_1_1124_1125.html
SQL> 

如上,我们这里选择两个快照:1124 1125(它对应上面刚创建的)!


这里需要注意的是:AWR 报告是DBA 的一个重要辅助工具,用来帮助我们分析数据库的性能问题。我们通常说的AWR 报告默认指的是awrrpt.sql 这个单实例的AWR 报告。

[oracle@dbserver ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@dbserver admin]$ 
[oracle@dbserver admin]$ ls -lrt awr*.sql
-rw-r--r--. 1 oracle oracle   744 1月  26 2017 awrrptinoop.sql
-rw-r--r--. 1 oracle oracle  1730 1月  26 2017 awrrptidc.sql
-rw-r--r--. 1 oracle oracle  7657 5月  29 2017 awrupd12.sql
-rw-r--r--. 1 oracle oracle  3114 5月  29 2017 awrsqrpt.sql
-rw-r--r--. 1 oracle oracle 10161 5月  29 2017 awrrpti.sql
-rw-r--r--. 1 oracle oracle 14374 5月  29 2017 awrinput.sql
-rw-r--r--. 1 oracle oracle  1533 5月  29 2017 awrgrpt.sql
-rw-r--r--. 1 oracle oracle  8606 5月  29 2017 awrgrpti.sql
-rw-r--r--. 1 oracle oracle 12399 5月  29 2017 awrginp.sql
-rw-r--r--. 1 oracle oracle  3667 5月  29 2017 awrgdrpt.sql
-rw-r--r--. 1 oracle oracle  9384 5月  29 2017 awrgdrpi.sql
-rw-r--r--. 1 oracle oracle 11610 5月  29 2017 awrextr.sql
-rw-r--r--. 1 oracle oracle  3883 5月  29 2017 awrddrpt.sql
-rw-r--r--. 1 oracle oracle  1458 5月  29 2017 awrblmig.sql
-rw-r--r--. 1 oracle oracle 11458 7月   6 2017 awrload.sql
-rw-r--r--. 1 oracle oracle  2907 7月  29 2017 awrinpnm.sql
-rw-r--r--. 1 oracle oracle 26042 7月  29 2017 awrgdinp.sql
-rw-r--r--. 1 oracle oracle 30797 7月  29 2017 awrddinp.sql
-rw-r--r--. 1 oracle oracle  2539 1月   4 2018 awrmacro.sql
-rw-r--r--. 1 oracle oracle  8333 8月   9 2018 awrrpt.sql
-rw-r--r--. 1 oracle oracle 12153 8月  16 2018 awrsqrpi.sql
-rw-r--r--. 1 oracle oracle 10177 8月  21 2018 awrddrpi.sql
-rw-r--r--. 1 oracle oracle 49857 8月  23 2018 awrinfo.sql
[oracle@dbserver admin]$

如上:

awrrpt.sql: 单实例AWR 报告
awrgrpt.sql: RAC 的AWR 报告
awrddrpt.sql: 单实例AWR 对比报告
awrgdrpt.sql: RAC 的AWR 对比报告
awrsqrpt.sql: 单个SQL 的报告
  • 在之前的版本,AWR,ADDM, ASH 是三个独立的部分,有时在分析时我们需要分别收集, 在19c的AWR 报告中,包含了这3部分的内容
  • 针对CDB执行命令收集AWR,并且Oracle 19c 的PDB AWR 报告也包含了PDB 的ASH 和 ADDM 的内容
  • 在CDB 架构下,尤其是是多个PDB的情况下,要注意这一点。如果CDB 环境有多个PDB,那么如果收集的是整个CDB 的AWR报告,那么该报告也是包含所有PDB的数据,无法准确分析是哪个PDB 导致的性能问题。所以对于多PDB的情况下,建议是按PDB 来收集AWR报告,如下:
SQL> show pdbsCON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED			  READ ONLY  NO3 ORCLPDB			  READ WRITE NO
SQL> alter session set container=ORCLPDB;Session altered.SQL> show con_nameCON_NAME
------------------------------
ORCLPDB
SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql
...

在这里插入图片描述


ADDM报告

SQL> @$ORACLE_HOME/rdbms/admin/addmrpt.sql
...

在这里插入图片描述

同样选择上面这两个快照!

...
Miscellaneous Information
-------------------------
There was no significant database activity to run the ADDM.End of Report
Report written to addmrpt_1_1124_1125.txt
SQL> 

ASH 报告

SQL> @$ORACLE_HOME/rdbms/admin/ashrpt.sqlSpecify the Report Type
...

在这里插入图片描述

选择时间:负载开始的时候 持续10分钟即可(我们负载实际上不到10分钟)!

...Using the report name ashrpt_1_0406_1304.htmlSummary of All User Input
-------------------------
Format	       : HTML
DB Id	       : 1591249645
Inst num       : 1
Begin time     : 06-Apr-23 12:54:00
End time       : 06-Apr-23 13:04:00
Slot width     : Default
Report targets : 0
Report name    : ashrpt_1_0406_1304.html...
<p />
End of Report
</body></html>
Report written to ashrpt_1_0406_1304.html
SQL>

-- 生成的报告如下:[oracle@dbserver orclpdb]$ ll
总用量 3743760
-rw-rw-r--  1 oracle oracle       1170 4月   6 13:13 addmrpt_1_1124_1125.txt
-rw-rw-r--  1 oracle oracle      50430 4月   6 13:16 ashrpt_1_0406_1304.html
-rw-rw-r--  1 oracle oracle     879509 4月   6 13:09 awrrpt_1_1124_1125.html
-rw-rw----  1 oracle oracle 2670731264 4月   6 13:06 soe.dbf
-rw-r-----. 1 oracle oracle  398467072 4月   6 13:19 sysaux01.dbf
-rw-r-----. 1 oracle oracle  293609472 4月   6 13:19 system01.dbf
-rw-r-----. 1 oracle oracle  261103616 4月   6 13:01 temp01.dbf
-rw-r-----. 1 oracle oracle  204480512 4月   6 13:19 undotbs01.dbf
-rw-r-----. 1 oracle oracle    5251072 4月   6 13:05 users01.dbf
[oracle@dbserver orclpdb]$

注:

  • @$ORACLE_HOME/rdbms/admin/awrrpt.sql是以前statspack的扩展,收集信息更详细,查看长期的数据库情况
  • @$ORACLE_HOME/rdbms/admin/ashrpt.sql查看当前的数据库情况,因为ash是每秒从v$session进行进行取样,awr收集的数据要比ash多得多

一般收集数据库信息的话要结合awr和ash

  • @$ORACLE_HOME/rdbms/admin/addmrpt .sql相当于是驻留在oracle里的一位专家,是一个自我诊断引擎。产生symptom,problem,infomation,提供解决问题的建议,并自动修复一些具体的故障
  • @$ORACLE_HOME/rdbms/admin/awrinfo.sql显示的都是awr的相关信息,包括快照信息、sysaux空间使用、awr组件、ash等信息

差别如下:

  • awr与ash的最主要的区别在于:awr是平面的,全面的,ash是立体的,更侧重于session的event跟踪,由于业务量大的数据库的event wait是瞬息万变
  • awr很可能会监控不到,为了弥补这个不足,ash才可以对session的event进行跟踪
  • ash与addm的区别在于:addm偶重于基于对当据库当前状态的分析,对存在的问题提供指导性的意见
  • 可以说ash,addm是awr的补充,awr全面地收集数据库的状态,但ash/addm是侧重要对收集的数据进行分析,并提供一些有益的建议

http://www.ppmy.cn/news/40190.html

相关文章

【Kubernetes 企业项目实战】11、掌握 Kubernetes Kustomize 技术从入门到企业实战(下)

目录 一、Kustomize 进阶 1.1 使用覆盖定制资源 1.1.1 kustomization.yaml 1.1.2 deploy-patch.yaml 1.1.3 ing-patch.yaml 1.1.4 op 操作类型介绍 二、生成测试环境定制资源 三、使用 Kustomize 来应用、查看和删除对象 3.1 创建应用 3.2 查看应用 3.3 删除应用 四…

在PHP中输出JS语句以及乱码问题的解决方案

在PHP中输出JS语句以及乱码问题的解决方案 怎样在php中输出js语句&#xff1f; 示例 $classState""; if($state0){ $classState"已下课"; } else{ $classState"正在上课"; } echo ""; ?> 这样在页面的其他地方,就可以直接引用php中…

学习系统编程No.14【动静态库】

引言&#xff1a; 北京时间&#xff1a;2023/4/3/7:06&#xff0c;刚刚晨跑回来&#xff0c;为了摆脱困意&#xff0c;刷了一下视屏&#xff0c;哈哈哈&#xff01;我发现我每次刷视屏都是被迫的&#xff0c;都是看到某个感兴趣的标题&#xff0c;然后点进去一看&#xff0c;就…

PHP观察者模式(Observer Pattern)

PHP观察者模式&#xff08;Observer Pattern&#xff09; 观察者模式是一种行为设计模式&#xff0c;它定义了一种订阅机制&#xff0c;让一个或多个对象&#xff08;观察者&#xff09;自动被通知并更新&#xff0c;当被观察对象&#xff08;主题&#xff09;的状态发生改变时…

Antd Table Pro框架Protable组件中rowSelection方法的一个坑

首先上截图看我遇到的问题跟你是否一样&#xff0c;全选了&#xff0c;还是提示就选了1个。。。。。 解决办法&#xff1a; 就一个点&#xff0c;非常坑&#xff0c;在你的protable组件里有个方法rowKey的值改为&#xff1a;{record > record.gnlkid} 注意gnlkid是你接口返…

JS(1)

本博客的js只讨论浏览器上的&#xff0c;可以开发网页的js&#xff0c;不考虑node.js 主要分为三个部分&#xff1a; ECMAScript 也就是JavaScript语法 DOM 页面文档对象模型 对页面中的元素进行操作 BOM 浏览器对象模型 对浏览器窗口进行操作 后两者都是浏览器给js提供的…

天气Weather

前言 加油 原文 天气常用会话 ❶ It looks as though it might clear up. 看起来天好像要转晴。 ❷ The forecast is not accurate. 预报不准确。 ❸ The weatherman says we’ll have a cold spell before the end of this week. 天气预报员说,在这个周末之前会有一股寒…

通读《技术管理实战36讲》1、自我倾听篇

你好&#xff0c;我是小Z&#xff0c;一个工作在交付前线的程序员&#xff0c;我们正在通读《技术管理实战36讲》&#xff0c;作者刘建国。今天我们要梳理的章节是“自我倾听篇”。 在第1篇《多年前的那些工程师都去哪了&#xff1f;》中&#xff0c; 作者借助上周的“老知道人…