Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:owncloud:migration]] 

Backup - Restore - Migration bei Owncloud - NextCloud

zur → Übersicht im Anwenderwiki

In den Cloud-Systemen sind bisher keine speziellen Funktionen integriert, die das automatisiert erledigen. Man muss deshalb die Aktionen manuell per Konsolenbefehlen durchführen. Nur für ein Datenbank-Backup gibt es eine noch experimentelle App.

Viele der folgenden Konsolenbefehle enthalten Namensgebungen und Pfadangaben, die der eigenen Installationsumgebung unbedingt angepasst werden muss.

Es gibt zunächst nur 3 Stellen, die gesichert werden müssen, was sich sehr einfach realisieren lässt:

  1. das config-Verzeichnis (z.B. /var/www/owncloud/config)
  2. das data-Verzeichnis (z.B. /home/owncloud)
  3. die Datenbank (hier z.B. mysql mit Namen „owncloud“)

Ggf. muss man noch die Konfiguration des Apache sichern, falls selbst geändert.
Probleme beim Restore können auftreten, wenn das Zielsystem nicht die gleichen Apps wie das Quellsystem unterstützt.

Siehe z.B.:

1. Backup durchführen

Quell-System: Ubuntu 16.04 + Apache2 + mySQL + PHP 7 + OwnCloud 9.1 (Installiert wie bei owncloud9)

Zuerst das System „schlafen“ legen:

# sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
# service apache2 stop

Dann in einem Verzeichnis (z.B. hier /home/backup) das Backup anlegen - ggf die Pfade/Namen dem eigenen System anpassen. Bei Anfrage dann das mySQL-Passwort des DB-Users root angeben - ist in der Regel nicht gesetzt, somit leer.

# mkdir -p /home/backup
# tar -cvzf /home/backup/oc_config.tgz /var/www/owncloud/config
# tar -cvzf /home/backup/oc_data.tgz /home/owncloud
# mysqldump -u root -p owncloud > /home/backup/oc_mysql.dump

Zuletzt das System wieder aufwecken:

# service apache2 start
# sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off

2. Restore durchführen

Ziel-System: Identisch zum Quell-System beim Backup - hier OwnCloud 9.1

Zuerst das System „schlafen“ legen:

# sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
# service apache2 stop

Danach aktuelle Verzeichnisse umbenennen/wegsichern und die tar-Archive auspacken.

# mv /var/www/owncloud/config /var/www/owncloud/config.old
# mv /home/owncloud /home/owncloud.old
# tar -xvzf /home/backup/oc_data.tgz -C /
# tar -xvzf /home/backup/oc_config.tgz -C /

Optional: alte Datenbank sichern:

# mysqldump -u root -p owncloud > /home/backup/oc_mysql.dump.old

Dann Datenbank löschen und die Datenbank-Sicherung einspielen (Einen Befehl zum „Leeren“ kennt mySQL nicht). Die bisherigen Zugriffsrechte sollten dabei erhalten bleiben. Bei Anfrage dann das mySQL-Passwort des DB-Users root angeben - ist in der Regel nicht gesetzt, somit leer.

# mysqladmin -u root -p drop owncloud
# mysqladmin -u root -p create owncloud
# mysql -u root -p owncloud < /home/backup/oc_mysql.dump

Zuletzt das System aufwecken:

# service apache2 start
# sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off

3. Migration OwnCloud 9.1 -> NextCloud 10.0

Quell-System: Ubuntu 16.04 + Apache2 + mySQL + PHP 7 + OwnCloud 9.1 (Installiert wie bei owncloud9) mit LDAPS und aktivierter Kalender-App
Ziel: Nextcloud 10.0 am selben Ubuntu-Server

Zuerst am Quell-System ein Backup der OwnCloud wie bei Punkt 1 durchführen.
Jetzt auf dem System zusätzlich die NextCloud installieren (wie bei → nextcloud10).

Zuerst das NextCloud-System „schlafen“ legen:

# sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
# service apache2 stop

NextCloud-Verzeichnisse löschen, die OwnCloud-Archive auspacken und an die richtige Stelle zu NextCloud schieben:

# rm -r /var/www/nextcloud/config
# tar -xvzf /home/backup/oc_config.tgz -C /home/backup
# mv /home/backup/var/www/owncloud/config /var/www/nextcloud

# rm -r /home/nextcloud
# tar -xvzf /home/backup/oc_data.tgz -C /home/backup
# mv /home/backup/home/owncloud /home/nextcloud

(Könnte man durch direktes Kopieren natürlich einfacher haben …)

Die Konfigurations-Datei /var/www/nextcloud/config/config.php muss nun an folgenden Stellen editiert werden. Je nach Konfiguration sind jedoch weitere Stellen in der Datei zu ändern.

   ...
  'datadirectory' => '/home/nextcloud',
  'overwrite.cli.url' => 'http://oserver/nextcloud',
  'dbname' => 'nextcloud',
  'dbuser => 'nextadmin',
  'dbpasswort' => '12345678',
   ...

Das 'dbtableprefix' muss nicht geändert werden, ebensowenig die memcache-Optionen.

Jetzt die Datenbank einspielen:

# mysqladmin -u root -p drop nextcloud
# mysqladmin -u root -p create nextcloud
# mysql -u root -p nextcloud < /home/backup/oc_mysql.dump

Zuletzt das NextCloud-System upgraden und aufwecken:

# service apache2 start
# sudo -u www-data php /var/www/nextcloud/occ upgrade
# sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Erstes Ergebnis für die NextCloud 10.0 bei meinem einfachen Testsystem:

  • Die Kalender-App musste in der NextCloud zunächst aktiviert werden, danach waren die Kalendereinträge wieder vorhanden.
  • Der Administrative Benutzer der Weboberfläche heißt nun im Ziel-System so wie im Quell-System, nämlich „oadmin“! Wer möchte kann man damit manuell einen Benutzer „nextadmin“ anlegen und ihn in die Gruppe „admin“ setzen.
  • LDAP funktionierte.
  • Dateien waren vorhanden.
 [[anwenderwiki:owncloud:migration]] anwenderwiki/owncloud/migration.txt · Zuletzt geändert: 2016/09/05 23:12 von 127.0.0.1