日志概述
- OB数据库在运行过程会自动生成日志;通过查看和分析,可以了解OB数据库的启动和运行状态;
- observer.log:启动过程和启动后的运行过程中的日志
- election.log:选举模块记录日志
- rootservice.log:rootservice模块记录的日志
Observer日志级别
- ERROR:严重错误
- USER_ERR:用户输入导致的错误
- WARN:警告
- INFO:提示。该信息为正常信息
- TRACE:与INFO相比更细致化记录事件消息
- DEBUG:调试信息。用于调试时更详细了解系统运行状态;
Observer日志格式
-
日志记录主要组成:记录时间、日志级别、[模块名]、文件名:行号、线程ID和日志内容
[time] log_level [module_name] function_name (file_name:file_no) [thread_id][Ytrace_id0-trace_id1][log=last_log_print_time]log_data
例子:
[2022-04-29 16:39:55.186527] WARN [COMMON] get_file_id_range (ob_log_file_group.cpp:127) [103594] [0] [Y0-0000000000000000-0-0] [lt=17] [dc=0] max file does not exist(max_file_id=4, b_exist=false) 对日志进行拆解,得到日志格式: time:[2022-04-29 16:39:55.186527] --日志打印时间 log_level:WARN --日志级别 module:[COMMON] --日志的模块名 function:get_file_id_range --日志的函数名 file_name:line_number:(ob_log_file_group.cpp:127) --日志的代码源文件名及行号 thread_id:[103594] --日志的线程ID coroutine_id:[0] --日志的协程ID trace_id:[Y0-0000000000000000-0-0] --用于跟踪一个任务的trace_id,任务级唯一,该trace_id通过RPC在各个OBSERVER间传递,可以根据trace_id来获取一个任务的所有日志数据; log_used_time:[lt=17] --上一条日志的处理时间(异步日志场景包含日志写入文件时间) dropped_msg_count:[dc=0] --dc=xx,xx表示当前日志距离上一条日志期间丢弃的日志个数,没有丢弃则为0 info:max file does not exist --message parameter:(max_file_id=4, b_exist=false)
Observer配置项
- 日志写满256MB时,会做日志文件切换;
enable_syslog_recycle(默认false):是否开启系统日志回收的功能
max_syslog_file_count(默认0):保留的日志文件数量
syslog_io_bandwidth_limit(30MB):日志所占用磁盘IO带宽上限;超限则丢弃
enable_syslog_wf(true):是否把WARN以上级别的系统日志打印到一个单独的日志文件中
事务/存储日志
- clog:commit log,所有parttition共用,日志可能是乱序。记录日志、partition service提供的原始日志内容。
- Ilog:index log,单partition内部日志有序。记录分区内部log_id->clog的索引信息;每个副本自行记录
- Slog:storage log,指SSTable操作日志信息
事务日志详细
- 事务日志包括:redo log、prepare log、commit log、abort log、clear log等
- redo log:记录事务的具体操作
- prepare log:记录事务的prepare状态
- commit log:表示事务成功commit,记录commit信息,比如事务的全局版本号
- clear log:用于通知事务清理事务上下文
- abort log:表示这个事务被回滚