得到metad的__spaces__.sst等文件后怎么恢复metad数据

问题:在CreateBackupProcessor里面通过backup操作得到metad的一系列元数据sst文件,如__spaces__.sst、indexes.sst等等后,怎么利用这些文件恢复metad数据。

    // step 4 created backup for meta(export sst).
    auto backupFiles = MetaServiceUtils::backup(kvstore_, spaces, backupName, backupSpaces);

起因:想给create snapshots语句增加指定spaces的功能,在metad这里卡住了 :sweat_smile:,看3.0 nebula-br工具没太看懂是怎么处理这一块的。假如直接将__spaces__.sst等文件复制到metaDataPata/nebula/0/data/文件夹重启metad不起作用…

需要ingest br应该有个接口是restore,那个接口应该会搞定这些事情的

1 个赞

br 可以处理这些事情,不过恢复的时候可能会将原来数据清空。另外,关于 br 是哪一块没有看懂?

func (m *NebulaMeta) RestoreMeta(metaAddr *nebula.HostAddr, hostMap []*meta.HostPair, files []string) error 

这里调用服务端接口,然后恢复。
目前是不太好只针对某个 space 的,因为所有 space 的 tag schema 都在一起。
然后就像上面说的,如果用 br 恢复的话,所有新增的数据都会还原。

1 个赞

谢谢大佬,我看了看代码,应该就是这个接口,我研究一下怎么不用http来调用这个方法 :thinking: :joy:

谢谢大佬,刚才对一些接口不熟悉,不知道恢复部分space的逻辑,现在大概懂了 :pleading_face:

谢谢大佬,大概知道了,之前没有看到这个接口,不过我们现在想的是2.x版本实现这个功能,用不了3.0的br工具,我想想怎么改这个东西 :thinking:

1 个赞