Mycat實戰之日志分析


環境搭建參見之前發的一篇:http://www.cnblogs.com/chinesern/p/7667106.html

1修改log4j.xml 配置增加其他級別調試以及驗證是否自動加載

 cat /usr/local/mycat/conf/log4j.xml 

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d{MM-dd HH:mm:ss.SSS}  %5p [%t] (%F:%L) -%m%n" />
  </layout>
 </appender>
  <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
	<param name="file" value="${MYCAT_HOME}/logs/mycat.log" />
	<param name="Append" value="false"/>
	<param name="MaxFileSize" value="1000KB"/>
	<param name="MaxBackupIndex" value="10"/> 
	<param name="encoding" value="UTF-8" />
	<layout class="org.apache.log4j.PatternLayout">
	  <param name="ConversionPattern" value="%d{MM/dd HH:mm:ss.SSS}  %5p [%t] (%F:%L) -%m%n" />
	</layout>
  </appender>


  <appender name="FILE2" class="org.apache.log4j.RollingFileAppender">
	<param name="file" value="${MYCAT_HOME}/logs/sqlexecutebug.log" />
	<param name="Append" value="false"/>
	<param name="MaxFileSize" value="1000KB"/>
	<param name="MaxBackupIndex" value="10"/>
	<param name="encoding" value="UTF-8" />
	<layout class="org.apache.log4j.PatternLayout">
	  <param name="ConversionPattern" value="%d{MM/dd HH:mm:ss.SSS} %5p [%t] (%F:%L) -%m%n" />
	</layout>
  </appender>


  <logger name="org.opencloudb.mysql.nio.MySQLConnection" additivity="false">
	<level value="debug" />
	<appender-ref ref="FILE2" />
  </logger>

	<root>
	<level value="debug" />
	<appender-ref ref="FILE" />
	 <!--<appender-ref ref="FILE" />-->
  </root>

</log4j:configuration>

查看日志

[root@localhost logs]# tail -100f wrapper.log

加載成功,此時sqlexecutebug 文件也生成了!!

1.2 Debug日志具體分析

1) 連接獲取
[root@localhost logs]# tail -100f mycat.log

第一行 記錄了查詢語句的發起host以及數據庫名和具體的查詢語句

第二行 sqlroute cache命中,說明之前有執行過 已經緩存了

第三行:無阻塞會話,標識邏輯數據庫 schema 信息,數據庫 ip 地址,連接用戶,事務級別 3,打開自動提交,接着travelrecord 路由到 3 個 datanode 分別是 dn1 到 dn3

2) 同步信息
 [root@localhost logs]# tail -100f sqlexecutebug.log

主要同步設置事務隔離級別為:REPEATABLE READ 以及數據庫連接信息:thread id,時間,連接用戶以及 schema 是否切換,是否讀取slave,字符集為 utf8,事務自動提交以及 sql 路由信息。

3)數據返回 釋放連接 以db1為例
 [root@localhost logs]# tail -100f mycat.log

1.與各個數據庫(db1,db2,db3)節點建立連接

2.執行查詢並且接收數據

3.接收完畢釋放連接

3)合並數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM