KingbaseES V8R6C5B0023 sys_dump备份锁冲突故障测试

一、sys_dump故障现象

日志显示:
Sys_dump备份期间,需要获取AccessExclusiveLock,和应用中的锁发生冲突,导致sys_dump失败。

日志显示:
1、sys_dump需要获取AccessExclusiveLock,被recovery process阻塞。
2、在备库rcovery 期间,只能获取RowExclusiveLock以下的锁。

所以,这个sys_dump应该获取的锁信息有点不正常,导致sys_dump备份失败。

二、测试故障版本sys_dump锁信息
2.1 测试版本

prod=# select version();
                                                       version                                                       
-------------------------------------------------------------------------------
 KingbaseES V008R006C005B0023 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)

2.2 执行sys_dump备份单张表

[kingbase@node1 bin]$ ./sys_dump -U system -p 54323 -d prod -t
public.t1 >/home/kingbase/t1.sql

2.3 查看访问对象加载的锁信息

三、测试其他版本sys_dump锁信息
3.1 测试版本

prod=# select version();
                                                       version                                                       
-------------------------------------------------------------------------------
 KingbaseES V008R006C003B0010 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)

3.2 执行sys_dump备份单张表

3.3 查看访问对象加载的锁信息

四、总结
如下图所示:正常的sys_dump备份只需要’AccessShareLock’锁,V8R6C5B0023 (故障版本),在做sys_dump时,增加了‘AccessExclusiveLock、ShareUpdateExclusiveLock’锁,导致和业务产生的锁发生了冲突,应该是bug问题导致。

五、解决方案

测试结果:

5.1 配置kingbase.conf

重新启动数据库服务。
5.2 执行sys_dump备份单张表

5.3 查看sys_dump加载锁信息

由以上图可知,sys_dump锁信息正常。

posted @ 2022-04-26 16:42  天涯客1224  阅读(233)  评论(0编辑  收藏  举报