DR guide step 7 for rc2; changelog; version 0.9.8
This commit is contained in:
+29
-1
@@ -9,8 +9,36 @@ instead carried by the app description, the git tag, the release, and this file.
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
Fixes from a full disaster recovery test of a production instance (about 1 TB, Nextcloud
|
||||||
|
All-in-One onto a plain Nextcloud with PostgreSQL).
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- `docs/DISASTER-RECOVERY.md`: step-by-step guide for when your server is gone.
|
||||||
|
- `occ backup:restore:full --install-apps` installs (from the app store) or enables the apps the
|
||||||
|
old server had enabled, before the restore starts.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- A fuller app store description, ready for 1.0.0.
|
- Backups record the structure of every database table. A full restore creates tables that do not
|
||||||
|
exist on the new instance, for example those left behind by an app that was removed long ago or
|
||||||
|
is switched off, instead of stopping at the first one.
|
||||||
|
- A full restore no longer refuses when apps are missing: it restores their data and lists the
|
||||||
|
apps to install afterwards. `nextcloud-aio` is never required, so a backup of Nextcloud
|
||||||
|
All-in-One can be restored onto a plain Nextcloud.
|
||||||
|
- All problems are listed at once, with the app each missing table probably belongs to. For
|
||||||
|
backups made before this version, `--skip-missing-tables` leaves out tables whose structure is
|
||||||
|
unknown.
|
||||||
|
- A fuller app store description, ready for 1.0.0, and a note on paid restore help by Ensembia.
|
||||||
|
- README: switching the server to TCP BBR made backups over a long distance about 3 times faster.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- A full restore failed on foreign keys (for example those of the Mail app), because tables are
|
||||||
|
restored in name order. Foreign keys are now checked after all rows are loaded, before the
|
||||||
|
restore commits.
|
||||||
|
- `occ backup:target:add` without a key pointed to `backup:key:init`, which makes a new key that
|
||||||
|
cannot read existing backups. It now points to `backup:key:import` for a restore, and says that
|
||||||
|
connecting to a location with backups can take a while.
|
||||||
|
- Removing a location left its cached index in the database (tens of thousands of rows for a large
|
||||||
|
backup). It is removed with the location now, and once for locations that are already gone.
|
||||||
|
|
||||||
## [1.0.0-rc.1] - 2026-10-17
|
## [1.0.0-rc.1] - 2026-10-17
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@ welcome: use the "Share your experience" link on the admin page.
|
|||||||
|
|
||||||
Developed and sponsored by [Ensembia](https://www.ensembia.com), which also offers paid help with
|
Developed and sponsored by [Ensembia](https://www.ensembia.com), which also offers paid help with
|
||||||
restoring a backup after a crash.]]></description>
|
restoring a backup after a crash.]]></description>
|
||||||
<version>0.9.7</version>
|
<version>0.9.8</version>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author mail="dillard.blom@ensembia.com">Dillard Blom</author>
|
<author mail="dillard.blom@ensembia.com">Dillard Blom</author>
|
||||||
<namespace>NgBackup</namespace>
|
<namespace>NgBackup</namespace>
|
||||||
|
|||||||
@@ -76,18 +76,21 @@ with a different key").
|
|||||||
|
|
||||||
occ backup:list offsite
|
occ backup:list offsite
|
||||||
|
|
||||||
**7. Install the apps the old server had.** Run the restore; before it changes anything it checks
|
**7. Start the restore, and let it install the apps.**
|
||||||
the apps and stops with what is missing:
|
|
||||||
|
|
||||||
occ backup:restore:full offsite <snapshot>
|
occ backup:restore:full offsite <snapshot> --install-apps
|
||||||
|
|
||||||
- "install these apps first: …": install each from the app store (`occ app:install <app>`), or
|
`--install-apps` first installs every app the old server had enabled from the app store (or
|
||||||
enable it if it is part of Nextcloud but switched off (`occ app:enable <app>`, for example
|
switches it on, if it is part of Nextcloud). Tables of apps that are missing or were removed long
|
||||||
`admin_audit`). Apps that are not in the app store: copy them into `custom_apps` and enable them.
|
ago are created from the backup, so they do not stop the restore.
|
||||||
- "Table … does not exist here": an app that was removed or switched off long ago left tables
|
|
||||||
behind. Install that app (for example `deck`, `onlyoffice`), then run the restore again.
|
|
||||||
|
|
||||||
Repeat until the restore starts.
|
At the end it lists the apps it could not install, usually your own builds that are not in the
|
||||||
|
app store. Copy those into `custom_apps` and enable them (`occ app:enable <app>`); their data is
|
||||||
|
already restored.
|
||||||
|
|
||||||
|
Backups made before 1.0.0-rc.2 do not record the structure of their tables. If the restore lists
|
||||||
|
tables that do not exist here, install the apps they belong to and run it again, or leave them
|
||||||
|
out with `--skip-missing-tables`.
|
||||||
|
|
||||||
**8. Let the restore run.** It restores the database, then the data directory, and takes hours for
|
**8. Let the restore run.** It restores the database, then the data directory, and takes hours for
|
||||||
a large backup. If it stops halfway, fix the cause and run the same command again with `--force`.
|
a large backup. If it stops halfway, fix the cause and run the same command again with `--force`.
|
||||||
|
|||||||
Reference in New Issue
Block a user