I'm currently using an automatic full server back-up tool on my hosting provider (digital ocean). In case any non-wordpress related content or configuration gets corrupted. It's only for catastrophic events.
But, for migrating and wordpress related content back-up I usually use the UpdraftPlus – Backup/Restore plugin. It has separate back-ups for files, attachments, db etc.., it works very well in my opinion. I don't use it very often, usually when I'm about to update multiple plugins or make radical changes to the site. It's pretty neat, as you can download the back-ups and restore them via FTP as well, in case of a full site failure.Best,
If you like my products, don't forget to rate them on codecanyon :)