人大金仓学习之一_kwr的简单学习
摘要
周末在家想着学习一下数据库相关的内容.
网上找了不少资料, 想着直接在本地机器上面进行一下安装与验证
理论上linux上面应该更加简单. windows 上面可能不如linux方便
主要是记录一下使用和注意事项.
ISO下载
直接在人大金仓的官网上面就可以下载最新的ISO介质.
https://kingbase.com.cn/rjcxxz/index.htm
需要注意 Windows 的最新版有时候会比linux的慢一些
比如: KingbaseES_V008R006C007B0012_Win64
linux: KingbaseES_V008R006C007B0024_Aarch64
需要注意, 建议同事下载序列号文件.
数据库安装
安装过程较为简单, 需要注意的是记住对应的目录
以及设置的字符集以及Oracle兼容还是PG兼容模式.
可以先保存一下配置, 避免丢失和错误
修改配置文件
因为我这边没太有linux的环境了, 计划使用windows进行验证.
比如我这边的安装路径为:
E:\Program Files\Kingbase\ES\V8
对应需要修改的配置文件为:
E:\Program Files\Kingbase\ES\V8\data\kingbase.conf
修改的地方主要有:
主要是增加:
shared_preload_libraries = 'sys_kwr,sys_stat_statements'
可以适当修改一下性能相关的参数
listen_addresses = '*'
max_connections = 1000
superuser_reserved_connections = 5
shared_buffers = 4GB
work_mem = 32MB
maintenance_work_mem = 64MB
在"Query and Index Statistics Collector"
新增就可以, 之前的配置文件是被注释掉了
track_activities = on
track_sql = on
track_instance = on
track_wait_timing = on
track_counts = on
track_io_timing = on
track_functions = 'all'
sys_stat_statements.track = 'top'
sys_stat_statements.track_parse = on
sys_stat_statements.track_plan = on
sys_kwr.enable = on
sys_kwr.history_days = 14
sys_kwr.interval = 30
注意部分配置文件的含义
track_activities: 开启记录等待事件,默认为on。
track_wait_timing: 开启累积式等待事件记录等待时间的功能,默认为off
track_io_timing: 开启IO计时统计功能,默认为off
track_functions: 开启函数统计功能,默认为
sys_stat_statements.track:跟踪统计SQL语句的访问,推荐用 ‘top’,默认为’none’
sys_kwr.enable:自动对收集到的数据生成快照并保存到kwr库里
其他参数一般情况下使用默认值即可:
sys_kwr.topn:kwr报告显示topn条件记录,默认20条
sys_kwr.history_days:kwr快照数据保留天数,默认8天
sys_kwr.interval:kwr自动采集快照的间隔,默认60分钟
sys_stat_statements.track_parse:sys_stat_statements记录parse次数和时间,默认
开启
sys_stat_statements.track_plan:sys_stat_statements记录plan次数和时间,默认开启
注意需要重启服务
注意参数配置文件一定要在测试环境中确认好了在进行重启.
不然会导致系统启动失败, 一定要进行一次备份. 尽量每次修改比较少的配置文件.
重启服务的方法:
1. 运行 services.msc 手动重启kingbase 的服务
2. 执行命令(以管理员身份打开 cmd )
net stop kingbase8_R6_instance
net start kingbase8_R6_instance
关于kwr的简单使用
首先,建议将人大金仓的bin目录加到环境变量中.
E:\Program Files\Kingbase\ES\V8\KESRealPro\V008R006C007B0012\ClientTools\bin
执行命令:
ksql -U system -d test
输入密码就可以登录.
第一步创建extension
create extension sys_kwr;
第二步 可以手工创建 snapshot 这一点与oracle是非常类似的.
select * from perf.create_snapshot();
第三步 查询已经有的kwr快照
select * from perf.kwr_snapshots;
第四步 一些快照的处理命令
select perf.reset_snapshots();
#清空所有快照
select perf.drop_snapshots($begin_snap_id,$end_snap_id);
#清除指定范围的快照
第五步 生成kwr报告
select * from perf.kwr_report(start_id,end_id);
第六步 生成html的报告
select * from perf.kwr_report(start_id,end_id,'html');
注意默认文件在 data\sys_log 下面
第七步 生成具体的kwr报告文件
select * from perf.kwr_report_to_file(1,3,'html','E:\zhaobsh_kwr_test.html');
select * from perf.kwr_report_to_file(1,3,'text','E:\zhaobsh_kwr_test.text');
使用与分析
其实与Oracle的awr报告非常接近.
分析方法也比较类似.