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_scn | n2_scn | n3_scn |
| 10.70.100.45 | 10.70.100.46 | n1 | 991512382 | 991512382 | |
| 10.70.100.46 | 10.70.100.47 | n2 | 991511943 | 991511504 | |
| 10.70.100.47 | 10.70.100.45 | n3 | 991512821 | 991512821 |
处理思路:由于所有分片表主备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
评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526