docs: add database backup/recovery
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
50d22a2dff
commit
6c4c7a00cf
|
@ -492,6 +492,71 @@ Retrieve the API Key via the browser from a trusted client:
|
||||||
|
|
||||||
{"result": "8ce6ae5d354a4365812b83140ed62e4b"}
|
{"result": "8ce6ae5d354a4365812b83140ed62e4b"}
|
||||||
|
|
||||||
|
### LMDB Database Backup and Restore
|
||||||
|
|
||||||
|
Moonraker uses a [LMDB Database](http://www.lmdb.tech/doc/) for persistent
|
||||||
|
storage of procedurally generated data. LMDB database files are platform
|
||||||
|
dependent, and thus cannot be easily transferred between different machines.
|
||||||
|
A file generated on a Raspberry Pi cannot be directly transferred to an x86
|
||||||
|
machine. Likewise, a file generated on a 32-bit version of Linux cannot
|
||||||
|
be transferred to a 64-bit machine.
|
||||||
|
|
||||||
|
Moonraker includes two scripts, `backup-database.sh` and `restore-database.sh`
|
||||||
|
to help facilitate database backups and transfers.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
~/moonraker/scripts/backup-database.sh -h
|
||||||
|
Moonraker Database Backup Utility
|
||||||
|
|
||||||
|
usage: backup-database.sh [-h] [-e <python env path>] [-d <database path>] [-o <output file>]
|
||||||
|
|
||||||
|
optional arguments:
|
||||||
|
-h show this message
|
||||||
|
-e <env path> Moonraker Python Environment
|
||||||
|
-d <database path> Moonraker LMDB database to backup
|
||||||
|
-o <output file> backup file to save to
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
~/moonraker/scripts/restore-database.sh -h
|
||||||
|
Moonraker Database Restore Utility
|
||||||
|
|
||||||
|
usage: restore-database.sh [-h] [-e <python env path>] [-d <database path>] [-i <input file>]
|
||||||
|
|
||||||
|
optional arguments:
|
||||||
|
-h show this message
|
||||||
|
-e <env path> Moonraker Python Environment
|
||||||
|
-d <database path> Moonraker LMDB database path to restore to
|
||||||
|
-i <input file> backup file to restore from
|
||||||
|
```
|
||||||
|
|
||||||
|
Both scripts include default values for the Moonraker Environment and Database
|
||||||
|
Path. These are `$HOME/moonraker-env` and `$HOME/printer_data/database`
|
||||||
|
respectively. The `backup` script defaults the output value to
|
||||||
|
`$HOME/database.backup`. The `restore` script requires that the user specify
|
||||||
|
the input file using the `-i` option.
|
||||||
|
|
||||||
|
To backup a database for a default Moonraker installation the user may ssh into
|
||||||
|
the machine and run the following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
~/moonraker/scripts/backup-database.sh -o ~/moonraker-database.backup
|
||||||
|
```
|
||||||
|
|
||||||
|
And to restore the database:
|
||||||
|
```shell
|
||||||
|
sudo service moonraker stop
|
||||||
|
~/moonraker/scripts/restore-database.sh -i ~/moonraker-database.backup
|
||||||
|
sudo service moonraker start
|
||||||
|
```
|
||||||
|
|
||||||
|
The backup file contains [cdb like](https://manpages.org/cdb/5) entries
|
||||||
|
for each key/value pair in the database. All keys and values are base64
|
||||||
|
encoded, however the data is not encrypted. Moonraker's database may
|
||||||
|
contain credentials and other sensitive information, so users should treat
|
||||||
|
this file accordingly. It is not recommended to keep backups in any folder
|
||||||
|
served by Moonraker.
|
||||||
|
|
||||||
### Recovering a broken repo
|
### Recovering a broken repo
|
||||||
|
|
||||||
Currently Moonraker is deployed using `git`. Without going into the gritty
|
Currently Moonraker is deployed using `git`. Without going into the gritty
|
||||||
|
|
Loading…
Reference in New Issue