Как сохранить данные Memgraph на локальном жестком диске?

Я запускаю 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 на локальном жестком диске?

1 ответ

Memgraph использует два механизма для обеспечения надежности данных:

  • журналы предзаписи (WAL) и
  • периодические снимки.

Снимки делаются периодически в течение всего времени работы Memgraph. Когда запускается моментальный снимок, все хранилище данных записывается на диск. Журналы упреждающей записи сохраняют все изменения базы данных, которые произошли с файлом. При запуске Memgraph с Docker оба этих механизма полагаются на то, что пользователь создает тома, в которых будут храниться эти данные при запуске Memgraph.

Для каждого тома необходимо указать два поля. Первое - это имя тома, и оно уникально для данной хост-машины. В вашем случае это будут mg_lib, mg_log и mg_etc. Второе поле - это путь, по которому файл или каталог монтируются в контейнере. В случае с Memgraph это будет:

  • /var/lib/memgraph (здесь хранятся файлы, относящиеся к долговечности)
  • /var/log/memgraph (журналы)
  • /etc/memgraph (параметры конфигурации)

Учитывая эти пути, команда для запуска Memgraph с Docker следующая:

      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

Надеюсь, этот ответ внесет некоторую ясность.

Другие вопросы по тегам