Amazon RDS Oracle 12.1 自动报告捕获

Amazon RDS Oracle 12.1 Automatic Report Capturing

我负责两个 RDS 客户端站点,它们都在 Oracle 12.1.0.2.v12 上。

其中一个实例具有高 CPU 负载,这似乎是由称为自动报告捕获的 12.1“功能”引起的。

这是一个已知问题:
https://smarttechways.com/2017/10/11/with-monitor_data-as-select-inst_id-query-found-caused-performance-issue/ https://liups.com/wp-content/uploads/2018/01/Document-2102131.1.pdf

并且通常可以被 运行 alter system set "_report_capture_cycle_time"=0; 禁用 但是,由于这是一个 RDS 实例,因此无法设置此参数。

令我困惑的是,另一个站点似乎没有这个问题 - 具体的 SQL 语句没有出现在会话历史记录中:

WITH MONITOR_DATA AS (SELECT INST_ID, KEY, NVL2(PX_QCSID, NULL, STATUS) STATUS, FIRST_REFRESH_TIME, LAST_REFRESH_TIME, REFRESH_COUNT, PROCESS_NAME, SID, SQL_ID, SQL_EXEC_START, SQL_EXEC_ID, DBOP_NAME, DBOP_EXEC_ID, SQL_PLAN_HASH_VALUE, SQL_FULL_PLAN_HASH_VALUE, SESSION_SERIAL#, SQL_TEXT, IS_FULL_SQLTEXT, PX_SERVER#, PX_SERVER_GROUP, PX_SERVER_SET, PX_QCINST_ID, PX_QCSID, CASE WHEN ELAPSED_TIME < (CPU_TIME+ APPLICATION_WAIT_TIME+ CONCURRENCY_WAIT_TIME+ CLUSTER_WAIT_TIME+ USER_IO_WAIT_TIME+ QUEUIN... (truncated)

就好像“功能”在其他网站上被以某种方式禁用了 - 或者相反,它在有问题的网站上被无意中启用了。

关于如何禁用它的任何想法?

一般情况下,如果你有大量CPU消费,你可能会在这种类型的警报日志中收到错误消息

Thu Sep 08 04:00:41 2016
Errors in file /app/oracle/diag/rdbms/dbname/dbinstance/trace/dbinstance_m002_14490.trc:
ORA-12850: Could not allocate slaves on all specified instances: 3 needed, 2 allocated

如果是这样,确实禁用该功能只能通过

来完成
alter system set "_report_capture_cycle_time"=0; /* Default is 60 seconds */

原因:

If the CPU consumption is significantly high then it is not an expected behaviour and could be due to optimizer choosing suboptimal plan for the SQL statements. This can happen due to Adaptive Optimization, a new feature in 12c.

因此,如果您无法更改隐藏参数,您可以尝试一起禁用自适应优化

alter system set optimizer_adaptive_features = false scope=both ;

如文档所述

In 12.1, adaptive optimization as a whole is controlled by the dynamic parameter optimizer_adaptive_features, which defaults to TRUE. All of the features it controls are enabled when optimizer_features_enable >= 12.1.

要么升级到 19c,要么禁用所有优化器自适应功能

Amazon RDS now supports 19c

"optimizer_adaptive_features" 无论如何都与 "_report_capture_cycle_time" 无关。