【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】4.2.0_CE
【问题描述】
(golang程序连接数据库实例)
-
使用备份包还原备租户:ALTER SYSTEM RESTORE slavemysql …
-
db连接备租户,并启动事务:
tx = db.Begin()
tx.Pluck() // 查询整列数据,此时会直接panic(若tx.Find() // 会报错,但不会panic )
【期待效果】
备租户可支持开启事务的查询
【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】4.2.0_CE
【问题描述】
(golang程序连接数据库实例)
使用备份包还原备租户:ALTER SYSTEM RESTORE slavemysql …
db连接备租户,并启动事务:
tx = db.Begin()
tx.Pluck() // 查询整列数据,此时会直接panic
(若tx.Find() // 会报错,但不会panic )
【期待效果】
备租户可支持开启事务的查询
您开启事务执行查询的目的是什么呢
主备租户的业务机制的同一套代码
备租户在DDL的时候会提示:Error 4688: standby tenant is read only;此时业务会忽略错误
但直接panic就导致程序挂掉了,而不是仅仅抛出异常
(虽然从业务逻辑上可以先判断是否是主备租户再操作,但想说能从底层能直接一样抛出异常)
您是想分散压力把select事务放到备集群上么,我观点是不太可行开启备集群的事务select功能,这需要obproxy和ob都要对事务进行判断