UUID 映射到新安装的 nextcloud

UUID 映射到新安装的 nextcloud

我对将数据迁移到新的 nextcloud 安装有疑问。我有一个单节点谷歌 Ganeti 集群,其中有多个 VM,nextcloud 和备份 VM 是唯一具有外部数据存储的 VM。Ganeti 主服务器(主机)和所有 VM 都运行 Ubutuntu 16.04。

  • 对于 nextcloud,我有一个 raid 5,通过 nfs 从主机(Ganeti)连接到客户机(nextcloud),其中包含 2TB 的数据
  • 我正在使用 samba 4 AD 来管理用户帐户
  • 数据目录中的用户文件夹是用户的 UUID

现在我想将 Ganeti 主服务器(主机)和虚拟机(客户机)从 Ubuntu 迁移到 Debian。这意味着我必须删除所有内容,保留现有 raid 并重新安装主机和客户机。因此,当设置新的 samba 4 AD 并再次创建用户时,他们将拥有不同的 UUID。我当前的 samba 版本是 4.3.11-Ubuntu,所以我无法运行备份samba-tool domain backup offline --targetdir=/backup-dir

有没有办法将现有账户的数据迁移到具有新 UUID 的新账户?或者将现有 UUID 重新映射到 CN?

我发现用户的 UUID(即他们的主目录)存储在 mysql 数据库中。

我已经在 nextcloud 社区问过这个问题,但还没有答案。

先谢谢了

答案1

迁移到 Debian 后,我决定从默认的 stretch repo 中将 mysql-5.7 迁移到 mariadb-server 10.1.37-0+deb9u1。因此我执行了以下操作:

  1. 安装了默认 Debian pero 所需的所有软件包,这些软件包是 nextcloud 所需的
  2. 创建了我的 nextcloud vhost
  3. 将目录复制/var/www/nextcloud/到新服务器
  4. 从旧服务器创建 sqldump 并将其复制到新服务器

第一个问题是 mariadb-server 10.1.37 中innodb_large_prefix未启用此功能,这导致我在导入 mysqldump 时对某些表感到头疼。而它在 mysql-server 5.7 中已启用。因此我做了以下操作:

# mysql -u root -p
MariaDB [(none)]> SET GLOBAL innodb_file_format=Barracuda;
MariaDB [(none)]> SET GLOBAL innodb_file_per_table=ON;
MariaDB [(none)]> SET GLOBAL innodb_large_prefix=1;

然后从mysql注销。接下来我创建了nextcloud表并导入了数据库并进行了升级:

mysql -u root -p -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
mysql -u root -p nextcloud < /tmp/nextcloud.sql
mysql_upgrade -u root -p --force

然后我添加了 apache ssl vhost 和 LDAPS 的证书并重新启动了 apache2 和 mysql。

最后一步是将 nextcloud 服务器的新 IP 添加到Ganeti 主机(主机)上,并在新的 nextcloud 服务器中/etc/exports自动挂载共享。/etc/fstab

就这样,一切都准备就绪,并且运行正常。

笔记

如果新的 nextcloud 服务器有不同的主机名,您必须执行以下操作:

  • 替换 apache vhost 中的服务器名称
  • 替换服务器名称/var/www/nextcloud/config/config.php
  • 将 nextcloud.sql 转储中的所有旧服务器名称替换为新服务器名称,然后再将其导入数据库:

    cp nextcloud.slq nextcloud-org.sql
    sed -i 's/old\.cloud\.server/new\.cloud\.server/g' nextcloud.sql
    

完毕

笔记

如果您使用的是 mariadb fro debian buster,即 mariadb-server 1:10.3.13-1 ,则innodb_large_prefix由于兼容性,将再次重新启用。但我还没有测试过。 https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_large_prefix

相关内容