Oracle的学习心得和知识总结(二十三)|Oracle数据库Real Application Testing之Database Replay相关视图

news2024/10/6 12:22:42

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

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,点击前往


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


Oracle数据库Real Application Testing之Database Replay相关视图

  • 文章快速说明索引
    • DBA_WORKLOAD_FILTERS
    • DBA_WORKLOAD_CAPTURES
    • DBA_WORKLOAD_CAPTURE_SQLTEXT
    • DBA_WORKLOAD_REPLAYS
    • DBA_WORKLOAD_CONNECTION_MAP
    • DBA_WORKLOAD_REPLAY_CLIENTS
    • DBA_WORKLOAD_REPLAY_DIVERGENCE
    • DBA_WORKLOAD_DIV_SUMMARY
    • DBA_WORKLOAD_REPLAY_SCHEDULES



文章快速说明索引

学习目标:

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


学习内容:(详见目录)

1、Oracle数据库Real Application Testing之Database Replay相关视图


学习时间:

2023年04月23日 20:27:54


学习产出:

1、Oracle数据库Real Application Testing之Database Replay相关视图
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		     0
									    Version 19.3.0.0.0


SQL>
#-----------------------------------------------------------------------------#

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.19    |
+-----------+
1 row in set (0.06 sec)

mysql>

注:数据库回放的实操大致步骤一样,不过在不同的场景下有不同的操作 因此有了不同的实操案例,有兴趣的小伙伴们可以看一下之前的实操文档:

  • Oracle的学习心得和知识总结(十三)|Oracle数据库Real Application Testing之Database Replay实操(一),点击前往
  • Oracle的学习心得和知识总结(二十二)|Oracle数据库Real Application Testing之Database Replay实操(二),点击前往

DBA_WORKLOAD_FILTERS

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_FILTERS.html

DBA_WORKLOAD_FILTERS 显示已在当前数据库中定义的所有工作负载过滤器。在 Oracle 数据库 11g 中,仅支持 CAPTURE 类型的负载过滤器。从 Oracle Database 11gR2 开始,支持 REPLAY 类型的过滤器。

ColumnDatatypeNULLDescription
TYPEVARCHAR2(30)工作负载过滤器的类型(CAPTURE 或 REPLAY)
IDVARCHAR2(40)工作负载过滤器的序号
STATUSVARCHAR2(6)工作负载过滤器的状态:NEW - 此过滤器将由下一个后续操作使用,例如下一个工作负载捕获。IN USE - 此过滤器当前正被正在进行的操作使用,例如活动工作负载捕获。USED - 此过滤器过去曾被某些操作使用过,例如过去的工作负载捕获
SET_NAMEVARCHAR2(1000)过滤器所属的过滤器集的名称
NAMEVARCHAR2(128)工作负载过滤器的名称
ATTRIBUTEVARCHAR2(128)定义过滤器的属性的名称
VALUEVARCHAR2(4000)定义筛选器的属性的值。 如果属性是字符串类型,则支持 %_ 等通配符。

DBA_WORKLOAD_CAPTURES

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_CAPTURES.html

DBA_WORKLOAD_CAPTURES 显示当前数据库中已执行的所有工作负载捕获。它还列出调用了 DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO() 或 DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO() 的捕获。每行包含有关一个工作负载捕获的信息。

ColumnDatatypeNULLDescription
IDNUMBERNOT NULL工作负载捕获的内部密钥
NAMEVARCHAR2(128)NOT NULL工作负载捕获的名称
DBIDNUMBERNOT NULL捕获工作负载的数据库的 ID
DBNAMEVARCHAR2(128)NOT NULL捕获工作负载的数据库的名称
DBVERSIONVARCHAR2(17)NOT NULL捕获工作负载的数据库版本
PARALLELVARCHAR2(3)指示捕获工作负载的数据库是 Oracle RAC 数据库 (YES) 还是单实例数据库 (NO)
DIRECTORYVARCHAR2(128)NOT NULL用于工作负载捕获的目录对象的名称
STATUSVARCHAR2(40)NOT NULL工作负载捕获的当前状态:IN PROGRESS - 工作负载捕获正在进行中。COMPLETED - 工作负载捕获已成功完成。FAILED - 工作负载捕获因遇到错误而中止
START_TIMEDATENOT NULL捕获开始的日期时间
END_TIMEDATE捕获完成或失败的日期时间;如果捕获仍在进行中则为 NULL
DURATION_SECSNUMBER工作负载捕获的持续时间(以秒为单位)
START_SCNNUMBERNOT NULL本次捕获的起始 SCN 值
END_SCNNUMBER本次捕获的结束 SCN 值;如果捕获仍在进行中则为 NULL
DEFAULT_ACTIONVARCHAR2(30)NOT NULL应用工作负载捕获过滤器的模式:INCLUDE - 所有捕获过滤器都被视为 EXCLUSION 过滤器,确定不会捕获的工作负载。EXCLUDE - 所有捕获过滤器都被视为 INCLUSION FILTERS,确定将捕获的工作负载。
FILTERS_USEDNUMBER用于此捕获的过滤器数
CAPTURE_SIZENUMBER工作负载捕获的总大小
DBTIMENUMBER此工作负载捕获中记录的数据库时间总量(以微秒为单位)
DBTIME_TOTALNUMBER在工作负载捕获期间整个数据库的数据库时间总量(以微秒为单位),包括未捕获的工作负载部分
USER_CALLSNUMBER此工作负载捕获中记录的用户调用总数
USER_CALLS_TOTALNUMBER工作负载捕获期间整个数据库的用户调用总数,包括未捕获的工作负载部分
USER_CALLS_UNREPLAYABLENUMBER在此工作负载捕获的后续重放中不会重放的用户调用总数
PLSQL_SUBCALL_SIZENUMBER从 PL/SQL 执行的 SQL 的工作负载捕获总大小
PLSQL_CALLSNUMBER工作负载捕获中记录的 PL/SQL 调用总数
PLSQL_SUBCALLSNUMBER从 PL/SQL 执行的 SQL 的工作负载捕获中记录的调用总数
PLSQL_DBTIMENUMBER工作负载捕获中记录的来自 PL/SQL 调用的数据库时间总量(以微秒为单位)
TRANSACTIONSNUMBER此工作负载捕获中记录的事务总数
TRANSACTIONS_TOTALNUMBER工作负载捕获期间整个数据库的事务总数,包括未捕获的工作负载部分
CONNECTSNUMBER此工作负载捕获中记录的会话连接总数
CONNECTS_TOTALNUMBER在工作负载捕获期间跨整个数据库的会话连接总数,包括未捕获的工作负载部分
ERRORSNUMBER此工作负载捕获中记录的错误总数
AWR_DBIDNUMBER与此工作负载捕获相对应的 AWR 快照的数据库 ID。对于在当前数据库中执行的捕获,此值等于当前数据库的 DBID。对于在其他数据库中执行的捕获,此值将为 NULL 或由 DBMS_WORKLOAD_CAPTURE.IMPORT_AWR() 填充
AWR_BEGIN_SNAPNUMBER与此工作负载捕获相对应的 AWR 快照的开始快照 ID
AWR_END_SNAPNUMBER与此工作负载捕获相对应的 AWR 快照的结束快照 ID
AWR_EXPORTEDVARCHAR2(12)指示对应于此工作负载捕获的 AWR 快照是否已使用 DBMS_WORKLOAD_CAPTURE.EXPORT_AWR() 导出(YES)或未导出(NO),或者是否无法导出 AWR 快照,因为捕获仍在进行中,已成功运行至完成,或者是在不同的数据库中完成的,没有导出(NOT POSSIBLE)
ERROR_CODENUMBER此工作负载捕获的错误代码
ERROR_MESSAGEVARCHAR2(512)此工作负载捕获的错误消息
DIR_PATHVARCHAR2(4000)NOT NULL工作负载捕获目录对象的完整目录路径
DIR_PATH_SHAREDVARCHAR2(10)NOT NULL负载捕获目录是否为所有记录数据库实例共享(仅适用于Oracle RAC数据库)
LAST_PROCESSED_VERSIONVARCHAR2(128)最后使用 DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE() 预处理此捕获的数据库版本;如果从未对捕获进行过预处理,则为 NULL
SQLSET_OWNERVARCHAR2(128)SQL 调优集所有者的用户名
SQLSET_NAMEVARCHAR2(128)此工作负载捕获的 SQL 调整集的名称
PLSQL_MODEVARCHAR2(12)PL/SQL 调用的捕获选项。可能的值:TOP_LEVEL:仅限顶级 PL/SQL;EXTENDED:顶级 PL/SQL 和从 PL/SQL 执行的 SQL
ENCRYPTIONVARCHAR2(128)指示用于给定捕获的加密标准:NULL - 捕获文件未加密;AES128 – 捕获文件使用 AES128 加密;AES192 – 捕获文件使用 AES192 加密;AES256 – 捕获文件使用 AES256 加密
ENCRYPTION_VERIFIERRAW(512)内部用于创建加密捕获的数据
PATCH_NAMEVARCHAR2(128)数据库工作负载捕获和重放补丁名称。此列仅在向后移植到 Oracle Database 12c 第 1 版 (12.1) 和更早版本时填充
STORAGE_TYPENUMBER(38)描述捕获的工作负载的存储位置

DBA_WORKLOAD_CAPTURE_SQLTEXT

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_CAPTURE_SQLTEXT.html

DBA_WORKLOAD_CAPTURE_SQLTEXT 显示已记录在工作负载捕获中的所有 SQL 语句。对于那些长度超过 1000 个字符的 SQL 语句,可以使用 DBMS_WORKLOAD_REPLAY.LOAD_LONG_SQLTEXT 过程将完整语句加载到 DBA_WORKLOAD_LONG_SQLTEXT 视图。

ColumnDatatypeNULLDescription
CAPTURE_IDNUMBER(38)NOT NULL工作负载捕获的内部密钥
SQL_IDVARCHAR2(13)NOT NULL库缓存中父游标的 SQL 标识符
SQL_TYPEVARCHAR2(64)SQL 语句的类型,可以包括 INSERT、SELECT 和 CREATE INDEX 等值
SQL_TEXTVARCHAR2(1000)当前游标的 SQL 文本的前千个字符
SQL_LENGTHNUMBER(38)SQL语句的长度
SQL_TEXT_COMPLETECHAR(1)指示 SQL_TEXT 列是否包含 SQL 语句的全文。可能的值:Y:SQL_TEXT 列包括 SQL 语句的全文。N:SQL_TEXT 列仅包含 SQL 文本的前千个字符

DBA_WORKLOAD_REPLAYS

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_REPLAYS.html

DBA_WORKLOAD_REPLAYS 显示当前数据库中已执行的所有工作负载重放。它还列出了调用了 DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO() 的回放。每行包含有关一个工作负载重放的信息。

ColumnDatatypeNULLDescription
IDNUMBERNOT NULL工作负载重放的内部密钥
NAMEVARCHAR2(128)NOT NULL工作负载重放的名称
DBIDNUMBERNOT NULL重放工作负载的数据库的 ID
DBNAMEVARCHAR2(128)NOT NULL重放工作负载的数据库的名称
DBVERSIONVARCHAR2(17)NOT NULL重放工作负载的数据库版本
PARALLELVARCHAR2(3)指示重放负载的数据库是 Oracle RAC 数据库 (YES) 还是单实例数据库 (NO)
DIRECTORYVARCHAR2(128)NOT NULL工作负载重放的目录对象的名称
CAPTURE_IDNUMBER重放的捕获 (DBA_WORKLOAD_CAPTURES.ID) 的 ID。如果回放涉及回放计划,则 CAPTURE_ID 将为空
STATUSVARCHAR2(40)NOT NULL工作负载重放的当前状态:PREPARE - 工作负载准备已启动,正在等待客户端加入。IN PROGRESS - 正在进行工作负载重放。COMPLETED - 工作负载重放已成功完成。CANCELLED - 工作负载重放或工作负载准备已被取消。FAILED - 工作负载重放由于遇到错误而中止
PREPARE_TIMEDATE工作负载准备开始的日期时间
START_TIMEDATE重放开始的日期时间
END_TIMEDATE重放完成或取消的日期时间;如果重放仍在进行中则为 NULL
DURATION_SECSNUMBER工作负载重放的持续时间(以秒为单位)
NUM_CLIENTSNUMBERNOT NULL此工作负载重放中使用的工作负载重放客户端进程数
NUM_CLIENTS_DONENUMBERNOT NULL已完成重放的工作负载重放客户端进程数
FILTER_SET_NAMEVARCHAR2(128)用于回放的过滤器集的名称
DEFAULT_ACTIONVARCHAR2(30)NOT NULLReserved for future use
SYNCHRONIZATIONVARCHAR2(9)指示是否应维护记录的事务语义 (TRUE) 或 (FALSE)。启用同步后,将保留在原始工作负载捕获期间观察到的提交顺序。重放的每个动作只有在其所有相关提交都已执行后才会执行。相关提交是在原始工作负载捕获中的给定操作之前发出的提交。另请参阅:DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY() 了解此重放参数的详细说明
CONNECT_TIME_SCALENUMBERNOT NULL重放期间捕获的流的连接时间比例因子。该值被解释为百分比。默认值 100 表示 100%。另请参阅:DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY() 了解此重放参数的详细说明
THINK_TIME_SCALENUMBERNOT NULL考虑重放期间捕获的流的时间比例因子。它缩放来自同一捕获流的两个连续用户调用之间经过的思考时间。输入被解释为百分比。默认值 100 表示 100%。另请参阅:DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY() 了解此重放参数的详细说明
THINK_TIME_AUTO_CORRECTVARCHAR2(5)指示思考时间是否应在调用之间自动更正 (TRUE) 或 (FALSE)。如果回放比捕获慢,则值为 TRUE 会减少思考时间。FALSE 值不执行任何操作。另请参阅:DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY() 了解此重放参数的详细说明
SCALE_UP_MULTIPLIERNUMBERNOT NULL在多重捕获重放之前,SCALE_UP_MULTIPLIER 用于扩展工作负载捕获的查询部分。来自每个捕获会话的查询同时重放的次数与 SCALE_UP_MULTIPLIER 的值一样多
USER_CALLSNUMBER重放的用户调用总数
DBTIMENUMBER重放的累积数据库时间(以微秒为单位)
NETWORK_TIMENUMBER重放的累计网络时间(以微秒为单位)
THINK_TIMENUMBER重放的累计思考时间(以微秒为单位)
PAUSE_TIMENUMBER重放暂停的总时间(以秒为单位)(通过调用 PAUSE_REPLAY 过程)
PLSQL_CALLSNUMBER重放的顶级 PL/SQL 调用总数
PLSQL_SUBCALLSNUMBER从 PL/SQL 执行的 SQL 的重放调用总数
PLSQL_DBTIMENUMBER来自 PL/SQL 调用的数据库时间总量(以微秒为单位)
ELAPSED_TIME_DIFFNUMBERReserved for future use
REPLAY_DEADLOCKSNUMBER工作负载重放使用来自捕获文件的计时信息或基于提交的同步。使用基于提交的同步,捕获时间提交顺序在重放期间被保留,并且会话通常等待要进行下一次提交的会话;这种等待被归类为WCR: replay clock等待。如果要进行下一次提交的会话本身被等待WCR: replay clock的会话阻塞,则会发生重放死锁。重放死锁通过允许阻止程序继续执行并乱序提交来解决。重放死锁不会被检测为数据库死锁,因为WCR: replay clock是一个空闲等待,专门为数据库重放引入
AWR_DBIDNUMBER与此工作负载重放对应的 AWR 快照的数据库 ID。对于在当前数据库中执行的重放,此值等于当前数据库的 DBID。对于在其他数据库中执行的重放,此值将为 NULL 或由 DBMS_WORKLOAD_REPLAY.IMPORT_AWR() 填充。另见:DBMS_WORKLOAD_REPLAY.IMPORT_AWR()
AWR_BEGIN_SNAPNUMBER与此工作负载重放相对应的 AWR 快照的开始快照 ID
AWR_END_SNAPNUMBER与此工作负载重放对应的 AWR 快照的结束快照 ID
AWR_EXPORTEDVARCHAR2(12)指示是否已使用 DBMS_WORKLOAD_REPLAY.EXPORT_AWR()(YES)或未使用(NO)导出与此工作负载重放相对应的 AWR 快照,或者是否因为重放仍在进行中而无法导出 AWR 快照,已成功运行至完成,或者是在未从中导出的不同数据库中完成的(NOT POSSIBLE)。另见:DBMS_WORKLOAD_REPLAY.EXPORT_AWR()
ERROR_CODENUMBER此工作负载重放的错误代码
ERROR_MESSAGEVARCHAR2(512)此工作负载重放的错误消息
DIR_PATHVARCHAR2(4000)NOT NULL重放目录对象的完整目录路径
REPLAY_DIR_NUMBERNUMBER根据此视图中其他列的值计算的散列值,例如 NAME、DBID、DBNAME、PREPARE_TIME、START_TIME 和 END_TIME 列。对于任何重放,它都应该是相当独特的。该值用于在重放目录下创建子目录
SQLSET_OWNERVARCHAR2(128)SQL 调优集所有者的用户名
SQLSET_NAMEVARCHAR2(128)此工作负载重放的 SQL 调整集的名称
SCHEDULE_NAMEVARCHAR2(128)要重放的计划的名称。它定义了一个或多个工作负载捕获,以及开始重放的顺序。如果 SCHEDULE_NAME 为 NULL,则重放是自 Oracle Database 11g 以来引入的常规重放,使用来自 DBMS_WORKLOAD_REPLAY 的现有 API 完成:INITIALIZE_REPLAYPREPARE_REPLAYSTART_REPLAY。如果 SCHEDULE_NAME 不为 NULL,则重放是 Oracle Database 12c 中引入的新的合并重放。也就是说,它是在 DBMS_WORKLOAD_REPLAYINITIALIZE_CONSOLIDATED_REPLAYPREPARE_CONSOLIDATED_REPLAYSTART_CONSOLIDATED_REPLAY 中使用新 API 完成的一个或多个工作负载捕获的重放。另见:DBMS_WORKLOAD_REPLAY
DIVERGENCE_LOAD_STATUSVARCHAR2(5)指示是否已加载重放分歧数据 (TRUE) 或 (FALSE)
PLSQL_MODEVARCHAR2(12)PL/SQL 调用的重放选项。可能的值: TOP_LEVEL:仅限顶级 PL/SQL。EXTENDED:如果 PL/SQL 中没有记录 SQL,则从 PL/SQL 或顶级 PL/SQL 执行 SQL
CONNECT_TIME_AUTO_CORRECTVARCHAR2(12)指示当重放进行得比捕获快时,是否自动减少连接新会话的等待时间。减少的数量由重放和捕获最慢会话之间的经过时间差决定。默认值是true。当回放比捕获慢时没有影响
RAC_MODEVARCHAR2(19)Oracle RAC 环境中的重放选项:GLOBAL_SYNC:跨所有实例同步。这是默认值。来自工作负载重放客户端 (wrc) 的数据库连接是基于连接重新映射完成的。PER_INSTANCE_CLIENT:跨所有实例同步。来自一个 wrc 的所有数据库连接仅连接到一个实例。PER_INSTANCE_SYNC:同步在一个实例内。来自一个 wrc 的所有数据库连接仅连接到一个实例
QUERY_ONLYVARCHAR2(1)指示是否仅重放来自当前工作负载捕获的仅查询工作负载,跳过所有可能更新数据库的 DML/DDL (Y) 或 (N)
PDB_LEVELVARCHAR2(1)指示回放是 PDB 级回放 (Y) 还是非 (N)
NUM_CLIENTS_ABORTEDNUMBER重放期间中止的工作负载重放客户端数
PATCH_NAMEVARCHAR2(128)数据库工作负载捕获和重放补丁名称。此列仅在向后移植到 Oracle Database 12c 第 1 版 (12.1) 和更早版本时填充
DURATION_LIMITNUMBER(38)重放持续时间限制(以秒为单位)。如果未设置重放持续时间限制,则此列的值为空
STATUS_DETAILSVARCHAR2(128)提供有关重放状态的其他详细信息。如果其他详细信息不可用,则此列的值为空

DBA_WORKLOAD_CONNECTION_MAP

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_CONNECTION_MAP.html

DBA_WORKLOAD_CONNECTION_MAP 显示工作负载重放的连接映射信息。 每行为特定工作负载重放定义一个连接映射。

ColumnDatatypeNULLDescription
REPLAY_IDNUMBERNOT NULL回放的ID(对应DBA_WORKLOAD_REPLAYS.ID)
CONN_IDNUMBERNOT NULL连接映射表的Key(ID)
SCHEDULE_CAP_IDNUMBER计划捕获 ID(对应于 DBA_WORKLOAD_SCHEDULE_CAPTURES.SCHEDULE_CAP_ID)
CAPTURE_CONNVARCHAR2(4000)NOT NULL捕获期间使用的连接字符串
REPLAY_CONNVARCHAR2(4000)重放期间应使用的连接字符串

DBA_WORKLOAD_REPLAY_CLIENTS

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_REPLAY_CLIENTS.html

DBA_WORKLOAD_REPLAY_CLIENTS 显示所有工作负载重放客户端及其分配的实例。

ColumnDatatypeNULLDescription
WRC_IDNUMBER(38)NOT NULL工作负载重放客户端的标识符
SCHEDULE_CAP_IDNUMBER(38)NOT NULL添加到重放计划的工作负载捕获的唯一标识符。0 用于非合并重放
INSTANCE_NUMBERNUMBER(38)NOT NULL重放客户端连接的实例

DBA_WORKLOAD_REPLAY_DIVERGENCE

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_REPLAY_DIVERGENCE.html

DBA_WORKLOAD_REPLAY_DIVERGENCE 显示有关已重放的用户调用的数据/错误分歧的信息。

DBA_WORKLOAD_DIV_SUMMARY 在 DBA_WORKLOAD_REPLAY_DIVERGENCE 视图中显示重放分歧信息的摘要。DBA_WORKLOAD_REPLAY_DIVERGENCE 可能有重复的条目,而 DBA_WORKLOAD_DIV_SUMMARY 只保留一个条目并跟踪每个重复条目的出现次数。

ColumnDatatypeNULLDescription
REPLAY_IDNUMBERNOT NULL工作负载重放的 ID(密钥)
TIMESTAMPTIMESTAMP(6) WITH TIME ZONE分歧发生的时间
DIVERGENCE_TYPENUMBERNOT NULLReserved for future use
IS_QUERY_DATA_DIVERGENCEVARCHAR2(1)指示数据差异是否来自 SELECT 查询获取的行数 (Y) 或 (N)
IS_DML_DATA_DIVERGENCEVARCHAR2(1)指示差异是否来自受 INSERT、UPDATE 或 DELETE SQL 语句影响的行数 (Y) 或 (N)
IS_ERROR_DIVERGENCEVARCHAR2(1)指示差异是否来自捕获或重放期间看到的错误 (Y) 或 (N)
IS_THREAD_FAILUREVARCHAR2(1)指示差异是否来自重放期间失败的会话 (Y) 或 (N)
IS_DATA_MASKEDVARCHAR2(1)指示 SQL 调用是否包含屏蔽绑定数据 (Y) 或 (N)。如果在重放数据库中使用数据屏蔽技术,则需要屏蔽工作负载捕获文件。否则,从包含敏感绑定数据的捕获文件生成的 SQL 语句将与数据库不匹配。当重放客户端向服务器发送屏蔽绑定数据时,它会为当前 SQL 调用打开 IS_DATA_MASKED 标志
IS_CLIENT_FAILUREVARCHAR2(1)指示工作负载重放客户端在重放期间是否失败 (Y) 或 (N)
EXPECTED_ROW_COUNTNUMBER在捕获期间为 SELECT 查询提取的行数或受 INSERT、UPDATE 或 DELETE SQL 语句影响的行数
OBSERVED_ROW_COUNTNUMBER回放期间为 SELECT 查询提取的实际行数或受 INSERT、UPDATE 或 DELETE SQL 语句影响的行数
EXPECTED_ERROR#NUMBER捕获期间出现的错误编号(如果捕获成功运行则为 0)
EXPECTED_ERROR_MESSAGEVARCHAR2(4000)错误消息的文本,其编号出现在 EXPECTED_ERROR# 列中
OBSERVED_ERROR#NUMBER重放期间看到的实际错误号(如果重放成功运行则为 0,如果无法重放捕获的调用则为 15566(对应于 ORA-15566))
OBSERVED_ERROR_MESSAGEVARCHAR2(4000)其编号出现在 OBSERVED_ERROR# 列中的错误消息的文本
STREAM_IDNUMBERNOT NULL报告差异的会话的流 ID
CALL_COUNTERNUMBERNOT NULL报告分歧的用户呼叫的调用计数器
CAPTURE_STREAM_IDNUMBER重放产生差异的捕获文件的内部 ID
SQL_IDVARCHAR2(13)报告差异的 SQL 的 SQL ID
SESSION_IDNUMBERNOT NULL报告差异的会话的会话 ID
SESSION_SERIAL#NUMBERNOT NULL捕获的报告分歧的会话的会话序列号
SERVICEVARCHAR2(64)报告分歧的会话的服务名称
MODULEVARCHAR2(64)报告差异的会话的模块名称
ACTIONVARCHAR2(64)报告分歧的会话的操作名称
INSTANCE_NUMBERNUMBER报告分歧的实例编号
WRC_IDNUMBER工作负载重放客户端的标识符

DBA_WORKLOAD_DIV_SUMMARY

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_DIV_SUMMARY.html

DBA_WORKLOAD_DIV_SUMMARY 在 DBA_WORKLOAD_REPLAY_DIVERGENCE 视图中显示重放分歧信息的摘要。 DBA_WORKLOAD_REPLAY_DIVERGENCE 可能有重复的条目,而 DBA_WORKLOAD_DIV_SUMMARY 只保留一个条目并跟踪每个重复条目的出现次数。

从 Oracle 数据库 12.2.0.1 开始,重放报告是从 DBA_WORKLOAD_DIV_SUMMARY 而不是从 DBA_WORKLOAD_REPLAY_DIVERGENCE 生成的,这样可以更快地生成重放报告。

ColumnDatatypeNULLDescription
REPLAY_IDNUMBERNOT NULL工作负载重放的 ID(密钥)
DIVERGENCE_TYPENUMBERNOT NULLReserved for future use
IS_QUERY_DATA_DIVERGENCEVARCHAR2(1)指示数据差异是否来自 SELECT 查询获取的行数 (Y) 或 (N)
IS_DML_DATA_DIVERGENCEVARCHAR2(1)指示差异是否来自受 INSERT、UPDATE 或 DELETE SQL 语句影响的行数 (Y) 或 (N)
IS_ERROR_DIVERGENCEVARCHAR2(1)指示差异是否来自捕获或重放期间看到的错误 (Y) 或 (N)
IS_THREAD_FAILUREVARCHAR2(1)指示差异是否来自重放期间失败的会话 (Y) 或 (N)
IS_DATA_MASKEDVARCHAR2(1)指示 SQL 调用是否包含屏蔽绑定数据 (Y) 或 (N)。如果在重放数据库中使用数据屏蔽技术,则需要屏蔽工作负载捕获文件。否则,从包含敏感绑定数据的捕获文件生成的 SQL 语句将与数据库不匹配。当重放客户端向服务器发送屏蔽绑定数据时,它会为当前 SQL 调用打开 IS_DATA_MASKED 标志
IS_CLIENT_FAILUREVARCHAR2(1)指示工作负载重放客户端在重放期间是否失败 (Y) 或 (N)
STREAM_IDNUMBERNOT NULL报告差异的会话的流 ID
SQL_IDVARCHAR2(13)报告差异的 SQL 的 SQL ID
EXPECTED_ERROR#NUMBER捕获期间出现的错误编号(如果捕获成功运行则为 0)
EXPECTED_ERROR_MESSAGEVARCHAR2(4000)错误消息的文本,其编号出现在 EXPECTED_ERROR# 列中
OBSERVED_ERROR#NUMBER重放期间看到的实际错误号(如果重放成功运行则为 0,如果无法重放捕获的调用则为 15566(对应于 ORA-15566))
OBSERVED_ERROR_MESSAGEVARCHAR2(4000)其编号出现在 OBSERVED_ERROR# 列中的错误消息的文本
SERVICEVARCHAR2(64)报告分歧的会话的服务名称
MODULEVARCHAR2(64)报告差异的会话的模块名称
INSTANCE_NUMBERNUMBER报告分歧的实例编号
WRC_IDNUMBER工作负载重放客户端的标识符
OCCURRENCESNUMBER回放时出现分歧的次数

示例:

以下查询打印在回放期间出现错误分歧的前 3 个 SQL 语句。此查询显示捕获的错误号和重放期间看到的实际错误号。

SQL> SELECT * FROM  
 (SELECT occurrences, sql_id, expected_error#, observed_error#   
  FROM    dba_workload_div_summary
  WHERE   replay_id = 123     
   AND    is_error_divergence = 'Y'
  ORDER BY occurrences DESC) 
WHERE ROWNUM <= 3;  

OCCURRENCES SQL_ID        EXPECTED_ERROR# OBSERVED_ERROR# 
----------- ------------- --------------- ---------------           
          8 0xrm2wjdqv17m               0               1           
          4 8bzwdnnznspjd            1422               0
          3 6d8rwrac8dsk7               1            1400

SQL>

DBA_WORKLOAD_REPLAY_SCHEDULES

  1. 官方链接:https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBA_WORKLOAD_REPLAY_SCHEDULES.html

DBA_WORKLOAD_REPLAY_SCHEDULES 显示当前重放目录的重放计划名称。

重放计划定义一个或多个工作负载捕获,以及开始重放的顺序。当前重放目录由 DBMS_WORKLOAD_REPLAY.SET_REPLAY_DIRECTORY('replay_dir') 设置。视图中的每一行都包含有关一个重放计划的信息。

ColumnDatatypeNULLDescription
SCHEDULE_NAMEVARCHAR2(128)NOT NULL要重放的计划的名称。它定义了一个或多个工作负载捕获,以及开始重放的顺序
DIRECTORYVARCHAR2(128)NOT NULL重放计划名称的目录对象名称
STATUSVARCHAR2(128)如果正在创建计划,则为 NEW,如果重放当前正在使用计划,则为 CURRENT,否则为 NULL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/457643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C++]模板初阶与STL简介

目录 模板初阶与STL简介&#xff1a;&#xff1a; 1.泛型编程 2.函数模板 3.类模板 4.什么是STL 5.STL的版本 6.STL的六大组件 7.STL的缺陷 模板初阶与STL简介&#xff1a;&#xff1a; 1.泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& righ…

《Netty》从零开始学netty源码(四十二)之PoolChunk.runsAvailMap

runsAvailMap PoolChunk中的runsAvailMap属性用于存放可用的run的信息&#xff0c;PoolChunk中每一次分配内存都会更新runsAvailMap中可用的run的起始信息及末尾信息&#xff0c;先看下它的数据结构&#xff1a; 我们看下它的构造函数是如何赋值的&#xff1a; PoolChunk的默认…

为什么MySQL索引更适合B+树而不是二叉树、B树

概述&#xff1a; 在当今社会&#xff0c;程序员内卷非常的严重&#xff0c;如果没有过硬的技术&#xff0c;很难在众多的程序员中脱颖而出&#xff0c;例如&#xff0c;以前问数据库方面的知识&#xff0c;只会问些增删改查语句表面的东西&#xff0c;而如今却要问数据库底层…

【翻译一下官方文档】之uniapp的网络请求

uni.request(OBJECT) 发起网络请求。 参数名类型必填默认值说明平台差异说明urlString是开发者服务器接口地址dataObject/String/ArrayBuffer否请求的参数App 3.3.7 以下不支持 ArrayBuffer 类型headerObject否设置请求的 header&#xff0c;header 中不能设置 RefererApp、H5…

关于链表的题目—leetcode

第一题&#xff1a;删除链表中的指定节点 问题描述&#xff1a; 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点…

【redis】缓存预热雪崩穿透击穿

【redis】缓存预热雪崩穿透击穿&#xff08;上&#xff09; 文章目录 【redis】缓存预热雪崩穿透击穿&#xff08;上&#xff09;前言一、面试题二、缓存预热三、缓存雪崩发生原因预防&#xff0b;解决高可用&#xff1a;多缓存结合&#xff1a; 人民币玩家 四、缓存穿透是什么…

谷歌云端硬盘Drive批量下载大文件或大文件夹的稳定方法

本文介绍在谷歌云端硬盘&#xff08;Drive&#xff09;中&#xff0c;快速、稳定下载大文件、文件夹的方法。 在使用谷歌Drive下载文件或文件夹时&#xff0c;我们往往会遇到下载不稳定或失败的情况&#xff1b;在下载较大的文件或文件夹时&#xff0c;这一问题出现的频率更多。…

NLP语义识别在人工智能领域中的应用与前景

自然语言处理&#xff08;NLP&#xff09;是人工智能领域中的一个重要分支&#xff0c;它致力于让计算机能够理解并处理人类自然语言。语义识别是NLP中的一个重要技术&#xff0c;它可以使计算机更好地理解人类语言的含义和意图。在本文中&#xff0c;我们将探讨NLP语义识别在人…

4月24号软件更新资讯合集.....

GoFrame v2.4 版本发布&#xff0c;企业级 Golang 开发框架 大家好啊&#xff0c;GoFrame 框架今天发布了 v2.4.0 正式版本啦&#xff01;&#x1f44f;&#x1f44f;&#x1f44f;&#x1f44f; 该版本最大的亮点在于提供了微服务开发的功能特性、开发工具以及工程脚手架&am…

第三章作业:关系数据库

第三章作业&#xff1a;关系数据库 目录 第三章作业&#xff1a;关系数据库选择题简答题1、关系代数&#xff1a;产生学生成绩表&#xff0c;包括学号、姓名、课程名、学分和成绩。题目代码 2、关系代数&#xff1a;检索选择了课程号为“C2"的学生学号和姓名。题目代码 3、…

月获2万份简历,硕士占比超70%!中欧基金如何破圈打造雇主品牌?

成立于2006年的中欧基金&#xff0c;作为国内首批实现员工持股的基金公司&#xff0c;坚持以人为本&#xff0c;相信优秀的业绩要靠优秀的人才来创造。 因此&#xff0c;中欧基金在完善公司治理机制基础上&#xff0c;实现不仅有敢打硬仗能打胜仗的将才&#xff0c;还有更多不…

Pytorch损失函数

基本用法 criterion LossCriterion() #构造函数有自己的参数loss criterion(x, y) #调用标准时也有参数 1 L1范数损失 L1Loss 计算 output 和 target 之差的绝对值。 torch.nn.L1Loss(reductionmean)参数&#xff1a; reduction-三个值 none: 不使用约简&#xff1b; me…

S32K系列MCU学习介绍

前言 最近因为工作需要&#xff0c;在学习恩智浦的S32K312&#xff0c;开发一款汽车PDU。 一、S32K3系列 1.特点 S32K系列是恩智浦公司于2017年推出的面向汽车电子的微控制器。S32K3 系列包括基于 Arm Cortex-M7 的 MCU&#xff0c;采用单步、双步和锁步内核配置&#xff0…

滴水逆向3期笔记与作业——01汇编

防止OneNote丢失。 海哥牛逼。 01汇编笔记 01进制进制定义10-2进制转换八进制 02数据宽度/逻辑运算数据宽度与存储逻辑运算计算机做加法的本质作业 03通用寄存器_内存读写通用寄存器表通用寄存器图内存读写计算机操作系统位数意义 04内存地址_堆栈寻址公式PUSH指令POP指令作业 …

《稻》念袁老,孙溟㠭先生为纪念袁隆平老先生治印一方

孙溟㠭篆刻作品《稻》 孙溟㠭篆刻作品《稻》 稻穗熟了&#xff0c;袁老走了。溟㠭先生为纪念袁隆平老先生而治印一枚。 拓印左侧禾苗繁茂&#xff0c;稻田里蛙声一片。拓印右侧为袁老的样子&#xff0c;人瘦心厚&#xff0c;顶着烈日&#xff0c;照料自己试验的稻田。袁老一…

3.黑马springboot开发篇自己修改笔记

SpringBoot开发实用篇 ​ KF-1.热部署 ​ 什么是热部署&#xff1f;简单说就是你程序改了&#xff0c;现在要重新启动服务器&#xff0c;嫌麻烦&#xff1f;不用重启&#xff0c;服务器会自己悄悄的把更新后的程序给重新加载一遍&#xff0c;这就是热部署。 ​ 热部署的功能…

[渗透教程]-017-入侵检测与社交网络安全

文章目录 1.入侵检测1.1 入侵检测基本概念1.2 入侵艰难侧系统评估指标1.3 入侵检测基本技术1.4 通用入侵检测框架2.社交网络安全1.入侵检测 1.1 入侵检测基本概念 入侵检测(Intrusion Detection),指对系统的运行状态进行监视,发现各种攻击企图、攻击行为或者攻击结果,以保证…

大神们分享STM32的学习方法

单片机用处这么广&#xff0c;尤其是STM32生态这么火&#xff01;如何快速上手学习呢&#xff1f; 第一&#xff1a;你要考虑的是&#xff0c;要用STM32实现什么 为什么使用STM32而不是8051? 是因为51的频率太低&#xff0c;无法满足计算需求?是51的管脚太少&#xff0c;无法…

MySQL单表操作

二、数据的新增、修改、删除 1.回顾ishop的数据表 mysql> use ishop; Database changed mysql> show tables; ----------------- | Tables_in_ishop | ----------------- | commodity | | commoditytype | | customer | | order | ----------…

【人工智能】遗传算法

人工智能算法---遗传算法&#xff08;基础篇&#xff09; 知识导图&#xff1a;遗传算法&#xff08;概念&#xff09;1.初始化种群二进制编码与解码 2.选择操作3.交叉操作4.评估操作5.终止操作 知识导图&#xff1a; 遗传算法&#xff08;概念&#xff09; 可以把遗传算法类比…