I run the mysqldump daily. The filesystem backup (at least of the directory tree where XenForo is installed) together with the mysqldump (this holds the user, post, thread, etc. information of your XenForo board) is needed to rebuild the board in case of a crash.
Search indexes are created from the current, existing content of the MySQL server database (i.e. it is redundant information).
There is something.
Use percona and xtrabackup from them. There are no locks. Make hot backups.
My DB is ~ 5GB and i run a daily full backup and every 3 hours an incremental.
You don't even recognize that's a backup is running.