On Mon, May 13, 2019 at 3:47 PM Derek Atkins <derek@ihtfp.com> wrote:
Strahil <hunter86_bg@yahoo.com> writes:

> Another option is to create a snapshot, backup the snapahot and merge
> the disks (delete the snapshot actually).
> Sadly that option doesn't work with Databases, as you might inyerrupt
> a transaction and leave the DB in inconsistent state.

Yet another reason to do it from inside the VM.

Actually doable, depending on DB architecture and if some "logging/archiviing" supported/enabled on database.
See here related threads where I was involved:
and here:

When you install qemu-guest-agent (in my case version 0.12.1.2-2.506.el6_10.1) you also get an example for MySQL in
/usr/share/qemu-kvm/qemu-ga/fsfreeze-hook.d/mysql-flush.sh.sample
and eventually updated code (actually I see it is dated 2013...) here:

In case of PostgreSQL you would need to have WAL enabled and do an Exclusive Low Level Backup, because the pre-snapshot and post-snapshot could not be inside the same RDBMS session connection: 

so the freeze option of your freeze-hook script would contain a call to a connection that runs
SELECT pg_start_backup('label', true);
to minimize time to do checkpoint

and the thaw option would contain
SELECT pg_stop_backup();

This needs also that archives during the elapsed of backup (and the last generaed when stopping backup) are copied in some way externally in respect of the VM OS for complete recoverability, if you don't already have it for your standard archiving policy.

And thoroughly test the whole workflow, both backups and restores, especially when upgrading your software layers, oVirt, VM OS, PostgreSQL....

HIH, 
Gianluca