GBase 8a 制造dmlstorageevent的一种方法
以953版本为例
1.关掉集群所有节点gcmonit和gcmmonit
用ps -eflgrep monit查看gcmonit、gcmmonit进程号,然后kill掉进程
2.删除数据文件
以删除数据库song下的表test3的n3分片的数据文件为例(test3为hash分布表) :
进入n3分片的主分片所在的节点,然后
进入安装目录下gnode层的userdata下的sys_ tablespace文件下,删除文件夹test3 _n3
3.gccli集群执行insert
例:insert into test3 values(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1);
插入的数据要包括能够落到n3分片的数据。
4.恢复节点的gcmonit服务
gcmonit.sh start
5.查看dmlstorageevent
可以通过gcadmin showdmlstorageevent查看,但是由于恢复太快不好看出来,所以可以直接看gcluster层的gc_recover.log或者建议写个脚本一直进行gcadmin showdmlstorageevent检查
6.dmlstorageevent恢复成功
恢复成功表现为gcadmin showdmlstorageeevent显示为0且被删除的数据文件test3_n3恢复了