UUID сопоставление с новым установленным nextcloud

У меня есть вопрос о переносе данных в новую установку nextcloud. У меня есть одноузловый кластер Google Ganeti с несколькими виртуальными машинами, nextcloud и резервные виртуальные машины - единственные виртуальные машины с внешним хранилищем данных. Мастер Ganeti (хост) и все виртуальные машины работают под управлением Ubutuntu 16.04.

  • Для nextcloud у меня есть raid 5, подключенный через nfs от хоста (Ganeti) к гостю (nextcloud) с 2 ТБ данных
  • Я использую samba 4 AD для управления учетными записями пользователей
  • папка пользователя в каталоге данных является UUID пользователей

Теперь я хочу перейти с Ubuntu на debian для мастера Ganeti (хоста), а также для виртуальных машин (гостей). Это означает, что я должен удалить все, сохранить существующий рейд и переустановить хост и гостей. Поэтому при настройке нового 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 я решил перейти с mysql-5.7 на mariadb-server 10.1.37-0+deb9u1, из стандартного растягивающего репо. Итак, я сделал следующее:

  1. установлены все необходимые пакеты из Debian Pero по умолчанию, которые необходимы для следующего облака
  2. создал мой следующий облачный vhost
  3. скопировал /var/www/nextcloud/каталог на новый сервер
  4. сделал sqldump со старого сервера и скопировал его на новый сервер

Первая проблема заключается в том, что в mariadb-сервере 10.1.37 innodb_large_prefix не включен, что вызвало у меня головную боль с некоторыми таблицами при импорте mysqldump. Пока он включен в mysql-сервере 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.

Последним шагом было добавление нового IP-адреса сервера nextcloud к /etc/exports на Ganeti master (host) и для автоматического монтирования общего ресурса в /etc/fstab в новом сервере nextcloud.

И все, все есть и работает отлично.

ПРИМЕЧАНИЕ:

если новый сервер 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 для Debian Buster, который является mariadb-сервером 1:10.3.13-1, innodb_large_prefixснова включается из-за совместимости. Я еще не проверял это все же. https://mariadb.com/kb/en/library/innodb-system-variables/

Другие вопросы по тегам