If the database is modified by the node process during copy then the backup can get corrupted. So the node should be shut down before backing up. However, this obviously stops farming which isn’t ideal and makes automation more complex.
You can run a separate node (that isn’t farming) solely for the purpose of backups but that’s not ideal either.
The ideal way is to use the sqlite backup API which can perform backups safely on live databases.