DISTRIBUTION
这部分只有一个接口用来获取当前集群所有distribution信息。
1.8FEVENTLOG
这部分涉及 ddl dml 以及 dmlstorage 三种 feventlog, 每种 feventlog 都提供了获取/清除等多个接口。
使用此类函数前使用gcwinit ()函数初始化资源管理引擎
1. 8. 1 getddlfevents (vc_name)
功能:获取所有ddl event信息
参数:vc_name集群的名称
返回值:返回所有ddl event信息
eventid: 对应的 eventid
comment :对应的注释信息
distributionid:对应的 distributionid tablename :表名
delayTag: delay 标识 1 标识 nocopy 表
content :已经加密编码后的sql语句 tableid:对应的 tableid
tabletype:表类型
nodecopyids :有问题的gclusterd节点信息
nodeipaddr:问题节点 ip
GBase 8a MPP Cluster 高级用户手册(内部) nodeid:问题节点 nodeid
dacopyids:有问题gnode节点信息
segid:问题分片对应的segmentid
segname:问题分片名
nodeipaddr:问题分片所在的节点ip
nodeid:问题分片所在节点的nodeid
vcid:问题所在的vc的id
实例 :>>> gcware. getddlfevents("vc1")
({'eventid': 4, 'comment': 'distributionid': 10, ' tablename':
'mydbdb', 'delayTag': 0, 'content':
'\x01\x00\x03\x00/\x00\x00\x00A\x01\x00\x00\xf0\x01\xd7\x01\x00\x00[ {〃key〃:〃vc0\x01\x00\xf6\x03.hashmap_lock〃,〃vc\x1c\x00\xc3〃,〃db〃:〃〃,〃 t\x08\x00\xfa\x05lktype”:0,"stat”:1}, R\x00\x1f4R\x00\x08\x1f4R\x00"\ xaf0.gbase.db\xa5\x00\t_GBASE\xaa\x00\x00\x1f1\xaa\x00\x08omydbdbY\x 00\x03\x05\xac\x00\x02%\x00\x0fZ\x00\t\x1c2\x04\x01\x04\xb2\x00\xff\ x08table_distribution. meta\xc7\x00\x16\xf7\x03TABLE_DISTRIBUTION\x83 \x01\x164\xd9\x00B]\x00\x07\x00\xa7\x003\x00\x01\x00\x03\x00\x00\x08 \x00@\xc0\xa8\x06\xb9\n\x00\x12\xff\x01\x00@\x7fJ\xf8\x10\x0f\x00\x0 7"\x00\xf0\x08\x00\x00\x00D\x00\x00\x00CREATE SELF DATAL\x01\xf2\x19 IF NOT EXISTS
"VCID_00-1D-7D-C7-A5-17""y\x00\x11"Y\x00\x03\x02\x00P\x00\x00\x00\x0
0\x00', 'tableid': 0, ' datacopyids': ({'segid' : 0, ' nodeipaddr':
'192.168.6.185', 'nodeid': 3104221376, 'segname': ''},), 'nodecopyids': (),'tabletype': REPLICATION', ' vcid': ' vc00004'},)
1. 8. 2 getddlfeventbytablename(dbname,
tbname)
功能:获取对应ddl event的个数
参数:dbname :库名
Tablename :表名
返回值:返回对应的ddl event的个数
实例:
>>> gcware.getddlfeventbytablename('test',‘ t')
1
1. 8. 3 getddlfeventref (vc_name, eventid)
功能:获取指定的ddl event信息
参数:vc_name集群名称
Eventid :event 的 id
返回值:返回所有ddl event信息
nodecopyids :有问题的gclusterd节点信息
nodeipaddr:问题节点 ip
nodeid:问题节点 nodeid
dacopyids:有问题gnode节点信息
segid:问题分片对应的segmentid
segname:问题分片名
nodeipaddr:问题分片所在的节点ip
nodeid:问题分片所在节点的nodeid
nodecopyid:节点的复制id
实例:
>>> gcware.getddlfeventref("vc1", 9)
{'datacopyids' : ({'segid': 1, 'nodeipaddr': '192.168.6.185',
'nodeid': 3104221376, ' segname': ' \xba\x01' }, {' segid' : 2, ' nodeipaddr':
'192.168.6.185', 'nodeid': 3104221376, 'segname' : ' \xba\x01'}),
'nodecopyids': ()}
1. 8. 4 setddlfevent(event_message)
功能:将指定的event加入到相应的数库中
参数:event的所有信息
返回:不返回值则成功
实例:
>>> gcware.setddlfevent({'eventid': 10, 'comment':'', 'distributionid': 10, 'tablename' : 'newdb', ' delayTag': 0,
'content':
'\x01\x00\x03\x00/\x00\x00\x00?\x01\x00\x00\xf0\x01\xd5\x01\x00\ x00[{"key":"vc0\x01\x00\xf6\x03.hashmap_lock", "vc\x1c\x00\xc3"," db":"","t\x08\x00\xfa\x05lktype":0,"stat":1}, R\x00\x1f4R\x00\x08 \x1f4R\x00"\xaf0.gbase.db\xa5\x00\t_GBASE\xaa\x00\x00\x1f1\xaa\x 00\x08_newdbX\x00\x03\x05\xab\x00\x01$\x00\x0fX\x00\t\x1c2\x02\x 01\x04\xb0\x00\xff\x08table_distribution.meta\xc5\x00\x16\xf7\x0 3TABLE_DISTRIBUTION\x81\x01\x164\xd7\x00A]\x00\x06\x00\xa6\x003\ x00\x01\x00\x03\x00\x00\x08\x00@\xc0\xa8\x06\xb9\n\x00\x12\xff\x 01\x00@\x7fT\xf8\x10\x0f\x00\x07"\x00@\x00\x00\x00C\x04\x00\xf0\ x00REATE SELF DATAI\x01\xf1\x19 IF NOT EXISTS
"VCID_00-1D-7D-C7-A5-17""x\x00\x11"X\x00\x03\x02\x00P\x00\x00\x0 0\x00\x00', 'tableid': 0, 'datacopyids': ({'segid': 0, 'nodeipaddr': '192.168.6.185', 'nodeid': 3104221376, 'segname': ''},),
'nodecopyids': (), 'tabletype' : 'REPLICATION', ' vcid':
'vc00004'},)
1. 8. 5 recoverddlfnodecopy(tablename, nodeip addr, lastEventID)
功能:将指定ddl event中损坏的gclusterd置为已恢复状态
参数:tablename :指定的 tablename
Nodeipaddr:指定的 ip lastEventID:指定的 eventid 返回值:0表示成功非0表示失败 实例:
>>> gcware. recoverddlfnodecopy('test.t','192. 168.6. 232' ,2)
0
>>> gcware. getddlfeventref (2)
{'datacopyids' : ({'segid': 3, 'nodeipaddr': '192.168.6.232',