OBCE V3 培训实验:应用到数据库全链路分析(下)
本文主要分享 OBCE V3 培训的理论和实验知识第三篇,接上篇继续介绍应用到 OceanBase 全链路分析的实验部分。个人观点,理解不当欢迎指出。
从应用到 OceanBase 全链路分析涉及到的理论知识不难理解,实际运用的时候却往往非常耗费精力,主要原因就是日志的收集、定位和分析。练习这个需要一个合适的应用,还要模拟应用或网络出问题,有点困难,所以实际的实验要求只是练习一下网络抓包 tcpdump 命令,通过抓包观察 OB 连接和 SQL 执行耗时信息。由于网络处于技术栈最底层,实际抓包时数据量会非常大。在实际问题诊断中除非怀疑网络稳定性和性能有问题,否则不会先选这个方法。抓到的报文文件建议通过 Wireshark 图形化软件去分析,使用体验会好一些。
本文不分享这个实验的抓包过程(网上有很多介绍),而是分析 OB 客户端连接正常和异常情况下 OBProxy 的日志内容以及 业务查询和事务对应的 OBProxy 日志。了解 OBProxy 日志特点,将来分析真实的线上链路问题时,就不会因为问题现象已经消失而无法排查,而是通过 OBProxy 日志反向推测链路上发生什么问题。
OB 数据库连接的 OBProxy 日志
场景一:客户端会话正常建立和退出。
场景描述:通过 mysql 客户端发起一个租户连接,执行业务查询,然后正常退出。观察 OBProxy 对应的日志。
首先连接后发起一笔应用查询会话,确保 OBProxy 建立对应的后端连接。
MySQL [tpccdb]> select * from bmsql_warehouse;
+------+------------+--------+------------+---------------------+----------------------+----------------------+---------+-----------+
| w_id | w_ytd | w_tax | w_name | w_street_1 | w_street_2 | w_city | w_state | w_zip |
+------+------------+--------+------------+---------------------+----------------------+----------------------+---------+-----------+
| 1 | 4062863.16 | 0.1873 | vPJUyrE7G | yjDKpFuiShMAoNA | fOrVS6Q7iAzP | xvNWSBM8SRz9IQ4 | NX | 637211111 |
| 10 | 3796057.29 | 0.0304 | DP98DH32zb | boSEcSBN8GcAm6se8M | ozsg0xZMeAu1vn | EgXsvSzIwucP | PJ | 620111111 |
+------+------------+--------+------------+---------------------+----------------------+----------------------+---------+-----------+
10 rows in set (0.01 sec)