4

我正在使用以下命令在 Windows 11 WSL 上运行Memgraph :

docker run -it -p 7687:7687 -p 3000:3000 -e MEMGRAPH="--bolt-port=7687" -v mg_lib:/mnt/c/temp/memgraph/lib -v mg_log:/mnt/c/temp/memgraph/log  -v mg_etc:/mnt/c/temp/memgraph/etc memgraph

然后我创建了一个节点,但我检查了这些文件夹仍然是空的。

如何将 Memgraph 数据持久化到本地硬盘?

4

1 回答 1

9

Memgraph 使用两种机制来确保数据的持久性:

  • 预写日志 (WAL) 和
  • 定期快照。

在 Memgraph 的整个运行时定期拍摄快照。当快照被触发时,整个数据存储被写入磁盘。预写日志保存对文件发生的所有数据库修改。当使用 Docker 运行 Memgraph 时,这两种机制都依赖于用户创建卷,以便在启动 Memgraph 时存储这些数据。

为每个卷指定两个字段。第一个是卷的名称,它在给定的主机上是唯一的。在您的情况下,这将是 mg_lib、mg_log 和 mg_etc。第二个字段是文件或目录在容器中挂载的路径。在 Memgraph 的情况下,这将是:

  • /var/lib/memgraph(这是保存耐久性相关文件的地方)
  • /var/log/memgraph(日志)
  • /etc/memgraph(配置设置)

给定这些路径,使用 Docker 运行 Memgraph 的命令是:

sudo docker run -it -p 7687:7687 -p 3000:3000 -v mg_lib:/var/lib/memgraph -v mg_log:/var/log/memgraph -v mg_etc:/etc/memgraph memgraph

默认情况下,主机上的卷可以在以下位置找到:

\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes

我希望这个答案可以提供一些清晰度。

于 2021-10-20T03:47:36.163 回答