Database maintenance and backup

I am using bacula to get backups of our head node, and the nightly incremental backups are quite large, over 30 GB, so I was looking into what comprises so much changed data everyday.

I found mysql-bin files in /var/lib/mysql going back to the beginning about 2.5 years ago… actually that directory only comprises 1.5 GB so it’s not that significant but I didn’t even realize the system was using MySQL.  Either way, I just wanted some feedback on proper maintenance and backup of the databases… I don’t know much in that area, but I do know that taking a straight backup of /var/lib/mysql is improper.

In fact, bacula comes with a mysqldump script that is supposed to be run before the backup starts, then the dumped data files are backed up and I believe the binary data gets pruned or flushed as well.  I’ve included it below.

There looks to be additional databases in various formats in /var/lib/mysql/cmdaemon/, /var/lib/mysql/mysql/, /var/lib/mysql/performance_schema/, and /var/lib/mysql/slurm_acct_db/ as well.

Would using this script still be recommended?  I think some of the options may need to be adjusted and maybe add a few dump commands for the differing databases.  I checked the admin manual and the database setup seems rather complex but it didn’t really mention anything about maintenance/pruning and backups, except for the daily cmd backups that are put in /var/spool/cmd/backup/ which I’m of course already backing up.


# cat mysql_binary_log_dump

if [ "$LEVEL" == "Full" -o "$LEVEL" == "Differential" ]
  echo "Full/Differential"
  mysqldump -u $USER --password=$PASSWORD --flush-logs --master-data=2 --all-databases --delete-master-logs > $DUMPDIR/dump.$$.sql
  mv $DUMPDIR/dump.$$.sql $DUMPDIR/dump.sql
  echo "Incremental"
  mysqladmin -u $USER --password=$PASSWORD flush-logs