备租户启用事务去查询数据,会报错异常

【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】4.2.0_CE
【问题描述】
(golang程序连接数据库实例)

  1. 使用备份包还原备租户:ALTER SYSTEM RESTORE slavemysql …

  2. db连接备租户,并启动事务:
    tx = db.Begin()
    tx.Pluck() // 查询整列数据,此时会直接panic

    (若tx.Find() // 会报错,但不会panic )

【期待效果】
备租户可支持开启事务的查询

您开启事务执行查询的目的是什么呢

主备租户的业务机制的同一套代码
备租户在DDL的时候会提示:Error 4688: standby tenant is read only;此时业务会忽略错误
但直接panic就导致程序挂掉了,而不是仅仅抛出异常
(虽然从业务逻辑上可以先判断是否是主备租户再操作,但想说能从底层能直接一样抛出异常)

您是想分散压力把select事务放到备集群上么,我观点是不太可行开启备集群的事务select功能,这需要obproxy和ob都要对事务进行判断