SI dices que te faltan tablas es porque no se guardo del todo la data he indices correspondiente a esas tablas que se 'perdieron' (Al referirme a data he indices me refiero al archivo fisico que guarda esta informacion). Este efecto pudo haber sucedido cuando se rompio el servidor donde estaba xamp, se quedaron datos en el buffer que no llegaron a escribirse a disco fisicamente.. pero para darse esta eventualidad deberia haber estado, el estado autocommit en valor cero o desabilitado... sea cual sea la razon, este tipo de cosas suceden en falla de hardware y puedes perder datos por causa de ello.
Sobre backups automaticos, puedes crear un batch (Si estas en Windows) o un script bash (Si estas en Linux) y guardarlo en tareas programadas con una hora y un dia para realizar el backup. Puedes hacer un dumpeo con mysqldump (Mas o menos asi:
mysqldump --opt --user = tu_usuario --password = contraseña --all-databases > /directorio/backup.sql
Si eliges --all-databases se hara un backup de todos los esquemas disponibles donde el usuario especificado tenga permisos de lectura y lectura/escritura, sino quieres hacer esto y solo quieres hacer backup de 1 esquema (una base de datos y todas sus tablas) entonces en vez de --all-databases colocas el nombre del esquema en su lugar.
Mysqldump lo que hace es hacerte un archivo fisico de todas las estructura logica de las tablas que tengas creadas en dicho esquema o DB. Si quieres hacer algo mas solido (Copiar carpetas y archivos fisicos ) deberias dar uso de mysqlhotcopy (pero solo funciona en tablas con motor myisam y archive) y puede ser que tengas o uses en un futuro un motor transaccional.