-
数据快照存储路径,本地和文档有区别,这个是版本原因造成的吗?
看文档是说直接在/data数据目录下,但本地会细分到子文件夹中
├── data
│ ├── metad
│ │ └── nebula
│ │-----└── 0
│ │----------├── checkpoints
│ │----------├── data
│ │----------└── wal
│ └── storage
│-----└── nebula
│----------├── 17
│---------------├── checkpoints
│---------------├── data
│---------------└── wal
│----------├── 34
│---------------├── checkpoints
│---------------├── data
│---------------└── wal -
将所有数据整体迁移到新机器上时,config文件除了ip信息外都未改动,为什么新机器启动服务后,会有原机器的host信息,这个是保存在./data/metad文件夹中了吗?那就是这个文件夹在恢复时不需要转移?
(root@nebula) [dkg]> show hosts
| Ip | Port | Status | Leader count | Leader distribution | Partition distribution |
| 新的.101 | 44500 | online | 0 | No valid partition | No valid partition |
| 新的.102 | 44500 | online | 0 | No valid partition | No valid partition |
| 新的.103 | 44500 | online | 0 | No valid partition | No valid partition |
| 旧的.82 | 44500 | offline | 0 | | xxx: 100,xxx: 100, xxx: 100,xxx: 100,xxx: 100|
| Total | | | 0 | | xxx: 100,xxx: 100, xxx: 100,xxx: 100,xxx: 100 | -
目前查询数据功能都还正常,但是无法使用balance data,报错
(root@nebula) [dkg]> balance data
[ERROR (-8)]: No valid host hold the partition
IP的问题,因为metaServer中记录了历史的host,迁到新机器上因为IP改动而启动失败。目前checkpoint尚未支持异构恢复。
应该不算异构吧,我本来打算是,数据完全复制到一个节点上,启动服务,再通过balance data进行数据再平衡到其它节点。这样一对一的恢复,看论坛另一个帖子应该是没问题的呀
现在数据库启动查询都没问题,然后也试过在复制数据那个节点上,把metad文件夹内容都删除了,再重新启动,但还是这样,是不是nebula程序文件夹也有东西需要一起删除才行?
请问能提供一下这个帖子的URL吗?从理论上来说,拷贝集群的一个节点,通过这个节点将数据balance到其它节点上的方案不可行。因为你所拷贝的节点中只有部分partition。
我拷贝的源机器,只有一个节点,所以是有全部数据信息的。所以一对一这样拷贝应该是可以的吧。
这个帖子后面有说是将数据从一台迁移到另一台上。
那我现在想将服务扩展,如果不通过dump再load的方式,可不可以先在旧节点上增加三个新的节点,再进行扩容->缩容的操作,把旧节点踢出去。
可以的,如果需要替换node或水平扩容,这是最好的方案。
这里有一篇文章,希望对你有所帮助
https://docs.nebula-graph.com.cn/manual-CN/3.build-develop-and-administration/5.storage-service-administration/storage-balance/
好,我重新启动下服务吧,还有,之前提到的checkpoint目录问题,我是参考文档里设置的目录,就是./data/storage和./data/metad形式,你们一般是怎样设置的,可以使checkpoint不在那么深的目录下,data_storage/storage 和 data_metad/metad这样?
可以将storage 和 meta的目录分开设置,例如
nebula-storaged.conf : --data_path=storage_dir
nebula-metad.conf : --data_path=meta_dir
什么意思,现在是分开的阿,现在是
–data_path=/data/nebula/data/storage
–data_path=/data/nebula/data/metad
是的,最优就是这样了,checkpoint 目录将会在第四层:
├── metad (你的data_path根目录)
│ │ └── nebula (nebula graph 预定义的目录,无法改变)
│ │-----└── 0 (space 目录,这个序号表示spaceID)
│ │----------├── checkpoints (checkpoint目录,这个目录中有子目录data和wal)
│ │----------├── data (data 目录)
│ │----------└── wal (write ahead log目录)