通过OBProxy连接,查询很慢

都是很普通表,没有什么特殊字段。

CREATE TABLE pf_app_client (
id bigint(20) NOT NULL ,
user_id bigint(20) DEFAULT NULL,
account varchar(50) DEFAULT NULL ,
client_id varchar(100) DEFAULT NULL ,
client_type varchar(50) DEFAULT NULL ,
update_time datetime DEFAULT NULL ,
PRIMARY KEY (id)
)

登录 sys 租户看下这个 SQL 执行是否正常

SELECT /+READ_CONSISTENCY(WEAK)/ * FROM oceanbase.__all_virtual_proxy_schema WHERE tenant_name = ‘mysql’ AND database_name = ‘ecp_platform_dev’ AND table_name = ‘pf_app_client’ AND tablet_id = 0 ORDER BY role ASC LIMIT 9223372036854775807

不正常,查询超时。

4012 - Timeout, query has reached the maximum query timeout: 10000000(us), maybe you can adjust the session variable ob_query_timeout or query_timeout hint, and try again.
时间: 10.048s

可能是observer的问题,能不能把节点相关的日志发一下

observer.log.zip (2.0 MB)

日志文件有点大

能不能查询下单个slow sql执行后的traceid,然后grep traceid observer.log*|cat,这个日志上传一下

SELECT id FROM pf_demo
耗时: 5.002s

observer.traceId.log (2.5 KB)

我觉得跟这个是同一个原因,只是现像不同而已:
创建表时报错[4722] [HY000]: log stream location leader does not exist - 社区问答- OceanBase社区-分布式数据库

create table table1(id int)
4722 - log stream location leader does not exist
时间: 1000.03s

observer.CreateTable.log (5.2 KB)

YB42C0A80C7B-00060B192CBD383D-0-0
这个traceid总共就这些内容吗

是的,我又做了一次,就这么多。

select * from __all_virtual_election_event_history
查询下这条sql,直连查询

sys租户oceanbase数据库,没有这张表呀。其它库也找了,没有这个表。

SELECT gmt_create,svr_ip,svr_port,event,name3,value3 FROM __all_server_event_history WHERE module=“ELECTION” AND value1=$tenant_id AND value2=1 ORDER BY gmt_create;
查询一下这条sql,租户id替换成你之前执行查询sql的租户id


截取下这个时间段内的

image

在每个server里搜grep ‘pcode.*538[4567]’ ./observer.log,看下是否能搜到日志

这是在日志中找到的内容
a.log (37.5 KB)
b.log (6.0 KB)

在这台机器上搜一下报错信息,和它的traceid相关的所有日志:192.168.12.123:2882 -4013的报错

日志文件有20M,只能传到网盘上:
链接: observer.trace.log 百度网盘 请输入提取码 提取码: 1234