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

How to persist Memgraph data to local hard drive?

我 运行 Memgraph 在 Windows 11 WSL 上使用此命令:

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数据持久化到本地硬盘?

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

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

在整个 运行Memgraph 期间定期拍摄快照。当触发快照时,整个数据存储被写入磁盘。预写日志保存文件发生的所有数据库修改。当 运行ning Memgraph 与 Docker 时,这两种机制都依赖于用户创建将在启动 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

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