提问者

发布23
回答131

相关问题

相关资料

手工清理event 发表于 2020-05-15 阅读 130回复 1

python接口清理event时如何精准匹配表名?


有现场反馈使用python接口清理某个表的event时,发现一些具有相同表前缀的event也被清理掉了。
举例如下:
[gbase@hd55 ~]$ gcadmin showddlevent
Event count:7

Event ID:    15
ObjectName: hg.zhejiangtab_test
Fail Node Copy:
------------------------------------------------------

Fail Data Copy:
------------------------------------------------------
SegName: n3     NodeIP: 172.16.3.57     FAILURE
SegName: n2     NodeIP: 172.16.3.57     FAILURE


Event ID:    17
ObjectName: hg.zhejiangtab_test_bak
Fail Node Copy:
------------------------------------------------------

Fail Data Copy:
------------------------------------------------------
SegName: n3     NodeIP: 172.16.3.57     FAILURE
SegName: n2     NodeIP: 172.16.3.57     FAILURE

Event ID:    19
ObjectName: hg.zhejiangtab_test_bak_test1
Fail Node Copy:
------------------------------------------------------

Fail Data Copy:
------------------------------------------------------
SegName: n3     NodeIP: 172.16.3.57     FAILURE
SegName: n2     NodeIP: 172.16.3.57     FAILURE


使用pyhon接口进行表hg.zhejiangtab_test_bak的清理,如下
[gbase@hd55 ~]$ python
Python 2.7.5 (default, Aug  2 2016, 04:20:16)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gcware
>>>
>>>
>>> help(gcware)
Help on module gcware:

......
>>> gcware.clearddlfevent('^hg.zhejiangtab_test_bak')
2


再次查询ddlevent情况gcadmin showddlevent,显示hg.zhejiangtab_test_bak及hg.zhejiangtab_test_bak_test1表(对应EVENT ID分别为17、19)的ddlevent都被清除

回答 (1)

iLeLe
发表于2020-5-15 13:42
这个问题是正则表达式匹配字符串,需要包含字符串头和尾,
其中字符串头使用^字符匹配,字符串尾使用$字符匹配。
在这个举例中,要严格匹配ddlevent的 ObjectName为 hg.zhejiangtab_test_bak的内容,而不能包含 hg.zhejiangtab_test_bak_test1的内容,则需要写成 :
gcware.clearddlfevent('^hg.zhejiangtab_test_bak$')

撰写回答

您需要登录后才可以回帖 登录 | 立即注册