Subject RE: [firebird-support] Firebird backup on virtual machine
Author Leyne, Sean
> I have to run Firebird 2.5 in Windows 2012R2 on VMware cluster. All VM
> machines will be regularly backup with Veeam Backup. I red that such
> backups could cause database file corruption (inconsistency) within the
> backup. Is there any method to prevent it?

Veeam should not create file corruptions, but rather the backup of the database could have data from uncommitted transactions, although present in the db file, would be ignored by the engine (might show up in the log file).

There is not much which can avoid this, since the database would need to be shutdown in order to get a "perfect" database copy -- which is not really feasible for 7x24 operations.

You can test the effect by creating a VM with a database with a table that has a large number of rows. Then create a script which repeatedly does "UPDATE Table SET CounterColumn = CounterColumn + 1;", then while the script is running create a Veeam backup and then restore the VM. On the restored VM/database then execute "SELECT Count(*) FROM Table WHERE CounterColumn IS NOT NULL" -- see what happens. The command should complete without error (though it could be slower as the cleans up the old record versions/garbage collection)

> May by there is some way to use nbackup lock future with windows shadow
> copy to support such solution.
> Are there any plans to support VSS on Windows in Firebird?

All that nbackup would do is to "quiesce" the original database file, but uncommitted data would still exist in the file -- the 'commit' would only be visible in the nbackup delta file (so, not part of the original database file)

There has been talk of adding VSS support but in reality, the effect would be the same as nbackup operations. The original database file would be "quiesced" and a delta file created. So, any copy of the database file would contain uncommitted transactions.