Oracle的学习心得和知识总结(十四)|Oracle数据库Real Application Testing之DBMS_WORKLOAD_CAPTURE包技术详解
目录结构
注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下:
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之DBMS_WORKLOAD_CAPTURE包技术详解
文章快速说明索引
学习目标:
目的:接下来这段时间我想做一些兼容Oracle数据库Real Application Testing (即:RAT)上的一些功能开发,本专栏这里主要是学习以及介绍Oracle数据库功能的使用场景、原理说明和注意事项等,基于PostgreSQL数据库的功能开发等之后 由新博客进行介绍和分享!今天我们主要看一下 DBMS_WORKLOAD_CAPTURE package 的相关内容!
学习内容:(详见目录)
1、Oracle数据库Real Application Testing之DBMS_WORKLOAD_CAPTURE包技术详解
学习时间:
2023年03月28日 20:39:22
学习产出:
1、Oracle数据库Real Application Testing之DBMS_WORKLOAD_CAPTURE包技术详解
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 测试指南 数据库回放,相关内容:
DBMS_WORKLOAD_CAPTURE包配置工作负载捕获系统并生成工作负载捕获数据。这个捕获的重放是通过DBMS_WORKLOAD_REPLAY包实现的。
由于捕获基础设施是实例范围的(在Oracle Real Application Clusters (Oracle RAC)中也是如此),因此在任何时间点只生成一个工作负载捕获。因此,捕获接口不需要作为参数传递的状态对象,因为在任何时间点都有一个状态。这意味着所有子程序都不能是对象的方法,而是包范围的PL/SQL子程序。
DBMS_WORKLOAD_CAPTURE 安全模型
安全模型描述了使用 DBMS_WORKLOAD_CAPTURE 所需的权限。以下代码描述了执行以下操作所需的最小权限集:
- 创建目录对象
- 操作DBMS_WORKLOAD_CAPTURE和DBMS_WORKLOAD_REPLAY包提供的接口
- 充当重播客户端用户(wrc someuser/somepassword 或 wrc USER=someuser PASSWORD=somepassword)
DROP USER rom1 CASCADE;
CREATE USER rom1 IDENTIFIED BY rom1;
GRANT EXECUTE ON DBMS_WORKLOAD_CAPTURE TO rom1;
GRANT EXECUTE ON DBMS_WORKLOAD_REPLAY TO rom1;
GRANT CREATE SESSION TO rom1;
GRANT CREATE ANY DIRECTORY TO rom1;
GRANT SELECT_CATALOG_ROLE TO rom1;
GRANT BECOME USER TO rom1;
需要适当的操作系统权限来访问和操作捕获和重放系统上的文件和目录。这意味着Oracle进程和执行捕获或重放的操作系统用户必须能够访问和操作至少一个可以从运行实例的主机访问的公共目录。此外,执行重放的OS用户应该能够在用于重放客户机的主机上执行wrc,并且能够适当地访问文件系统,以便在需要时将捕获复制到重放客户机的主机上。
此表按字母顺序列出了 DBMS_WORKLOAD_CAPTURE 程序包子程序:
DBMS_WORKLOAD_CAPTURE Package Subprograms
Subprogram | Description |
---|---|
ADD_FILTER Procedures | 添加指定的筛选器 |
DECRYPT_CAPTURE Procedure | 此过程解密工作负载捕获中使用各种高级加密标准(如AES128、AES192或AES256)加密的敏感数据 |
DELETE_CAPTURE_INFO Procedure | 删除 DBA_WORKLOAD_CAPTURES 和 DBA_WORKLOAD_FILTERS 视图中与给定工作负载捕获 ID 对应的行 |
DELETE_FILTER Procedure | 删除指定的过滤器 |
ENCRYPT_CAPTURE Procedure | 此过程使用各种高级加密标准(如AES128、AES192或AES256)对工作负载捕获中的敏感数据进行加密 |
EXPORT_AWR Procedure | 导出与给定捕获ID关联的AWR快照 |
FINISH_CAPTURE Procedure | 通过向所有连接的会话发出停止捕获的信号来完成工作负载捕获,并停止捕获对数据库的未来请求 |
GET_CAPTURE_INFO Function | 检索有关规定目录中工作负载捕获的所有信息,将信息导入 DBA_WORKLOAD_CAPTURES 和 DBA_WORKLOAD_FILTERS 视图,并返回相应的 DBA_WORKLOAD_CAPTURES.ID |
IMPORT_AWR Function | 导入与给定捕获ID关联的AWR快照 |
REPORT Function | 使用一个或多个不同的源返回关于考虑中的工作负载捕获的报告 |
START_CAPTURE Procedure | 在所有实例上启动工作负载捕获 |
ADD_FILTER Procedures
这个过程添加了一个过滤器来捕获工作负载的一个子集。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.ADD_FILTER (
fname IN VARCHAR2 NOT NULL,
fattribute IN VARCHAR2 NOT NULL,
fvalue IN VARCHAR2 NOT NULL);
DBMS_WORKLOAD_CAPTURE.ADD_FILTER (
fname IN VARCHAR2 NOT NULL,
fattribute IN VARCHAR2 NOT NULL,
fvalue IN NUMBER NOT NULL);
其参数解释如下:
Parameter | Description |
---|---|
fname | 要添加的筛选器的名称。如果不需要,可用于稍后的删除筛选器。(强制) |
fattribute | 指定需要应用过滤器的属性(强制) |
fvalue | 指定给定属性应等于的值,以便认为筛选器是活动的。对于STRING类型的所有属性,'%'之类的通配符都是可接受的。这意味着NUMBER属性的过滤器被解析为“attribute = value”,STRING属性的过滤器被解析为“attribute like value”(强制)。 |
fattribute
可能的值如下:
INSTANCE_NUMBER
- typeNUMBER
USER
- typeSTRING
MODULE
- typeSTRING
ACTION
- typeSTRING
PROGRAM
- typeSTRING
SERVICE
- typeSTRING
PDB_NAME
- typeSTRING
注意事项:
- 工作负载捕获过滤器在
DEFAULT
INCLUSION
或DEFAULT
EXCLUSION
模式下工作,这由START_CAPTURE过程的default_action输入决定 - ADD_FILTER添加了一个影响下一个工作负载捕获的新过滤器,并且将过滤器视为
INCLUSION
过滤器还是EXCLUSION
过滤器取决于START_CAPTURE Procedure的default_action输入的值 - 指定的筛选器仅对下一个工作负载捕获有效。如果后续捕获需要使用相同的筛选器集,则需要在每次执行START_CAPTURE Procedure之前指定它们
- 所有筛选器都列在DBA_WORKLOAD_FILTERS视图中
- 您可以通过指定PDB类型的筛选器来捕获特定PDB的工作负载
使用案例:
- 默认情况下,捕获以 INCLUSION 模式工作,该模式记录除了那些满足指定过滤器条件的请求之外的所有内容。例如,如果您想排除来自 SCOTT 的所有请求,您可以在开始捕获之前添加以下过滤器:
EXEC DBMS_WORKLOAD_CAPTURE.ADD_FILTER ('filter user1', 'USER', 'SCOTT');
- 根据逻辑析取运算符 OR 评估多个过滤器。 因此,如果您想记录 SCOTT 和 JOHN 的工作量,您可以添加一个额外的过滤器:
EXEC DBMS_WORKLOAD_CAPTURE.ADD_FILTER ('filter user2', 'USER', 'JOHN');
- 在 CDB 中,您可以通过过滤器排除特定 PDB 的工作负载:
EXEC DBMS_WORKLOAD_CAPTURE.ADD_FILTER ('filter pdb workload', 'PDB_NAME', 'CDB1_PDB1');
- 要使用 DBMS_APPLICATION_INFO 来识别发布到数据库的工作负载:
DBMS_APPLICATION_INFO.SET_MODULE('ORDER_ENTRY', NULL);
-- run some SQL here
DBMS_APPLICATION_INFO.SET_ACTION('ORDER_ENTRY_LOG');
-- run logging SQL
- 如果已捕获工作负载,您希望从捕获中排除日志记录 SQL,请指定捕获过滤器:
DBMS_WORKLOAD_CAPTURE.ADD_FILTER('filter logging operations', 'ACTION', 'ORDER_ENTRY_LOG');
- 要过滤掉完整的订单输入交易,请定义一个过滤器:
DBMS_WORKLOAD_CAPTURE.ADD_FILTER('filter order entry', 'MODULE', 'ORDER_ENTRY');
DECRYPT_CAPTURE Procedure
此过程解密工作负载捕获中使用各种高级加密标准(例如 AES128、AES192 或 AES256)加密的敏感数据。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.DECRYPT_CAPTURE (
src_dir IN VARCHAR2,
dst_dir IN VARCHAR2);
其参数解释如下:
Parameter | Description |
---|---|
src_dir | 指向要解密的工作负载捕获的目录对象。此参数区分大小写。 |
dst_dir | 指向具有写入权限的操作系统路径的目录对象。解密后的抓包文件将写入该目录。该参数区分大小写。 |
注意事项:此过程依赖于软件密钥库。标识符是 oracle.rat.database_replay.encryption(区分大小写)。
DELETE_CAPTURE_INFO Procedure
此过程删除 DBA_WORKLOAD_CAPTURES 和 DBA_WORKLOAD_FILTERS 视图中与给定工作负载捕获 ID 相对应的行。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.DELETE_CAPTURE_INFO(capture_id IN NUMBER);
其参数解释如下:
Parameter | Description |
---|---|
capture_id | 需要删除的工作负载捕获的ID。对应于 DBA_WORKLOAD_CAPTURES.ID(强制) |
注意事项:传递正在进行的捕获的 ID 将首先自动停止该捕获。
DELETE_FILTER Procedure
此过程删除指定的过滤器。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.DELETE_FILTER (
filter_name IN VARCHAR2(40) NOT NULL);
其参数格式如下:
Parameter | Description |
---|---|
filter_name | Filter to be deleted |
注意事项:
DELETE_FILTER 过程只影响之前的任何捕获都没有使用过的过滤器。因此:
- 只有在任何捕获完成后使用 ADD_FILTER 过程添加了过滤器,才能删除过滤器
- 不能再使用此子程序删除在 START_CAPTURE 和 FINISH_CAPTURE 之前使用 ADD_FILTER 添加的过滤器
ENCRYPT_CAPTURE Procedure
此过程使用各种高级加密标准(例如 AES128、AES192 或 AES256)对工作负载捕获中的敏感数据进行加密。要即时加密捕获,请在 START_CAPTURE 过程中使用加密参数。
其语法格式如下:
DBMS_WORKLOAD_CAPTURE.ENCRYPT_CAPTURE
src_dir IN VARCHAR2,
dst_dir IN VARCHAR2,
encryption IN VARCHAR2 DEFAULT 'AES256');
其参数解释如下:
Parameter | Description |
---|---|
src_dir | 指向待加密工作负载捕获的目录对象。参数值区分大小写。 |
dst_dir | 指向具有写入权限的操作系统路径的目录对象。加密的捕获文件将写入此目录。参数值区分大小写。 |
encryption | 指定工作负载捕获中的敏感数据是否加密。可能的值为:AES128、AES192 和 AES256。默认值为 AES256。 |
注意事项:对于加密捕获,ENCRYPT_CAPTURE 过程依赖于软件密钥库。标识符是 oracle.rat.database_replay.encryption(区分大小写)。
EXPORT_AWR Procedure
此过程导出与给定捕获 ID 关联的 AWR 快照。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.EXPORT_AWR (
capture_id IN NUMBER);
其参数解释如下:
Parameter | Description |
---|---|
capture_id | 要导出其 AWR 快照的捕获的 ID(必填) |
注意事项:
只有在当前数据库中执行了相应的工作负载捕获(意味着 DBA_WORKLOAD_CAPTURES 中的相应行不是通过调用 GET_CAPTURE_INFO 函数创建的)并且与原始捕获时间段对应的 AWR 快照仍然可用时,此过程才有效。
FINISH_CAPTURE Procedure
此过程向所有连接的会话发出信号以停止工作负载捕获并停止捕获对数据库的未来请求。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE
timeout IN NUMBER DEFAULT 30
reason IN VARCHAR2 DEFAULT NULL);
其参数解释如下:
Parameter | Description |
---|---|
timeout | 以秒为单位指定过程在超时之前应等待的时间。如果您想取消当前的工作负载捕获并且不等待任何会话刷新它的捕获缓冲区,请传递 0。默认值:30 秒 |
reason | 指定调用过程的原因。原因出现在视图 DBA_WORKLOAD_CAPTURES 的 ERROR_MESSAGE 列中 |
注意事项:
- 默认情况下,FINISH_CAPTURE会等待30秒,以便在超时之前接收来自数据库集群中所有会话的成功确认
- 当 FINISH_CAPTURE 正在等待确认时,所有正在执行用户请求或接收到新用户请求的会话,刷新它们的缓冲区并将它们的确认发送回 FINISH_CAPTURE
- 如果数据库会话在整个 FINISH_CAPTURE 期间保持空闲(等待下一个用户请求),则该会话可能具有未刷新的捕获缓冲区,并且不会向 FINISH_CAPTURE 发送确认
- 为避免这种情况,在调用 FINISH_CAPTURE 时不要让会话保持空闲状态(等待下一个用户请求)。在运行 FINISH_CAPTURE 之前关闭数据库会话,或者在 FINISH_CAPTURE 期间向这些会话发送新的数据库请求
GET_CAPTURE_INFO Function
此过程检索有关规定目录中存在的工作负载捕获的所有信息,将信息导入 DBA_WORKLOAD_CAPTURES 和 DBA_WORKLOAD_FILTERS 视图,并返回适当的 DBA_WORKLOAD_CAPTURES.ID
其语法格式如下:
DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO
dir IN VARCHAR2)
RETURN NUMBER;
其参数解释如下:
Parameter | Description |
---|---|
dir | 所有工作负载捕获文件所在的 DIRECTORY 对象的名称(区分大小写)(强制) |
注意事项:
如果 DBA_WORKLOAD_CAPTURES 中已经存在描述规定目录中捕获的适当行,则 GET_CAPTURE_INFO 函数仅返回该行的 DBA_WORKLOAD_CAPTURES.ID。如果没有现有行与规定目录中存在的捕获相匹配,则会将新行插入 DBA_WORKLOAD_CAPTURES 并返回该行的 ID。
IMPORT_AWR Function
此过程导入与给定捕获 ID 关联的 AWR 快照,前提是这些 AWR 快照之前使用 EXPORT_AWR 过程从原始捕获系统导出。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.IMPORT_AWR (
capture_id IN NUMBER,
staging_schema IN VARCHAR2,
force_cleanup IN BOOLEAN DEFAULT FALSE)
RETURN NUMBER;
其参数解释如下:
Parameter | Description |
---|---|
capture_id | 应导入其 AWR 快照的捕获的 ID。(强制) |
staging_schema | 当前数据库中有效模式的名称,在将 AWR 快照从捕获目录导入到 SYS AWR 模式时可用作临时区域。SYS 模式不是有效输入。(必填,区分大小写)。 |
force_cleanup | 值如下: |
- TRUE - 给定 staging_schema 中存在的任何 AWR 数据在实际导入操作之前被删除。在实际导入之前,所有名称与 AWR 中的任何表匹配的表都将被删除。这通常等同于删除以下 SQL 返回的所有表:
SELECT table_name FROM dba_tables WHERE owner = staging_schema AND table_name like 'WR_$%';
## 仅当您确定 staging_schema 中的任何此类表中没有重要数据时才使用此选项
- FALSE -(默认)在导入操作之前没有表从 staging_schema 中删除
其返回值解释如下:
返回用于导入 AWR
快照的新的随机生成的数据库 ID。在 DBA_WORKLOAD_CAPTURES 视图的 AWR_DBID 列中可以找到相同的值。
注意事项:
- 如果作为输入提供的 staging_schema 包含与任何 AWR 表同名的任何表,例如 "WRM$_SNAPSHOT" 或 "WRH$_PARAMETER" ,IMPORT_AWR 将失败
- 在调用 IMPORT_AWR 之前,请在 staging_schema 中删除任何此类表
REPORT Function
此函数生成有关规定的工作负载捕获的报告。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.REPORT (
capture_id IN NUMBER,
format IN VARCHAR2)
RETURN CLOB;
其参数解释如下:
Parameter | Description |
---|---|
capture_id | 需要捕获报告的工作负载捕获的 ID。(强制) 这与包含需要生成报告的工作负载捕获的目录有关。应该是一个有效的 DIRECTORY 对象,它指向主机系统中包含工作负载捕获的有效目录 |
format | 指定报告格式。有效值为 DBMS_WORKLOAD_CAPTURE.TYPE_TEXT 和 DBMS_WORKLOAD_CAPTURE.TYPE_HTML。(强制) |
其返回值解释如下:以所需格式返回的报告正文作为 CLOB。
Constant | Type | Value | Description |
---|---|---|---|
TYPE_HTML | VARCHAR2(4) | ‘HTML’ | 生成报告的 HTML 版本 |
TYPE_TEXT | VARCHAR2(4) | ‘TEXT’ | 用作格式参数的输入以生成报告的文本版本 |
START_CAPTURE Procedure
此过程在所有实例上启动工作负载捕获。其语法格式如下:
DBMS_WORKLOAD_CAPTURE.START_CAPTURE (
name IN VARCHAR2,
dir IN VARCHAR2,
duration IN NUMBER DEFAULT NULL,
default_action IN VARCHAR2 DEFAULT 'INCLUDE',
auto_unrestrict IN BOOLEAN DEFAULT TRUE,
capture_sts IN BOOLEAN DEFAULT FALSE,
sts_cap_interval IN NUMBER DEFAULT 300,
plsql_mode IN VARCHAR2 DEFAULT 'TOP_LEVEL',
encryption IN VARCHAR2 DEFAULT NULL);
其参数解释如下:
Parameter | Description |
---|---|
name | 工作负载捕获的名称。允许为工作负载捕获添加标签,例如“感恩节周末”或“圣诞节高峰工作负载”,以供将来参考。工作负载捕获的名称与捕获的工作负载操作一起保留。(强制) |
dir | 存储所有工作负载捕获文件的 DIRECTORY 对象的名称(区分大小写)。应包含足够的空间来容纳所有工作负载捕获文件(强制) |
duration | 用于指定需要捕获工作负载的持续时间(以秒为单位)的可选输入。DEFAULT 为 NULL,这意味着工作负载捕获将继续,直到用户执行 DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE |
default_action | 可以是 INCLUDE 或 EXCLUDE。确定默认情况下是否应捕获每个用户请求。还确定指定的工作负载过滤器是否应被视为 INCLUSION 过滤器或 EXCLUSION 过滤器。下面详解两种的区别 |
auto_unrestrict | 可以是 TRUE 或 FALSE。 如果为 TRUE,则在成功的 START_CAPTURE 后,所有使用 STARTUP RESTRICT 以 RESTRICTED 模式启动的实例将自动不受限制(默认TRUE)。如果为 FALSE,则没有数据库实例自动不受限制 |
capture_sts | 如果此参数为 TRUE,SQL 调优集捕获也会与工作负载捕获并行启动。生成的 SQL 调整集可以使用 EXPORT_AWR 过程连同 AWR 数据一起导出。目前,Oracle RAC 环境不支持并行 STS 捕获,因此如果在该上下文中使用此参数则无效。使用 DBMS_WORKLOAD_REPLAY 接口定义的捕获过滤器不适用于 SQL 调优集捕获。调用用户必须具有适当的权限(“ADMINISTER SQL TUNING SET”)。如果启动 SQL 集捕获失败,工作负载捕获将停止。原因存储在 DBA_WORKLOAD_CAPTURES.ERROR_MESSAGE 中。默认值为 FALSE |
sts_cap_interval | 指定从游标缓存中捕获 SQL 集的捕获间隔,以秒为单位。默认值为 300。 |
plsql_mode | 指定 PL/SQL 捕获模式: TOP_LEVEL — 仅捕获顶级 PL/SQL 调用;EXTENDED — 捕获顶级 PL/SQL 调用 和 从 PL/SQL 调用的 SQL |
encryption | 指定工作负载捕获中的敏感数据是否加密 |
default_action:
- 如果 INCLUDE,默认情况下会捕获所有用户对数据库的请求,但过滤器定义的工作负载部分除外。在这种情况下,使用 ADD_FILTER 过程指定的所有过滤器都被视为 EXCLUSION 过滤器,确定未捕获的工作负载。(DEFAULT,因此所有指定的过滤器都被假定为 EXCLUSION 过滤器)
- 如果 EXCLUDE,默认情况下不会捕获对数据库的用户请求,除了由过滤器定义的工作负载部分。在这种情况下,使用 ADD_FILTER 过程指定的所有过滤器都被视为 INCLUSION 过滤器,确定捕获的工作负载。
encryption:可能的值是:
- NULL — 捕获文件未加密(默认)
- AES128 — 捕获文件使用 AES128 加密
- AES192 — 捕获文件使用 AES192 加密
- AES256 — 捕获文件使用 AES256 加密
使用说明:
- 成功调用 START_CAPTURE 后发送到数据库的所有用户请求都会在给定的持续时间内记录在给定的 dir 目录中,前提是指定了一个。如果未指定持续时间,捕获将无限期持续,直到执行 FINISH_CAPTURE 过程
- 工作负载捕获一旦开始,就会在指定的持续时间内,或直到执行 FINISH_CAPTURE 后,继续记录跨数据库实例关闭和启动的用户请求,以先发生者为准
- 可以使用工作负载过滤器(如 ADD_FILTER 过程中所述)仅捕获发送到数据库的用户请求的一个子集。默认情况下,当未定义工作负载过滤器时,将捕获所有用户请求
- 从 Oracle 数据库后台进程(如 SMON、PMON、MMON)和 Oracle 数据库调度程序作业(详见 DBMS_SCHEDULER 程序包)启动的工作负载不会被捕获,无论工作负载过滤器如何定义。这些活动应该在适当配置的回放系统上自动发生
- 默认情况下,在成功调用 START_CAPTURE 后,使用 STARTUP RESTRICT 在 RESTRICTED 模式下启动的所有数据库实例都是 UNRESTRICTED。如果您不希望这种行为,请对 auto_unrestrict 输入参数使用 FALSE
- 为工作负载有一个明确定义的起点很重要,这样重放系统可以在启动捕获的工作负载的重放之前恢复到该点。要为工作负载捕获定义明确的起点,最好在执行 START_CAPTURE 时不要有任何活动的用户会话。如果正在进行的会话有正在进行的事务,则这些事务不会在后续数据库重放中正确重放,因为只有调用在 START_CAPTURE 之后执行的那部分事务会被重放
- 对于加密捕获,START_CAPTURE 过程依赖于软件密钥库。标识符是 oracle.rat.database_replay.encryption(区分大小写)
- 您必须在自动登录模式下配置软件密钥库。否则,如果在抓取过程中数据库被弹回,则抓取自动终止
相关文章
- 深入分析Oracle数据库,挖掘最大价值(oracle数据库分析)
- Oracle数据库逻辑备份实践指南(oracle逻辑备份)
- 【Oracle期末考试:备战试卷攻略】(oracle期末考试试卷)
- 深入了解Oracle数据库的触发器类型(oracle触发器类型)
- 忘记Oracle用户密码怎么办?一定要读这篇指南!(忘记oracle用户密码)
- 深入比较:Oracle时间比较技巧(oracle如何比较时间)
- 数据库实现:高可用性Oracle解决方案。(高可用性oracle)
- Oracle数据库:如何查看主键?(oracle如何查看主键)
- Oracle注册监听:实现跨数据库自动更新(oracle注册监听)
- Oracle Q操作指南:成功实现数据库查询(oracle q 操作)
- 提高效率Oracle 共享池查询实例(oracle 共享池查询)
- 使用CMD迅速搜索Oracle数据库(cmd搜索oracle)
- Oracle中熟练运用Exp语句的简单实现(exp语句oracle)
- Oracle中间连接连接数据的新方法(oracle中间连接)
- 探索Oracle数据库之旅打开另一扇门(oracle从哪打开)
- Oracle数据库中的常量概念(oracle中常量的概念)
- Oracle数据库中的关联表必要性与实现(oracle中关联关系表)
- 精通Oracle跃升到数据库达人级别(oracle =个)
- 难以接受Oracle无法创建表(oracle 不能创建表)
- Oracle数据库一个字节的改变,大有可为(oracle一条数据字节)
- Oracle XE强大而易于部署的数据库解决方案(oracle xe在哪用)