Any proper backup solution has to backup in a consistent state. For instance, you wouldn't want to backup the threads table first, then the messages table, and have the messages table reference threads that aren't in the threads table.
To do this properly, the forum software must first make database changes in single commits. I sure hope XenForo is using InnoDB with transactional updates...
Secondly, the backup tool should make a database dump in a single transaction across all tables. This means all the tables are in a consistent state throughout the dumping process. The `mysqldump` command has the convenient option "--single-transaction". This works with transactional tables engines like InnoDB. It doesn't not work with antiquated MyISAM tables. If not using transactional tables, the only option to do a proper dump is to lock all tables, and for that mysqldump has the "--lock-tables" option.
The only reasonable exception for not using transactional tables is for temporary or reproducible data. For instance, there's no need to backup a "who's online" table, so using the MEMORY engine is advisable there.