我需要将正在运行的 nextcloud 从一台服务器迁移到另一台服务器。除了更改 CNAME 等内容外,是否有一个简单的流程可以无缝完成此转移?
两台服务器都运行着相同版本的 nextcloud 快照。一台服务器运行的是 Ubuntu 20.04,另一台运行的是 Ubuntu 22.04.1
答案1
如果你真的想要将用户帐户及其数据从 Nextcloud 的一个实例迁移到另一个实例,然后查看https://docs.nextcloud.com/server/22/admin_manual/maintenance/migrating.html有关 Nextcloud 的说明,了解如何:
- 将您的服务器置于维护模式。
- 从系统#1 转储数据库。
- 将转储导入系统#2。
- 将数据文件从系统 #1 复制到系统 #2。
尝试迁移 snap 包通常是徒劳的。snap 是只读的。snap 不包含用户帐户或用户数据。将 snap 移至其他系统将为您提供一个空的 Nextcloud 安装,其中没有用户或数据。
- 所有用户帐户和数据都在数据库和数据文件中。这就是需要迁移的内容。
答案2
如果你希望有一个命令让整个过程变得不那么繁琐,那么你很幸运!Nextcloud snap 有一个用于执行迁移的内置实用程序。链接是他们的 GitHub wiki,所以可能会移动。我通过搜索“nextcloud snap data backup”找到了它。
简短版本是:运行sudo nextcloud.export
,它将在中生成一个目录/var/snap/nextcloud/common/backups/
。
在新服务器上运行,sudo nextcloud.import <backupdir>
它将用备份替换您现有的 nextcloud 安装。
我通过将旧硬盘插入服务器并nextcloud.import
直接在备份文件上运行来实现这一点,但您的方法可能有所不同。对我来说有两个注意事项:首先,我的 nextcloud 设置为将数据放在不同的硬盘上,但脚本在默认位置查找它(不检查配置)。我使用符号链接使数据可访问,正如/var/snap/nextcloud/current/data
脚本所期望的那样。其次,在恢复时,数据必须处于 snap 限制中,因此我使用绑定安装使外部硬盘可在 snap 中访问。
希望有帮助!