没有把日志记录在obproxy里啊

https://www.oceanbase.com/docs/common-odp-doc-cn-1000000000755700#2-title-诊断日志

我已经设置了 route_diagnosis_level=4

然后执行
/* TARGET_DB_SERVER ='10.11.253.63:2881 */ SELECT 888;

但是,它并没有把路由日志记录到obproxy_diagnosis.log里 啊 。

以下场景输出 TRACE 级别日志
● 事务路由(普通事务内)
● 语句表名为空
● 语句超长,长度大于 request_buffer_length

你这个看上去应该是还需要设置下 monitor_log_level=‘TRACE’

设置了monitor_log_level=TRACE之后,还是不行呢

ODP什么版本?

4.2.1.0-11

ODP421版本日志输出时机是执行用户SQL,分区未命中时输出诊断日志。
使用explain route select 777可以看到使用路由策略是USE_LAST_SESSION。
实际查看SQL路由准确性都是判定为准确路由的。所以不输出诊断日志应该是符合预期的

ODP423及以上版本支持更详细信息的路由诊断日志输出。
可以考虑使用较高版本

ODP421版本上线路由诊断一期功能,开启路由诊断后(route_diagnosis_level支持0-2,更高级别设置实际效果同2),用户执行路由不准的SQL记录到诊断日志中。
ODP423版本支持路由诊断二期功能。开启路由诊断后(route_diagnosis_level支持0-4,事务路由/无表/语句超长SQL还需要设置monitor_log_level=‘TRACE’)。

4x集群SQL是否准确路由依赖oceanbase.gv$ob_sql_audit表执行SQL的partition_hit字段判断。
如果希望准确路由的SQL也输出相应的诊断日志,建议使用ODP423及以上版本

1 个赞