# 备份与恢复

EMQX 集群提供了转移功能,能够确保系统的高可用性,并且采用分布式存储将数据复制到所有节点。

尽管如此,我们仍然应当做最坏的打算来确保数据万无一失,本章节指导您如何进行 EMQX 数据备份和恢复。

# 配置文件

当使用配置管理工具、配置中心或 Git 管理配置时,配置的备份恢复通常不需要手动操作。

但如果手动修改配置文件则需要将其定期备份,由于安装方式不同,配置文件所在位置也不同:

  • 使用二进制包安装时默认为 /etc/emqx
  • 压缩包解压安装时,默认为安装目录下的 ./etc
  • 在 Docker 容器中运行时,默认为 /opt/emqx/etc

除了 etc 目录外,还有一些配置位于 data 目录中,请参考 配置文件介绍

# Mnesia 数据库

EMQX 默认使用 Mnesia 数据库来存储数据,可以直接备份 Mnesia 数据文件夹。

在 EMQX Mnesia 数据库中,数据存储 在EMQX 的 data 目录下的 mnesia 子目录。备份数据库可以简单的复制其中的所有文件。

根据安装和配置的不同,data 目录默认在以下位置:

  • 使用二进制包安装时默认为 /var/lib/emqx/data
  • 压缩包解压安装时,默认为安装目录下的 ./data
  • 在 Docker 容器中运行时,默认为 /opt/emqx/data

您也可以通过 node.data_dir 配置或 EMQX_NODE__DATA_DIR 环境变量指定 data 目录位置。

# 持久会话

在 EMQX v5.0 之前,持久会话存储于内存中,对于企业版则存储到外部数据库,因此您无法在 EMQX 中备份持久会话。

# 数据恢复

在 EMQX 启动之前,将配置文件与数据放置到对应目录即可。