执行cd $GCWARE_BASE/data/gcware命令,进入到gcware持久化文件目录,可看到如下文件:
|---GCWARE_META.A--raft协议元数据,在gcware服务启动时读取
|---GCWARE_META.B--raft协议元数据另一版本,在持久化快照、切换到Candidate或Follower状态、投票给某节点时写入
|---REDOLOG.--gcluster、gcrecover等访问gcware的写操作日志
|---SNAPSHOT..--gcware存储的一致性信息,比如scn、tableid、feventlog、节点状态等 进入其中一个SNAPSHOT..*目录,看到如下文件:
|---members--gcware节点列表,含节点nodeid,ip地址和节点状态
|---meta--gcware持久化文件版本,目前固定为2.1,留作未来修改gcware持久化文件格式时扩展使用
|---sessions:存储gcluster、gcrecover等客户端进程与gcware建立连接的session信息,具有临时性,当客户端主动断开连接或session_expire时,自动删除
|---statemachine:存储gcware保存信息(scn、tableid、集群拓扑、feventlog、lck、failover和节点状态等)的文件夹,相当于86版本的/var/lib/gcware
进入statemachine目录,看到如下文件:
|---clm_clientinfo:客户端与gcware clm模块连接的session信息
|---COMMITID:记录当前已分配出去的最大commitid
|---COMMON_REGIST:存储gcluster kafka consumer各节点任务信息
|---COORDINATORSTATE:coordinator节点状态信息
|---crm_clientinfo:客户端与gcware crm模块连接的session信息
|---DATACLUSTERSTATE:dataserver节点状态信息
|---DISTRIBUTION2VC:vc和distribution信息
|---DISTRIBUTIONID:记录当前已分配出去的最大distributionid
|---FAILOVER:failover信息
|---FEVENTLOG:coordinator节点上的feventlog日志信息
|---FREEDATASERVER:未被添加到VC的freenode节点信息
|---GCWARE_MODE:集群模式,normal、readonly和recovery
|---INCOMPLETE_DDLFEVENT:暂时未记录完整的ddl日志
|---INCOMPLETE_DMLFEVENT:暂时未记录完整的dml日志
|---KVSTORE:用于gcware的key-value存储,目前只存储了引擎实例信息
|---lck_clientinfo:客户端与gcware lck模块连接的session信息
|---QUEUE_RESOURCE:集群锁信息
|---RCVC:VC信息
|---RECOVER_REGIST:存储gcrecover各节点的任务信息
|---SCN:记录当前已分配出去的最大scn
|---TABLEID:记录当前已分配出去的最大tableid
|---TAKEOVER_REGIST:存储gcluster用于接管failover的连接信息
|---TASKID:记录当前已分配出去的最大taskid
|---VCID:记录当前已分配出去的最大vcid
|---VCMIRROR:暂未使用
|---VCMIRRORID:暂未使用
|---vc00001:
进入vc00001目录,可以看到如下文件:
|---DATACLUSTERSTATE:VC下dataserver节点状态信息
|---DATASERVER:VC下dataserver节点信息
|---DISTRIBUTION:VC下distribution信息
|---FEVENTLOG:VC下feventlog信息
|---INCOMPLETE_DDLFEVENT:VC下暂时未记录完整的ddl日志
|---INCOMPLETE_DMLFEVENT:VC下暂时未记录完整的dml日志
|---SEGMENT:VC下各节点的分片信息
|---SEGMENTID:当前已分配出去的最大segmentid