Migrating to a different server
-If the need arises Nextcloud can be migrated to a different server. A typical -use case would be a hardware change or a migration from the virtual Appliance -to a physical server. All migrations have to be performed with Nextcloud -offline and no accesses being made. Online migration is supported by -Nextcloud only when implementing industry standard clustering and HA solutions -before Nextcloud is installed for the first time.
-To start let us be specific about the use case. A configured Nextcloud
-instance runs reliably on one machine. For some reason (e.g. more powerful
-machine is available but a move to a clustered environment not yet needed)
-the instance needs to be moved to a new machine. Depending on the size of
-the Nextcloud instance the migration might take several hours. As a
-prerequisite it is assumed that the end users reach the Nextcloud instance
-via a virtual hostname (a CNAME record in DNS) which can be pointed at
-the new location. It is also assumed that the authentication method
-(e.g. LDAP) remains the same after the migration.
Warning
-At NO TIME any changes to the ORIGINAL system are required -EXCEPT putting Nextcloud into maintenance mode.
-This ensures, should anything unforseen happen you can go -back to your existing installation and provide your users -with a running Nextcloud while debugging the problem.
--
-
Set up the new machine with the desired OS, install and configure the -Web server as well as PHP for Nextcloud (e.g. permissions or file upload size -limits) and make sure the PHP version matches Nextcloud supported -configuration and all relevant PHP extensions are installed. Also set up -the database and make sure it is a Nextcloud supported configuration. If -your original machine was installed recently just copying that base -configuration is a safe best practice.
-On the original machine then stop Nextcloud. First activate the -maintenance mode. After waiting for 6-7 minutes for all sync clients to -register the server is in maintenance mode stop the application and/or -Web server that serves Nextcloud.
-Create a dump from the database and copy it to the new machine. There -import it in the database (See Backup and Restoring backup).
-Copy all files from your Nextcloud instance, the Nextcloud program files, the -data files, the log files and the configuration files, to the new -machine (See Backup and Restoring backup). The data files should keep -their original timestamp (can be done by using
rsyncwith-toption) -otherwise the clients will re-download all the files after the migration. -Depending on the original installation method and the OS the files are -located in different locations. On the new system make sure to pick the -appropriate locations. If you change any paths, make sure to adapt the paths -in the Nextcloud config.php file. Note: This step might take several hours, -depending on your installation.
-Check the config.php file of the ORIGINAL system to see if it has -the
data-fingerprintset to a non-empty value. If this is the case, make -sure to also run themaintenance:data-fingerprintcommand on the NEW -system, similarly to how it is required when performing a backup restoration (See Restoring backup for details).
-While still having Nextcloud in maintenance mode (confirm!) and BEFORE -changing the
CNAMErecord in the DNS start up the database, Web server / -application server on the new machine and point your web browser to the -migrated Nextcloud instance. Confirm that you see the maintenance mode -notice, that a logfile entry is written by both the Web server and -Nextcloud and that no error messages occur. Then take Nextcloud out of -maintenance mode and repeat. Log in as admin and confirm normal function -of Nextcloud.
-Change the
CNAMEentry in the DNS to point your users to the new -location.
-