Как сохранить данные 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
Надеюсь, этот ответ внесет некоторую ясность.