pocketbase
pocketbase copied to clipboard
Backup restore doesn't work with network mounted storage directory
ENV: ubuntu22.04(x86) v0.22.6
Restore an automatically backed-up file:
Error:
The specific setup is that I mounted an SMB device to /pb_data/storage.(https://github.com/pocketbase/pocketbase/discussions/4631)
It seems the error is unable to rename or mv the mounted network volume.
The error is most likely caused because on backup restore we replace the entire existing pb_data with the content from the backup, which I guess would fail in your case with the custom network mount. The backup restore functionality just wasn't designed with this use case in mind.
For now I'm not planning working on it as I already have enough on my hands but I may consider handling it after the refactoring as there are plans to optimize the backup generation to minimize the write lock time.
Side-note: if you are planning to store a lot of files keep in mind that the current PocketBase backup functionality generates a complete snapshot archive everytime of your pb_data, aka. it is not partial/incremental and could be slow if you are expecting your storage directory to grow several GBs. For those cases I recommend searching for a different and more efficient backup/restore strategy.
Thank you for the great work you've done; I fully understand your busyness.
My current solution involves first stopping the PocketBase service on the server
Then unzipping the backup file, manually replacing the relevant db files, and copying the contents of the storage folder from the backup to the storage directory on the target machine.
So far, no anomalies have been detected. However, I'm not sure if this approach is 'compliant,' or if there are any oversights?
Side-note: if you are planning to store a lot of files keep in mind that the current PocketBase backup functionality generates a complete snapshot archive everytime of your
pb_data, aka. it is not partial/incremental and could be slow if you are expecting your storage directory to grow several GBs. For those cases I recommend searching for a different and more efficient backup/restore strategy.
I plan to use the backup method mentioned in https://github.com/pocketbase/pocketbase/discussions/4254.
My current solution involves first stopping the PocketBase service on the server Then unzipping the backup file, manually replacing the relevant db files, and copying the contents of the storage folder from the backup to the storage directory on the target machine.
Yes, this should work.
I do real time backups locally and to as many places as I want using:
https://github.com/maxpert/marmot-pocketbase-flyio
I need to add NATS KV, so that files are also real time copied too
Hey, are you aware of SQLite’s warnings re: network file usage?
https://sqlite.org/useovernet.html
Adding to that: Pocketbase uses WAL mode, and WAL mode requires that all processes using a database be on the same host:
https://www.sqlite.org/wal.html
I don’t think you’re violating that requirement, but if your database is on a network file system it’s something to be aware of.
@michaellenaghan The above issue has no relation to the WAL mode or the database at all. The network mount is only for the uploaded files (aka. pb_data/storage).