参加5月14-15日的openGauss训练营,主要是看到2天的课程规划比较丰富,干货比较多,参加完成后确实收获不小。从openGauss专业知识例如:体系架构、HA集群部署,从WDR报告、性能优化、AI特性和安全,到openGauss数据库日常运维,例如:连接数据库、扩缩容、监控、日常使用等,收获较大。
借助本次学习的计划,参考各位老师们的授课,在自己的虚拟机环境下部署了OpenGauss3.0数据库1主1备集群,并使用sysbench进行数据库压测,生产WDR报告,对openGauss的WDR诊断分析报告进行学习。
##第一部分 主备集群环境部署:
192.168.205.115 node115
192.168.205.116 node116
2C6G内存的虚拟机,操作系统是CentOS Linux release 7.4.1708 (Core)
:Error: Failed to register other ssh-agent,output is [Failed to ssh-add perform.Error: /root/.ssh/./ssh-agent.sh: line 18: expect: command not found]
发现是少了一个包yum install expect -y
预检查问题2:[FAILURE] node115:
[GAUSS-50202] : The /apps2/opengauss/install must be empty. Or user [omm] has write permission to directory /apps2/opengauss/install. Because it will create symbolic link [/apps2/opengauss/install/app] to install path [/apps2/opengauss/install/app_02c14696] in gs_install process with this user.
[SUCCESS] node116:
不要预先创建集群配置文件里的对应的目录。
检查通过后安装数据库:
gs_install -X /tmp/clusterconfig_2.xml
openGauss=# select pid,state,client_addr,sync_priority,sync_state from pg_stat_replication;
pid | state | client_addr | sync_priority | sync_state
-----------------+-----------+-----------------+---------------+------------
140214109857536 | Streaming | 192.168.205.116 | 0 | Async
(1 row)

##第二部分 部署sysbench压测OpenGauss数据库
为了让WDR报告有性能数据信息,特地压测一下:
OpenGauss主库创建测试用户和库
openGauss=# create user benchuser WITH PASSWORD 'XXXXXXXXXX';
CREATE ROLE
openGauss=# create database sysbench owner benchuser;
CREATE DATABASE
openGauss=# GRANT ALL PRIVILEGES ON DATABASE sysbench to benchuser;
GRANT
新增连接权限:/apps2/opengauss/install/data/dn/pg_hba.conf
新增
host all benchuser 192.168.205.110/32 md5
在192.168.205.110客户端安装sysbench开始压测
[root@node110 ~]# psql -h 192.168.205.115 -d sysbench -U benchuser -p 26000
psql: authentication method 11 not supported
[root@node110 ~]# psql -h 192.168.205.115 -d sysbench -U benchuser -p 26000
psql: fe_sendauth: invalid authentication request from server: AUTH_REQ_SASL_CONT without AUTH_REQ_SASL
参考这个说明解决了:
password_encryption_type = 2
#Password storage type, 0 is md5 for PG, 1 is sha256 + md5, 2 is sha256 only
这里我使用md5连接认证,因此修改password_encryption_type=0才得以正常连接
压测:

##第三部分 获取WDR报告
先要开启对应的开关,正确的开启方式:
[omm@node115 dn]$ gs_guc reload -Nall -I all -c "enable_wdr_snapshot=on"
The gs_guc run with the following arguments: [gs_guc -Nall -I all -c enable_wdr_snapshot=on reload ].
Begin to perform the total nodes: 2.
Popen count is 2, Popen success count is 2, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 2, Command success count is 2, Command failure count is 0.
Total instances: 2. Failed instances: 0.
ALL: Success to perform gs_guc!
开启后,也经过一番折腾(这里省略400字。。。。。)
才开始顺利获取到快照信息:

【虚拟机的时间时区不准,日期到到16号了】
生成报告:
gsql -d postgres -p 26000 -q -c "select generate_wdr_report(6,8,'all','cluster',null)" -t -o wdr/wdr_report_20220513.html
报告看上去比较简洁,没有花花绿绿的,类似Oracle ASH一样:
Get database workload activity during the snapshot interval
+
+ + + + + + + + + + + + + + + + +
Metric Per Second Per Transaction Per Exec
DB Time(us) 2998904 11621 649
CPU Time(us) 1522600 5900 330
Redo size(blocks) 357 1 0
Logical read (blocks) 103439 402 22
Physical read (blocks) 1881 7 0
Physical write (blocks) 1137 4 0
Read IO requests 1881 7 0
Write IO requests 1137 4 0
Read IO (MB) 15 0 0
Write IO (MB) 9 0 0
Logins 0 0 0
Executes (SQL) 4614 18 1
Rollbacks 0
Transactions 258
+
SQL response time P80/P95
+
+ + + + +
Metric Value
SQL response time P95(us) 679
SQL response time P80(us) 404
是压测的数据
慢SQL也基本是sysbench发出的语句:

进一步结合老师们的讲解,学习课程内容,过程中遇到了不少问题,也从老师们的讲解中解决了不少。希望后面有更丰富的训练和培训内容进一步学习。




