适用版本
OceanBase 数据库 V2.x、V3.x 版本。
问题现象
主备 OCP 上分别有主备集群,目前主集群有告警:
- 告警 1:日志类型是 observer,错误码 4370,错误名称
OB_ERR_TDE_METHOD。 - 告警 2:OceanBase 租户长时间未释放 memtable。在主集群创建新租户后发现备集群没有新租户出现,后续发现备集群合并管理界面显示状态超时,进度为 99%,已进行十余天。
问题原因
排查过程:
查看当前集群的 MemStore 的详细使用情况。
SELECT /*+ READ_CONSISTENCY(WEAK),query_timeout(100000000) */ TENANT_ID,IP, round(ACTIVE/1024/1024/1024,2)ACTIVE_GB, round(TOTAL/1024/1024/1024,2) TOTAL_GB, round(FREEZE_TRIGGER/1024/1024/1024,2) FREEZE_TRIGGER_GB, round(TOTAL/FREEZE_TRIGGER*100,2) percent_trigger, round(MEM_LIMIT/1024/1024/1024,2) MEM_LIMIT_GB FROM gv$memstore ORDER BY tenant_id,TOTAL_GB DESC;查看当前集群的合并版本号和数量。版本号为 8。
select zone,svr_ip,data_version,count(*) cnt from __all_virtual_meta_table group by zone,svr_ip,data_version order by zone,svr_ip,data_version;通过合并版本号来查看详细的信息。
select * from __all_virtual_meta_table where data_version = 8;当前这三条记录备集群可以查到,但是主集群没有查到;同时相同的 table_id 的在主集群的 version 已经为 29;此为正常现象,因为主库做过多次合并,版本已经升上去了。
查下主备集群业务租户下 tde_method 的参数值。
发现主机群为 internal,而备集群为 none。
具体原因:
主备库业务租户下的参数 tde_method 不一致导致。直接在主集群黑屏界面上做了修改,且以为备集群能够同步这个参数,导致主备集群的参数不一致。
解决方法
在备库上黑屏修改参数和主库一致后主备同步正常。
alter system set tde_method='internal';
注意
如果在白屏和黑屏的主集群修改集群的参数,有些参数是不会同步给备集群的,最好是统一白屏修改。