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, из стандартного растягивающего репо. Итак, я сделал следующее:
- установлены все необходимые пакеты из Debian Pero по умолчанию, которые необходимы для следующего облака
- создал мой следующий облачный vhost
- скопировал
/var/www/nextcloud/
каталог на новый сервер - сделал 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/