代码改变世界

多租户环境AWR相关参数设置

2020-10-19 08:57  abce  阅读(330)  评论(0编辑  收藏  举报

默认情况下,数据库引擎仅在根容器中自动生成快照。这样的快照涵盖了根容器以及属于它的所有打开的PDBs。从版本12.2开始,可以通过动态初始化参数AWR_PDB_AUTOFLUSH_ENABLED控制数据库引擎是否也自动获取PDB级别的快照。如果要启用该功能,则必须执行两项操作:

·将初始化参数AWR_PDB_AUTOFLUSH_ENABLED设置为TRUE(默认值为FALSE),可以在特定的PDB中,也可以(如果要对所有PDB启用)在根容器中设置。

·在PDB级别设置快照间隔。

请注意,要启用自动PDB级快照,必须设置快照间隔,因为PDB级默认值为40150天!因此,如果不进行更改,数据库引擎将永远不会采集快照。

从版本18c开始,使用动态初始化参数AWR_PDB_MAX_PARALLEL_SLAVES,可以指定数据库引擎可以同时用于进行自动收集PDB级别快照的最大后台进程数。有效值从1到30;默认值为10。尽管此初始化参数不会影响根容器中的自动快照,单只能在根容器中进行设置。以下是有三个PDB(间隔为15分钟)的示例演示:

 

·AWR_PDB_MAX_PARALLEL_SLAVES = 1:与根容器中的快照同时仅生成一个PDB级别的快照

SQL> SELECT con_id, to_char(end_interval_time, 'HH24:MI:SS') AS snap_time
  2  FROM cdb_hist_snapshot
  3  WHERE end_interval_time > to_timestamp('2020-09-02 11:00','YYYY-MM-DD HH24:MI')
  4  ORDER BY snap_time, con_id;

CON_ID SNAP_TIME
------ ---------
     0 11:00:45
     4 11:00:45
     6 11:01:45
     3 11:02:46
     0 11:15:49
     3 11:15:49
     4 11:16:49
     6 11:17:50
     0 11:30:53
     6 11:30:53
     3 11:31:53
     4 11:32:53

  

·AWR_PDB_MAX_PARALLEL_SLAVES = 10:根容器中生成快照同时所有pdb级快照都生成快照

SQL> SELECT con_id, to_char(end_interval_time, 'HH24:MI:SS') AS snap_time
  2  FROM cdb_hist_snapshot
  3  WHERE end_interval_time > to_timestamp('2020-09-02 11:45','YYYY-MM-DD HH24:MI')
  4  ORDER BY snap_time, con_id;

CON_ID SNAP_TIME
------ ---------
     0 11:45:57
     3 11:45:57
     4 11:45:57
     6 11:45:57
     0 12:00:01
     3 12:00:01
     4 12:00:01
     6 12:00:01
     0 12:15:05
     3 12:15:05
     4 12:15:05
     6 12:15:05

  

从版本18c开始,使用动态初始化参数AWR_SNAPSHOT_TIME_OFFSET,还可以配置数据库引擎何时生成自动快照。使用默认值(0)会在小时的顶部(即01:00、02:00、03:00等)以默认的1小时间隔生成快照。对于具有许多数据库实例的数据库服务器,所有服务器都同时生成自动快照可能是一个问题。大于0的值可以帮助避免此类问题。实际上,它们以秒为单位指定你要添加的延迟时间。例如,设置偏移值为120,默认间隔1小时,数据库引擎将在01:02、02:02、03:02等处生成自动快照。还有一个特殊值:1000000。使用它可以指定数据库引擎必须自动选择合理的延迟。只能在根容器中设置此初始化参数。

 

以下是有三个PDB(间隔为15分钟),偏移量为120秒,最多2个后台进程的示例演示:

SQL> SELECT con_id, to_char(end_interval_time, 'HH24:MI:SS') AS snap_time
  2  FROM cdb_hist_snapshot
  3  WHERE end_interval_time > to_timestamp('2020-09-02 12:30','YYYY-MM-DD HH24:MI')
  4  ORDER BY snap_time, con_id;

CON_ID SNAP_TIM
------ --------
     0 12:32:09
     3 12:32:09
     4 12:32:09
     6 12:33:09
     0 12:47:13
     3 12:47:13
     6 12:47:13
     4 12:48:13
     0 13:02:17
     4 13:02:17
     6 13:02:17
     3 13:03:17

  

 

https://antognini.ch/2020/09/awr-multitenant-specific-initialization-parameters/