I have multiple MySQL database servers running in virtual machines on my Proxmox VE cluster, and I’m trying to determine the best method to back them up effectively.
I’m considering using Veeam since we already utilize it for our other backup solutions. However, I’ve noticed that the existing integration with Proxmox VE doesn’t allow for pre or post backup commands or scripts.
This is concerning as I need to make sure that the databases are consistent before the backup initiates. Without options to execute commands like mysqldump or flush tables prior to the snapshot, I’m anxious about the reliability of the backups.
Has anyone discovered a solid workaround for this issue? Are there alternative backup solutions that might work more effectively with MySQL on Proxmox? I’m open to recommendations for both paid and free tools.
I ran into this exact problem about six months ago with our Proxmox cluster hosting several production MySQL instances. The snapshot inconsistency issue is real and can cause serious headaches during recovery. What worked for me was implementing a hybrid approach. I set up a simple cron job on each MySQL VM that runs mysqldump every few hours to create logical backups stored locally. Then I use Proxmox Backup Server to handle the VM-level snapshots. This gives me two recovery layers - the consistent database dumps for granular recovery and the full VM snapshots for complete system restoration. For the MySQL side, I also enabled binary logging and configured the databases to use InnoDB with innodb_flush_log_at_trx_commit=1. This significantly improved crash recovery consistency even when snapshots occur during active transactions. The overhead is minimal since the mysqldump runs are staggered across different VMs, and PBS handles deduplication efficiently. Recovery testing showed this approach was far more reliable than relying solely on filesystem-level snapshots of active databases.
Running MySQL backups on Proxmox can definitely be tricky without proper application awareness. Instead of trying to work around Veeam’s limitations, consider using Percona XtraBackup directly within your MySQL VMs. I’ve been using this approach for over a year and it provides hot backups without locking tables or stopping the database service. XtraBackup creates consistent point-in-time backups even during heavy transaction loads, and you can schedule these to run independently of your VM snapshot schedule. The backup files can be stored on NFS shares or local storage that Proxmox can then include in its regular backup cycles. What makes this particularly effective is that XtraBackup handles InnoDB and MyISAM tables properly, ensuring crash recovery consistency. You can also stream backups directly to remote locations using SSH or object storage. The restore process is straightforward and doesn’t require complex coordination between hypervisor and database layers. This eliminates the snapshot timing issues entirely while giving you database-native backup capabilities.
We switched from Veeam to Proxmox Backup Server combined with a dedicated MySQL backup strategy after facing similar consistency issues. The solution involved configuring MySQL with innodb_safe_binlog=1 and implementing automated mysqldump exports to a separate storage location before the scheduled VM backups. I also discovered that enabling MySQL’s innodb_flush_method=O_DIRECT helped reduce the risk of corruption during snapshot operations. For our environment, we use a simple bash script that connects to each MySQL instance, performs a FLUSH TABLES WITH READ LOCK, triggers the backup, then releases the lock. The script runs via systemd timer rather than cron for better logging and failure handling. PBS handles the VM snapshots while maintaining excellent deduplication ratios. This dual approach has proven much more reliable than trying to force application-aware backups through hypervisor-level tools that don’t natively support database consistency checks.
honestly just use bareos with the mysql plugin - it handles database consistency automatically and integrates well with proxmox environments. been running it for 2 years without issues and its free unlike veeam