
# 生成WDR报告
#### 操作场景
WDR（Workload Diagnosis Report）报告基于两次不同时间点的系统性能快照数据，通过分析性能变化生成这两个时间点之间的性能表现报告，是长期性能问题诊断的主要手段。GaussDB支持生成WDR快照，用户可以在管理控制台采集和下载WDR报告。
#### 约束限制
GaussDB实例的数据库引擎版本需要大于等于V2.0-3.100，内核版本大于等于503.0。版本号查询方法请参见[查看云数据库GaussDB数据库和内核引擎版本](https://support.huaweicloud.com/productdesc-gaussdb/gaussdb_01_012.html#section2)。
#### 注意事项
- 两次快照之间不能有节点重启。
- 两次快照之间不能有主备切换。
- 两次快照之间不能有删除数据库操作。
- 两次快照之间不能对性能指标进行RESET操作。
- 备机支持WDR功能（enable_wdr_snapshot_standby=on）变更前后的快照不能生成报告。
- 备机是DCF节点或logger节点时不支持WDR功能。
- 生成的WDR报告中如果存在负数，说明该指标不能反映数据库的表现。
- 生成报告的时间与性能快照中的性能数据量有关系，一般在分钟级可以完成。如果超过5分钟没有完成，请尝试收集snapshot Schema下的表（首先考虑snap_global_statio_all_tables、snap_global_statio_all_indexes）的统计信息ANALYZE \| ANALYSE（ANALYZE \| ANALYSE语法详见《开发指南》的"SQL参考 \> SQL语法 \> A \> ANALYZE \| ANALYSE"章节），然后再次运行报告生成。或者通过执行"SET statement_timeout=\*"设置会话级语句超时时间，主动终止报告生成。
- 生成报告时，尽量设置客户端的字符集与GaussDB数据库的字符集保持一致（可以通过执行"SET client_encoding TO \*"设置客户端字符集）。
- node级别的报告已经包含了所有的报告信息，cluster报告接口为了保持前向兼容性，继续保留。不推荐分析问题使用。
- 在设置wdr_snapshot_query_timeout后，WDR报告生成过程中涉及语句的执行时间超过该参数取值后，会执行失败，并在日志中打印提示信息，基于该部分快照生成的报告会打印相应的提示信息。若超时，则调整该参数。
- 打开备机支持WDR功能后（enable_wdr_snapshot_standby=on），WDR snapshot会串行的收集主备机的性能数据，并存储在主机系统库snapshot Schema下，每次WDR快照期间会占用主备间的网络资源，WDR snapshot的整体耗时跟收集节点个数正相关，并且WDR snapshot涉及的表占用的磁盘大小跟节点个数正相关。
- 两次快照之间如果对分区表进行过drop partition、split partition、merge partition操作，可能会导致WDR报告中Object stats、Cache IO Stats面板中累计属性统计不准。
- 两次快照在snapshot.snapshot表中的version字段取值需要相同。
- 不支持在备节点上执行"SELECT generate_wdr_report(*begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring*);"。
- 对于基于流式复制的异地容灾解决方案，由于灾备数据库实例升主RPO不为0，快照ID可能出现非递增的现象。
- 数据库实例不能为只读状态。
- 数据库实例不能为灾备实例。

- 获取当前快照可立刻生成一次快照数据。
- 快照数据生成时间间隔默认60分钟，开始snapshot时间和结束snapshot时间选取受系统中快照数据时间限制，选取间隔过短会导致采集失败。
- 当数据库运行过程期间所生成的快照量数超过保留天数内允许生成的快照数量的最大值(默认为24\*8=192)时，系统将在每次生成一次快照时清理一次snapshot_id最小的快照数据。
- 在大量DDL期间做快照采集可能会导致采集失败。
- 如果数据库实例中有大量的database或者大量表，做一次快照采集会花费很长时间。
- 对于DN组件级别的采集，内核按分片进行采集，选中分片中的一个DN，WDR报告会展示分片中的所有组件。例如：dn_6001、dn_6002、dn_6003属于一个分片，采集报告时选择dn_6001，报告中会展示dn_6001_6002_6003。
 
#### 操作步骤
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 在左侧导航栏中单击"诊断优化 \> 性能报告"，显示WDR报告页面。 
   
   
   
4. 按需选择和调整快照采集时间区间，然后单击"立即生成快照"。 
   此操作会触发一次WDR快照全量查询，获取指定时间区间内的所有可用的完整快照，并剔除发生内核重置（节点重启、主备倒换、性能指标进行RESET操作、DROP DATABASE）的时间区间，将快照列表拆分成多个可选的快照片段分组列表。
   
   
5. 选择"快照范围"、"对比快照"、"采集类型"等信息。 
   - 在"快照范围"选项中，按需选择一个快照区间分组。
   
   - 在"对比快照1"选项中，选择一个快照，作为生成WDR报告的第一个快照。
   
   - 在"对比快照2"选项中，选择一个快照，作为生成WDR报告的第二个快照。 需要注意，快照2和快照1不能选同一个，且必须在同一个快照分组区间内，同时快照2的时间必须大于快照1的时间。
     
   
   - 在"采集类型"选项中，按需选择报告类型。 可选"实例级"、"组件级"，"组件级"可切换组件。
     
   
   
   图1WDR报告任务配置信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773466.png "点击放大")
   
   
   
6. 单击"生成WDR报告"按钮，下发快照报告创建任务。
7. 查看WDR报告任务列表，耐心等待对应任务创建完成。 
   - 如果采集状态为"采集成功"，单击"下载WDR报告"即可获取当前时间段的性能报告。
     图2WDR报告任务列表   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853185.png "点击放大")
     
     
   
   
   
   - 如果采集状态为"失败"，请联系华为云客服协助解决。
   
   
   
   
 
