OBLogProxy开启Binlog模式,Binlog文件未更新

【 使用环境 】测试环境
【 OB or 其他组件 】OceanBase+OBProxy+OB-Configserver+OBLogProxy
【 使用版本 】4.2.1+4.2.1+1.0.0+2.0.1.
【问题描述】构建好OBLogProxy Binlog模式后,系统租户sys下,更新test.studenttest数据,binlog无更新。
【复现路径】问题出现前后相关操作

系统租户sys下,更新test.studenttest数据,binlog无更新。

logproxy状态

麻烦大佬们看下原因

不能使用sys租户作为访问租户,要使用业务租户

大佬,我这里有点不理解。 访问租户是指我需要新建一个新租户去建立表,修改表。binlog才会更新吗?我后面尝试了使用新的业务租户访问,建立表,修改表还是不行。

1 个赞

我这边建立BINLOG的时候用以下的语句,是否正确。我用的是sys租户建立的BINLOG。
CREATE BINLOG FOR TENANT obcluster.sys TO USER cdccro PASSWORD xxxxx12345! WITH CLUSTER URL ‘http://xxx.xx.xx.xxx:18181/services?Action=ObRootServiceInfo&ObCluster=obcluster’;

创建 Binlog 服务是要使用业务租户,同样访问 binlog 服务要使用已创建 binlog 服务的业务租户来访问,建议先看看文档。

我是参照 使用 Binlog 模式-OceanBase 日志代理服务 (OBLogProxy)-OceanBase文档中心-分布式数据库使用文档
这个文档进行配置的。上面也没有说的很清楚。所以配置的问题出现了很多。。。。
我去试试用业务租户。

麻烦还有一个问题,我使用 DROP BINLOG [IF EXISTS] FOR TENANT obcluster.sys;
想删除建立的binlog。然后重新创建,但是并不生效。

首先创建 binlog 服务不能使用 sys 租户,要使用业务租户,使用 sys 租户已经创建失败了。
你这里删除建立的 binlog 服务(sys),并没有生效,发一下日志呢?另外看一下 run 目录是否还存在呢?

我这边直接把obcluster 删除重建了。。。现在按照要求使用业务用户,创建binlog后有如下报错,并重启 OBLogProxy 服务,但是binlog_converter.log日志中有如下报错,麻烦看下原因,用户是不是权限不够,还是那里的配置不对。

业务用户登录的语句
obclient -hxxxxxxx -P2881 -ucdccro_user@obtest_t1 -p’xxxxx12345!’ -A

obtest_t1 新建的业务租户
cdccro_user 业务租户下面新建的用户

登录后查看日志中的表没有查到。
新建的


创建binlog服务的用户用户我改为 sys租户下面的管理账户,就可以启动起来。然后在新建的租户下面做表的操作。binlog日志会更新了

CREATE BINLOG FOR TENANT obcluster.test TO USER root PASSWORD xxx WITH CLUSTER URL ‘[config_url]’, SERVER UUID ‘xxx’;
obcluster 为集群名称
test 为业务租户名称(需要单独建立)
root 为系统租户下用户(需要高权账号)

可以通过sql查询show global variables like ‘%uuid’;

我统一汇总一下吧。

  1. 创建 binlog 服务的租户为 业务租户,不能为 sys 租户,我们所创建的 binlog 服务是为其业务租户服务的,因此再去做 show master status; 或其他 binlog 相关的命令或动作时,也是连接其业务租户。
  2. 创建 binlog 服务所使用的账密需要是 sys 租户的账密,(例如 TO USER root PASSWORD xxx,这里的 root 与 xxx,是 sys 租户下的账密,需具备 sys 租户下 oceanbase 库的读权限),文档中描述有误,我们后期后订正一下。
  3. 另外创建 binlog 服务请参考文档,创建 binlog 服务的命令不需要携带 server uuid。