问题

问题

问题

我的硬盘无法再启动到 Ubuntu 18.04 桌面(我怀疑 UI 无法加载,但其他一切都应该正常工作)。分析问题出在哪里需要太多时间,所以我想备份位于 /var/lib/mongodb 的所有物理 MongoDB 数据并将其恢复到另一台 PC。

我开始启动 Ubuntu live,但只能找到使用 MongoDB 服务(如“mongodump 和 mongorestore”)备份/恢复 MongoDB 数据库的信息;这些信息在这里无法应用。但是是否可以将文件夹 /var/lib/mongodb 复制到 USB 驱动器,然后将其恢复到新 PC 中的相同位置?是否有需要运行的权限命令?

与 MySQL 在此处提供的内容类似https://stackoverflow.com/questions/484750/restoring-mysql-database-from-physical-files

答案1

回答这个问题:是的。官方的备份/恢复文档将其称为“冷备份”,并有如下内容:

使用cp或备份rsync

如果您的存储系统不支持快照,则可以使用 、 或类似工具直接复制文件cprsync由于复制多个文件不是原子操作,因此在复制文件之前必须停止对 mongod 的所有写入。否则,您将复制处于无效状态的文件。

通过复制底层数据生成的备份不支持副本集的时间点恢复,并且对于较大的分片集群来说难以管理。此外,这些备份更大,因为它们包括索引和重复的底层存储填充和碎片。相比之下,mongodump 创建的备份较小。

  • 你需要停下来mongo

您可以使用...进行备份

  • rsync -vahP /var/lib/mongodb/ /media/backup/

    备份到本地目录或

  • rsync -vahP /var/lib/mongodb/ {user}@{url}:/{dir}/

    用于备份到远程系统

恢复:停止mongo并切换2个位置。

答案2

注意在目标主机上安装相同的 mongodb 版本。否则 mongod 启动将中止并在日志中显示一条消息。如果您出于某种原因不知道原始版本,请从高版本开始,然后尝试使用较晚的版本重新安装,直到启动为止。

相关内容