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里 啊 。
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及以上版本