快照(snapshot)是Meilisearch数据库的精确副本。快照适合用作快速备份,但不能用于迁移到新版本的Meilisearch。

本教程将展示如何设置定时快照创建,确保您始终拥有可用的最新实例备份。您还将学习如何从快照启动Meilisearch。

Meilisearch Cloud不支持快照功能。

设置定期快照

定期为Meilisearch数据创建备份是良好的实践。这能确保在Meilisearch实例出现严重故障时,您可以快速恢复数据。

使用--schedule-snapshot配置选项来按固定时间间隔创建快照:

meilisearch --schedule-snapshot

首次快照会在启动时创建,您可以在快照目录/snapshots中找到它。之后Meilisearch会每24小时创建一个新快照,直到您终止实例。

Meilisearch在创建新快照时会自动覆盖旧快照。任何时候该文件夹中只会保留最新的快照。

如果您的数据库每天会更新多次,可能需要调整快照间隔时间:

meilisearch --schedule-snapshot=3600

这将指示Meilisearch每小时创建一个新快照。

如果您需要在不重启实例的情况下生成一次性快照,可以使用/snapshots路由

从快照启动

要将快照数据导入您的实例,请使用 --import-snapshot 参数启动 Meilisearch:

meilisearch --import-snapshot mySnapShots/data.ms.snapshot

由于快照是数据库的精确副本,从快照启动 Meilisearch 实例比手动添加文档或从转储文件启动要快得多。

出于安全考虑,Meilisearch 永远不会覆盖现有数据库。默认情况下,如果实例中已存在数据,Meilisearch 在导入快照时会抛出错误。

您可以通过指定 --ignore-snapshot-if-db-exists=true 来改变这一行为。这将使 Meilisearch 使用现有数据库启动,并忽略快照文件而不抛出错误。