Hola Carlos,
si en dónde corre la aplicación podés hacer llamadas a ejecutables, el utilitario mysqldump hace exactamente esto.
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
Si no podés ejecutar comandos externos o simplemente lo querés hacer como parte de la aplicación, nosotros hace tiempo que usamos esta clase:
http://www.phpclasses.org/package/1066-PHP-MySQL-backup-class.html
que puedes agregar a tu proyecto y usarla para hacer backups. Tiene como contra, no la clase sino el usarla vía un script PHP ejecutado por el módulo de Apache, que si el tiempo que tarda es demasiado porque hay muchos datos, tal vez se interrumpa el proceso por llegar al límite de ejecución del script. En ese caso podés llamarla vía CGI o si el servidor es tuyo, aumentar el tiempo de ejecución.
Saludos cordiales!