hola, yo uso este codigo para hacer respaldoÑ
Código PHP:
<?php
//fijo el date de hoy
$date_month = date('m');
$date_year = date('Y');
$date_day = date('d');
$Date = "$date_year-$date_month-$date_day";
//Archivo
$filename = "mydb_$Date.sql";
//Datos BD
$usuario = "root";
$passwd = "";
$bd = "virusdb";
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filename");
// Utilización del script para windows o unix. Activar las lineas depende de cada caso
//windows
$executa = "C:\wamp\bin\mysql\mysql5.1.32\bin\mysqldump.exe -u $usuario --password=$passwd --opt $bd";
system($executa, $resultado);
//para Unix
//$executa = "mysqldump -u $usuario --password=$passwd --opt $bd";
//system($executa, $resultado);
if ($resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; }
echo "Creado BackUp";
?>
y para restaurar la DB uso BigDump que permite cargar DB de cualquier tamaño y no es complicado instalar en cualquier sistema php, esta es la direccion
http://www.ozerov.de/bigdump.zip