oceanbase 主备租户不同步

我有两套集群,没套集群都是三个zone ,每个zone 里面三个observer,版本是4.x之后的(试过4.2.1.8 还有4.3.0.1),
1、如果主租户是3zone-1unit ,备可以正常同步,
2、如果主租户是3zone-3unit,备可以搭建成功,但是同步的sync-scn 不变,数据无法同步过来,看日志也没有发现异常的warn 和error

不知道这个大家有遇到过吗?

2 个赞

目前测试的结果好像是多zone 多unit 的租户作为主租户的话,主备租户搭建不报错,但是数据不会进行同步

2 个赞

搭建方式是使用的ocp么,租户是否有数据呢

2 个赞

租户内没填入数据,正常没数据sync_scn 也是会推进的,搭建方式走黑屏的方式,OCP 应该也会遇到类似的情况

建个测试表进行测试看看。你说的这种不太可能发生 :melting_face: 你是否搭建的是克隆租户呢? 克隆租户是不会自动同步的

1 个赞

–设置归档位置点
ALTER SYSTEM RECOVER STANDBY UNTIL UNLIMITED;
注意:select * from dba_ob_tenants; --查看rsync的值变化,确定数据在变化

看看

1 个赞



创建命令参考这个创建备租户的操作方式
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574390

执行了ALTER SYSTEM RECOVER STANDBY TENANT = zz UNTIL UNLIMITED; 这个操作后,还是没有增长

1 个赞

用户都没同步过来,测试表的话也同步不过来

我操作了,没效果

rep_user这个用户创建了么,密码设置的什么,是否有创建测试表测试过确定scn不往前推?

1 个赞

看着你描述的位点没有推进是吧?下面的信息 确定一下
1、主备租户信息查询
select * from DBA_OB_TENANTS;
2、备租户信息查看
– 备租户执行查询同步延迟
select SCN_TO_TIMESTAMP(SYNC_SCN),current_timestamp(6)
from DBA_OB_TENANTS
where TENANT_TYPE=‘USER’ and TENANT_ID=1010;
– 在备租户的sql 客户端上执行如下查询,找到延迟最大的LS。并查看SCN是否在持续推进
select SCN_TO_TIMESTAMP(min(end_scn)),current_timestamp(6), ls_id, svr_ip,svr_port
from GV$OB_LOG_STAT
where TENANT_ID=1010 and role=‘LEADER’;
–查看最小的位点
SELECT MIN(SYNC_SCN) FROM CDB_OB_LS WHERE TENANT_ID=1010;
– 确认租户角色以及可恢复位点
select * from __all_virtual_tenant_info where tenant_id = 1010;
– 查看日志流恢复状态表
select * from v$ob_ls_log_restore_status where tenant_id = 1010;
– 查看日志恢复源
select * from cdb_ob_log_restore_source where tenant_id = 1010;
– 查找最慢日志流
select *, scn_to_timestamp(end_scn) from gv$ob_log_stat where tenant_id = 1010 and role = ‘leader’ order by end_scn;
备库的clog回放状态
select * from __all_virtual_replay_stat where tenant_id=1010;
主备库rootservice.log、observer.log压缩发一下

1 个赞

repl_user有创建的,同一套流程,

单zone 多unit 的主同步到任意zone 任意unit 的都没问题,
多zone dan unit 的主同步到任意zone 任意unit 的也没问题,

有问题的就是多zone 多unit 的主租户,只要备租户的unit 比主的unit 少,就会无法刷新sync_scn进度,数据也没同步到备租户上

先把主库的 archivelog 打开, 别关闭。 进行基于网络的同步呢。

1 个赞

不是的,我有OCP 复现的操作,你们可以试下你们环境看能不能浮现,需要两套OB 集群,主创建一个3zone 2unit 的租户,然后备租户同步这个主租户,是3zone 1 unit 的,创建完成后,查询
select TENANT_NAME,TENANT_TYPE,PRIMARY_ZONE,UNIT_NUM,SYNC_SCN,REPLAYABLE_SCN,READABLE_SCN,RECOVERY_UNTIL_SCN from dba_ob_tenants where TENANT_TYPE=‘USER’;

会发现备的sync 不动

之前怀疑我是不是黑屏操作会有问题,早上搞了个ocp 来搭建主备,也是一样的,下面分别是主备租户的信息OCP 截图


我看下您的备租户 登录进去 : 看下 日志源信息

select * from dba_ob_log_restore_source;

1 个赞

image
都是这个,没有抓取到日志。

  1. 空备租户的账号密码对不对呢?
  2. 防火墙是不是关闭的 。 还是就没有防火墙或者 selinux这些。
  3. 看下日志源设置的对不对。主库一直在动,有新日志产生


上面是zhu主,下面是备

1、这个是使用OCP 来创建的,主备同步账号是由OCP 来创建配置的,没改过密码,密码错误的话应该在create standby 阶段会报错
2、防火墙这个关了,这套环境用ocp 安装的,安装之前都把防火墙和selinux 都关闭了
3、日志源这个上面那个图,我搜备租户所在节点的observer.log 过滤这个租户也没看到异常的信息,好奇怪

93563 93562 两个集群编号。 你在一个集群上试下,您的操作。 再不行,估计可能是程序问题