通过7个问题,了解达梦数据库AWR的使用!

在这里插入图片描述

一:如何查看AWR是否已经启用?
二:如何启用AWR?
三:启用AWR后,会新增哪些对象?
四:SYSAWR.DBF 数据文件自动扩展到最大10GB,会影响新的快照生成吗?
五:AWR快照默认间隔是多少?如何调整?
六:如何生成AWR报告?
七:如何关闭AWR?

一:如何查看AWR是否已经启用?

检查是否启用AWR,0表示未启用,1表示已启用,默认未启用。

SQL> select SF_CHECK_AWR_SYS;
行号     SF_CHECK_AWR_SYS
---------- ----------------
1          0

二:如何启用AWR?

启用AWR

SQL> SP_INIT_AWR_SYS(1);
DMSQL 过程已成功完成
已用时间: 766.576(毫秒). 执行号:27313.
SQL> select SF_CHECK_AWR_SYS;
行号     SF_CHECK_AWR_SYS
---------- ----------------
1          1
已用时间: 1.989(毫秒). 执行号:387003.

三:启用AWR后,会新增哪些对象?

查看日志:
可以看到,新增了SYSAWR.DBF数据文件。

dmdba@CJC-DB-01:/db/dm8/dbms/log$tail -100f dm_CJC_202412.log

2024-12-25 17:20:50.137 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/ctl/dm_20241225172050_137077.ctl
2024-12-25 17:20:50.140 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/data/cjc/ctl_bak/dm_20241225172050_138752.ctl succeed
2024-12-25 17:20:50.140 [INFO] database P0000006279 T0000000000000009339  fil_set_tsid db->max_used_ts_id [15]
2024-12-25 17:20:50.142 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/ctl/dm_20241225172050_142850.ctl
2024-12-25 17:20:50.145 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/data/cjc/ctl_bak/dm_20241225172050_144388.ctl succeed
2024-12-25 17:20:50.146 [INFO] database P0000006279 T0000000000000009339  ifun_add_file_low initialize file[0] of ts[15], file_path[/db/dm8/data/cjc/SYSAWR.DBF]!
2024-12-25 17:20:50.151 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/ctl/dm_20241225172050_151916.ctl
2024-12-25 17:20:50.155 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/data/cjc/ctl_bak/dm_20241225172050_153878.ctl succeed
2024-12-25 17:20:50.155 [INFO] database P0000006279 T0000000000000009339  ifun_add_file_update_ctl_low update dm.ctl while add file[0] to ts[15], file_path[/db/dm8/data/cjc/SYSAWR.DBF]
2024-12-25 17:20:50.157 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/ctl/dm_20241225172050_157541.ctl
2024-12-25 17:20:50.160 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/data/cjc/ctl_bak/dm_20241225172050_159040.ctl succeed
2024-12-25 17:20:50.166 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/ctl/dm_20241225172050_166258.ctl
2024-12-25 17:20:50.169 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/data/cjc/ctl_bak/dm_20241225172050_167713.ctl succeed

新增了 SYSAUX 表空间,对应数据文件 SYSAWR.DBF,初始大小 192MB,最大可扩展到10GB。

SQL> select FILE_NAME,BYTES,AUTOEXTENSIBLE,MAXBYTES from dba_data_files where file_name like '%AWR%';
行号     FILE_NAME                   BYTES                AUTOEXTENSIBLE MAXBYTES   
---------- --------------------------- -------------------- -------------- -----------
1          /db/dm8/data/cjc/SYSAWR.DBF 201326592            YES            10737418240
已用时间: 71.281(毫秒). 执行号:385629.

新增了41张表

SQL> select OWNER,count(*) from dba_tables where TABLESPACE_NAME='SYSAUX';
行号     OWNER COUNT(*)            
---------- ----- --------------------
1          SYS   41
已用时间: 155.460(毫秒). 执行号:27318.
SQL> select owner,table_name from dba_tables where TABLESPACE_NAME='SYSAUX' order by 2;
行号     owner table_name                  
---------- ----- ----------------------------
1          SYS   WRH$_ACTIVE_SESSION_HISTORY
2          SYS   WRH$_ARCH_QUEUE
3          SYS   WRH$_BUFFERPOOL
4          SYS   WRH$_CKPT_HISTORY
5          SYS   WRH$_DATAFILE
6          SYS   WRH$_DB_CACHE
7          SYS   WRH$_DEADLOCK_HISTORY
8          SYS   WRH$_DM_INI
9          SYS   WRH$_DMSQL_EXEC_TIME
10         SYS   WRH$_HASH_MERGE_USED_HISTORY
11         SYS   WRH$_LARGE_MEM_SQLS
12         SYS   WRH$_LOCK
13         SYS   WRH$_MAL_INFO
14         SYS   WRH$_MEM_POOL
15         SYS   WRH$_MTAB_USED_HISTORY
16         SYS   WRH$_PSEG_ITEMS
17         SYS   WRH$_RESOURCE_LIMIT
18         SYS   WRH$_RLOG
19         SYS   WRH$_SCP_CACHE
20         SYS   WRH$_SESSION_HISTORY
21         SYS   WRH$_SESSION_STAT
22         SYS   WRH$_SESSION_WAIT_HISTORY
23         SYS   WRH$_SESSIONS
24         SYS   WRH$_SORT_HISTORY
25         SYS   WRH$_SQL_HISTORY
26         SYS   WRH$_SQL_NODE_HISTORY
27         SYS   WRH$_SQL_PLAN_NODE
28         SYS   WRH$_SQL_STAT_HISTORY
29         SYS   WRH$_SQLTEXT
30         SYS   WRH$_SQLTEXT_TMP
31         SYS   WRH$_SYSSTAT
32         SYS   WRH$_SYSTEM_EVENT
33         SYS   WRH$_SYSTEMINFO
34         SYS   WRH$_TABLESPACE
35         SYS   WRH$_TASK_QUEUE
36         SYS   WRH$_TRACE_QUEUE
37         SYS   WRH$_VIRTUAL_MACHINE
38         SYS   WRH$_WAIT_HISTORY
39         SYS   WRM$_SNAPSHOT
40         SYS   WRM$_SNAPSHOT_D
41         SYS   WRM$_WR_CONTROL
41 rows got
已用时间: 39.174(毫秒). 执行号:27319.

其中有38个分区表

set pagesize 100
select OWNER,TABLE_NAME,PARTITION_COUNT from DBA_PART_TABLES;
行号     OWNER TABLE_NAME                   PARTITION_COUNT     
---------- ----- ---------------------------- --------------------
1          SYS   WRH$_SYSSTAT                 204
2          SYS   WRH$_SYSTEM_EVENT            203
3          SYS   WRH$_SYSTEMINFO              200
4          SYS   WRH$_BUFFERPOOL              200
5          SYS   WRH$_DATAFILE                200
6          SYS   WRH$_TABLESPACE              200
7          SYS   WRH$_CKPT_HISTORY            200
8          SYS   WRH$_HASH_MERGE_USED_HISTORY 200
9          SYS   WRH$_MTAB_USED_HISTORY       200
10         SYS   WRH$_WAIT_HISTORY            200
11         SYS   WRH$_PSEG_ITEMS              200
12         SYS   WRH$_DEADLOCK_HISTORY        200
13         SYS   WRH$_DB_CACHE                200
14         SYS   WRH$_DM_INI                  200
15         SYS   WRH$_SCP_CACHE               200
16         SYS   WRH$_SQL_STAT_HISTORY        200
17         SYS   WRH$_SQL_NODE_HISTORY        200
18         SYS   WRH$_LARGE_MEM_SQLS          200
19         SYS   WRH$_DMSQL_EXEC_TIME         200
20         SYS   WRH$_MAL_INFO                200
21         SYS   WRH$_MEM_POOL                200
22         SYS   WRH$_LOCK                    200
23         SYS   WRH$_SESSION_HISTORY         200
24         SYS   WRH$_VIRTUAL_MACHINE         200
25         SYS   WRH$_RLOG                    200
26         SYS   WRH$_TASK_QUEUE              200
27         SYS   WRH$_TRACE_QUEUE             200
28         SYS   WRH$_ARCH_QUEUE              200
29         SYS   WRH$_SORT_HISTORY            200
30         SYS   WRH$_SESSION_STAT            200
31         SYS   WRH$_SQL_PLAN_NODE           200
32         SYS   WRH$_RESOURCE_LIMIT          200
33         SYS   WRH$_SQL_HISTORY             200
34         SYS   WRH$_SQLTEXT                 200
35         SYS   WRH$_SQLTEXT_TMP             200
36         SYS   WRH$_SESSIONS                200
37         SYS   WRH$_SESSION_WAIT_HISTORY    200
38         SYS   WRH$_ACTIVE_SESSION_HISTORY  1
38 rows got
已用时间: 5.233(毫秒). 执行号:385606.

查看其中一个分区表:

call sp_tabledef('SYS','WRH$_TABLESPACE');

分区键是 SNAP_ID

PARTITION BY RANGE("SNAP_ID") 

行号     COLUMN_VALUE                                                                                                                                 
---------- ---------------------------------------------------------------------------------------------------------------------------------------------
1          CREATE TABLE "SYS"."WRH$_TABLESPACE"  (  "SNAP_ID" INT,  "ID" INTEGER,  "NAME" VARCHAR(32),  "CACHE" VARCHAR(5),  "TYPE$" TINYINT,  "STATUS$" TINYINT,  "MAX_SIZE" BIGINT,  "TOTAL_SIZE" BIGINT,  "FILE_NUM" INTEGER,  "ENCRYPT_NAME" VARCHAR(32),  "ENCRYPTED_KEY" VARCHAR(125),  "COPY_NUM" INTEGER,  "SIZE_MODE" VARCHAR(32),  "OPT_NODE" INTEGER,  "USED_SIZE" BIGINT,  "SPACE_LIMIT_CNT" BIGINT,  "EXTEND_FAILED_CNT" BIGINT,  "N_RESERVE_EXTENTS" INTEGER,  "FREE_EXTENTS" INTEGER,  "MDF_FREE_COUNT" INTEGER)
2            PARTITION BY RANGE("SNAP_ID")  (  PARTITION  "PART0"  VALUES LESS THAN(1) STORAGE(ON "SYSAUX", CLUSTERBTR) ,  PARTITION  "PART1"  VALUES LESS THAN(2) STORAGE(ON "SYSAUX", CLUSTERBTR) ,  PARTITION  "PART2"  VALUES LESS THAN(3) STORAGE(ON "SYSAUX", CLUSTERBTR) ,  ......;
33 rows got
已用时间: 18.872(毫秒). 执行号:385608.

数据文件大小增长过快,平均每天增长1GB。

dmdba@CJC-DB-01:/home/dmdba$ls -lrth /db/dm8/data/cjc/SYSAWR.DBF 
-rw-r--r-- 1 dmdba dinstall 5.0G Dec 27 17:32 /db/dm8/data/cjc/SYSAWR.DBF

最大到10GB。

dmdba@CJC-DB-01:/home/dmdba$ls -lrth /db/dm8/data/cjc/SYSAWR.DBF 
-rw-r--r-- 1 dmdba dinstall 10G Jan 14 14:59 /db/dm8/data/cjc/SYSAWR.DBF

四:SYSAWR.DBF 数据文件自动扩展到最大10GB,会影响新的快照生成吗?

无法新增新的快照。

SQL> CALL DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
[-560]:超出[SYSAUX]表空间的空间上限值[10240]MB
 -560:  line 101 
 -560: DBMS_WORKLOAD_REPOSITORY_DATA_LOW.AWR_TRIG_PROC line 124 
 -560: DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT line 4603 .
已用时间: 00:00:37.648. 执行号:0.

虽然显示失败了,但是 snap_id 增加了。

SQL> select snap_id,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME from SYS.WRM$_SNAPSHOT;
行号     snap_id     BEGIN_INTERVAL_TIME        END_INTERVAL_TIME
---------- ----------- -------------------------- -----------------
......
892        954         2025-01-14 13:59:46.532316 NULL
893        955         2025-01-14 14:29:46.981927 NULL
894        956         2025-01-14 14:59:46.454320 NULL
895        957         2025-01-14 15:29:46.910500 NULL
896        958         2025-01-14 15:59:46.374035 NULL
896 rows got

用新生成的snap_id生成AWR,虽然显示成功了,但实际没有生成AWR。

SQL> SYS.AWR_REPORT_HTML(957,958,'/home/dmdba/awr','DM_AWR_20250114.HTML');
DMSQL 过程已成功完成
已用时间: 315.023(毫秒). 执行号:385616.

用前面较小的snap_id可以正常生成AWR。

五:AWR快照默认间隔是多少?如何调整?

默认1小时

SQL> SELECT * FROM SYS.WRM$_WR_CONTROL;
行号     DBID        SNAP_INTERVAL                            RETENTION                                TOPNSQL     STATUS_FLAG
---------- ----------- ---------------------------------------- ---------------------------------------- ----------- -----------
1          NULL        INTERVAL '0 1:0:0.0' DAY(5) TO SECOND(1) INTERVAL '8 0:0:0.0' DAY(5) TO SECOND(1) 30          0
已用时间: 0.905(毫秒). 执行号:27331.

间隔改成30分钟

SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(30);
SQL> SELECT * FROM SYS.WRM$_WR_CONTROL;
行号     DBID        SNAP_INTERVAL                             RETENTION                                TOPNSQL     STATUS_FLAG
---------- ----------- ----------------------------------------- ---------------------------------------- ----------- -----------
1          NULL        INTERVAL '0 0:30:0.0' DAY(5) TO SECOND(1) INTERVAL '8 0:0:0.0' DAY(5) TO SECOND(1) 30          1
已用时间: 0.522(毫秒). 执行号:27334.

六:如何生成AWR报告?

手动生成快照:

DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

查询 AWR 快照:

select snap_id,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME from SYS.WRM$_SNAPSHOT;
行号     snap_id     BEGIN_INTERVAL_TIME        END_INTERVAL_TIME
---------- ----------- -------------------------- -----------------
......
892        954         2025-01-14 13:59:46.532316 NULL
893        955         2025-01-14 14:29:46.981927 NULL
894        956         2025-01-14 14:59:46.454320 NULL
895        957         2025-01-14 15:29:46.910500 NULL
896        958         2025-01-14 15:59:46.374035 NULL
896 rows got

创建AWR报告

SYS.AWR_REPORT_HTML(快照ID1,快照ID2,'AWR报告存放路径','AWR报告名称.HTLM'):
SQL> SYS.AWR_REPORT_HTML(957,958,'/home/dmdba/awr','DM_AWR_20250114.HTML');
DMSQL 过程已成功完成
已用时间: 315.023(毫秒). 执行号:385616.

七:如何关闭AWR?

SQL> SP_INIT_AWR_SYS(0);
DMSQL 过程已成功完成
已用时间: 00:00:01.322. 执行号:27310.
dmdba@CJC-DB-01:/db/dm8/dbms/log$tail -100f dm_CJC_202412.log
2024-12-25 17:18:30.642 [INFO] database P0000006279 T0000000000000009339  purg2_for_ts_flag_set begin...
2024-12-25 17:18:30.642 [INFO] database P0000006279 T0000000000000009339  purg2_for_ts_flag_set end!
2024-12-25 17:18:30.654 [INFO] database P0000006279 T0000000000000009339  purg2_for_ts_flag_reset_low from SUSPEND to NORMAL
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  drop tablespace ts_id = 14, archive flag = 0.
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_fast_pool_clear ts_id: 14, pool_id: 2 begin...
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_fast_pool_clear ts_id: 14, pool_id: 2 end, ret = 1
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 3 begin...
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 3 end, ret = 1
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 3 begin...
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 3 end, ret = 1
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 5 begin...
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 5 end, ret = 1
2024-12-25 17:18:30.658 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 6 begin...
2024-12-25 17:18:30.659 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_single ts_id: 14, pool_id: 6 end, ret = 1
2024-12-25 17:18:30.659 [INFO] database P0000006279 T0000000000000009339  buf4_ts_buffer_clear_low ts_id[14] done, ret = 1
2024-12-25 17:18:30.659 [INFO] database P0000006279 T0000000000000009339  ctl_del_table_space_low SYSAUX, 14
2024-12-25 17:18:30.660 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/ctl/dm_20241225171830_660224.ctl
2024-12-25 17:18:30.663 [INFO] database P0000006279 T0000000000000009339  backup control file /db/dm8/ctl/dm01.ctl to file /db/dm8/data/cjc/ctl_bak/dm_20241225171830_662065.ctl succeed

关闭AWR时,自动删除了 SYSAUX 表空间和对应的数据文件,清理的非常彻底!

疑问:

手动生成两个快照期间,模拟了一个锁阻塞的SQL,但在AWR里的SQL部分没有找到对应的SQL。
图片.png
###chenjuchao 20250115###

欢迎关注我的公众号《IT小Chen》
图片.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值