That's like saying immortality is trivial modulo death and whatnot. If you don't integrate with sqlite's locking system, you can easily "backup" a file mid-write, corrupted and unusable.
That's why sqlite has a built-in backup command.
There are ways around this (filesystem snapshots and potentially file locking) but it's not trivial and failing to handle this correctly is a very good way to build a system which passes tests under low load (when the file-copying operation will win all the relevant races) but fail catastrophically under heavy load.
.backup ?DB? FILE Backup DB (default "main") to FILE
https://sqlite.org/cli.htmlWhat you are proposing may be trivial but in comparison it might just as well be rocket science. Doing more work to use a simpler database that is harder to setup and has less features is not exactly compelling.
RECOVER DATABASE UNTIL TIME '2021-10-01 02:00:00' USING BACKUP CONTROLFILE;
SQLite does not implement such a feature.EDIT: or maybe the Session Extension [2]
[0]: https://www.sqlite.org/sqldiff.html
See the -timestamp option here: https://litestream.io/reference/restore/