GBase 8a
运维管理
文章

主备分片scn不一致问题处理一例

发表于2024-02-25 18:22:2151次浏览0个评论

问题现象:
加载数据“Load data imfile ... into table table01...”  时提示:source table and destination table are not same: ... max_scn ...


分析过程:

根据提示显而易见说明:数据不一致导致scn不同,各节点主备分片及分片表scn如下:

主节点副节点分片名n1_scnn2_scnn3_scn
10.70.100.4510.70.100.46 n1991512382 991512382
10.70.100.4610.70.100.47n2991511943991511504 
10.70.100.4710.70.100.45n3 991512821991512821

处理思路:由于所有分片表主备scn都不一致,我们以每个分片较大scn号为基准,人为制造dmlstorageevent,由系统调用syncclient自动同步。

处理方法:

1. 锁表防止写入
gccli -ugbase -pxxx
gbase> lock table testdb.table01 write;

2. 人为创建dmlstorageevent
45节点操作:
cd /data/gbase/10.70.100.46/gnode/userdata/gbase/testdb/metadata
mv table01_n3.GED /home/gbase/
46节点操作:
cd /data/gbase/10.70.100.46/gnode/userdata/gbase/testdb/metadata
mv table01_n1.GED /home/gbase/
mv table01_n2.GED /home/gbase/

3. 重新设置scn号
gccli -ugbase -pxxx
gbase> set self gcluster_node_status_list='vc00001.testdb.table01:n3:761546250:2:123456';
gbase> set self gcluster_node_status_list='vc00001.testdb.table01:n1:778323466:2:123456';
gbase> set self gcluster_node_status_list='vc00001.testdb.table01:n2:778323466:2:123456';
gbase> unlock tables;

观察$GBASE_BASE/gnode/log/gbase/sync_log/目录,查看table01表是否同步。

同时可以检查是否有数据不一致的情况?是否产生dmlstorageevent?

gcadmin
gcadmin showdmlstorageevent

 

评论

登录后才可以发表评论