Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/06/2009, 22:02
jdarkname
 
Fecha de Ingreso: mayo-2009
Ubicación: Colombia
Mensajes: 21
Antigüedad: 15 años
Puntos: 0
Respuesta: dump y restore ayuda con esto!!!

te dejo el codigo del restore que utilizo, te permite buscar la copia de la base de datos .sql

Código restore.php:
Ver original
  1. <?php
  2.     if (!isset ($_FILES["ficheroDeCopia"])){ // Se comprueba si ya existe un fichero enviado o aun no.
  3. /* Si aun no existe un fichero enviado, se define un formulario para que el usuario
  4. pueda enviarlo. Este debe ser el fichero de copia de seguridad con la consulta SQL para
  5. recrear la base de datos perdida o estropeada.
  6. En el formulario se deben incluir las clases que definen el aspecto de los distintos elementos,
  7. a partir del fichero de estilos CSS.*/
  8.       $contenidoDeFormulario="  <form action='restore.php' method='post' enctype='multipart/form-data' name='formularioDeRestauracion'";
  9.       $contenidoDeFormulario.="id='formularioDeRestauracion'>\n";
  10.       $contenidoDeFormulario.="    <table width='600' border='0' class=''>\n";
  11.       $contenidoDeFormulario.="      <tbody class=''>\n";
  12.       $contenidoDeFormulario.="        <tr>\n";
  13.       $contenidoDeFormulario.="          <td height='40' colspan='4' class=''><center><b>RESTAURACI&Oacute;N DE COPIA DE SEGURIDAD DE MySQL </td>\n";
  14.       $contenidoDeFormulario.="        </tr>\n";
  15.       $contenidoDeFormulario.="        <tr>\n";
  16.       $contenidoDeFormulario.="          <td width='82' class=''>&nbsp;</td>\n";
  17.       $contenidoDeFormulario.="          <td colspan='2' class=''><font face='georgia'>Indique el origen del archivo de copia: </td>\n";
  18.       $contenidoDeFormulario.="          <td width='60' class=''>&nbsp;</td>\n";
  19.       $contenidoDeFormulario.="        </tr>\n";
  20.       $contenidoDeFormulario.="        <tr>\n";
  21.       $contenidoDeFormulario.="          <td class=''>&nbsp;</td>\n";
  22.       $contenidoDeFormulario.="          <td colspan='2' class=''><input type='file' name='ficheroDeCopia' id='ficheroDeCopia'";
  23.       $contenidoDeFormulario.="size='50'></td>\n";
  24.       $contenidoDeFormulario.="          <td class=''>&nbsp;</td>\n";
  25.       $contenidoDeFormulario.="        </tr>\n";
  26.       $contenidoDeFormulario.="        <tr>\n";
  27.       $contenidoDeFormulario.="          <td class=''>&nbsp;</td>\n";
  28.       $contenidoDeFormulario.="          <td colspan='2' class=''>&nbsp;</td>\n";
  29.       $contenidoDeFormulario.="          <td class=''>&nbsp;</td>\n";
  30.       $contenidoDeFormulario.="        </tr>\n";
  31.       $contenidoDeFormulario.="        <tr>\n";
  32.       $contenidoDeFormulario.="          <td class=''>&nbsp;</td>\n";
  33.       $contenidoDeFormulario.="          <td width='204' align='center' class=''><input name='envio' type='submit' ";
  34.       $contenidoDeFormulario.="id='envio' value='Aceptar'></td>\n";
  35.       $contenidoDeFormulario.="          <td width='226' align='center' class=''><input name='regreso' type='button' ";
  36.       $contenidoDeFormulario.="onClick='javascript:botonCancelar();'";
  37.       $contenidoDeFormulario.="id='regreso' value='Cancelar'></td>\n";
  38.       $contenidoDeFormulario.="          <td class=''>&nbsp;</td>\n";
  39.       $contenidoDeFormulario.="        </tr>\n";
  40.       $contenidoDeFormulario.="      </tbody>\n";
  41.       $contenidoDeFormulario.="    </table>\n";
  42.       $contenidoDeFormulario.="  </form>\n";
  43. /* Se muestra el formulario. */
  44.       echo ($contenidoDeFormulario);
  45.     } else {
  46. /* Si el fichero ya existe, se efectúa la carga del mismo y se inicia su procesado. */
  47. /* Empezamos grabando el archivo de copia en el servidor. */
  48.       $archivoRecibido=$_FILES["ficheroDeCopia"]["tmp_name"];
  49.       $destino="ficheroParaRestaurar.sql";
  50.        echo "<tr><td><br><br><center><font face='verdana'><FONT FACE SIZE='6'>Los datos han sido restaurados exitosamente<br><br></b>";
  51.       if (!move_uploaded_file ($archivoRecibido, $destino)){
  52.         die ("<center>SELECCIONE LA COPIA DE SEGURIDAD A RESTAURAR E INTÉNTE DE NUEVO.");
  53.        
  54.        
  55.       }
  56.  
  57. /* DATOS QUE CAMBIAN EN CADA INSTALACIÓN DE LA APLICACIÓN. */
  58.       $usuario = "adsisena_mosq";
  59.   $clave = "adsi";
  60.   $servidor = "localhost";
  61.   $baseDeDatos = "adsisena_voto";
  62. /* AQUÍ TERMINAN LOS DATOS QUE CAMBIAN EN CADA INSTALACIÓN DE LA APLICACIÓN. */
  63. /* Se conecta con la base de datos elegida. */
  64.       $conexion = mysql_connect($servidor,$usuario,$clave) or die(mysql_error());
  65.       @mysql_select_db($baseDeDatos,$conexion);
  66.  
  67. /* Una vez subido el fichero al servidor, se abre para su lectura, línea a linea. */
  68.       $manejadorDeFichero=fopen ("ficheroParaRestaurar.sql", "r");
  69. /* Se inicializa una variable que se usará para almacenar las consultas antes de
  70. ejecutarlas sobre la base de datos. */
  71.       $consultaSQL="";
  72. /* Mediante un bucle se va a leer el fichero hasta encontrar el final del mismo. */
  73.       while (!feof($manejadorDeFichero)){
  74. /* Se almacena el contenido, línea a línea. */
  75.         $lectura=fgets($manejadorDeFichero);
  76. /* A continuación se comprueba si la línea empieza por "# ". Esto indica que se trata de
  77. un comentario. En ese caso se pasa a la siguiente iteración, ignorando toda esa línea
  78. recién leida. También se pasa a la siguiente línea si la que estamos leyendo no tiene más
  79. contenido que el salto de línea.*/
  80.         if (substr ($lectura,0,2)=="# " || $lectura=="\n") continue;
  81. /* Se determina la longitud de la línea restando el carácter de salto. */
  82.         $longitudLeida=strlen ($lectura)-1;
  83. /* Se elimina el carácter de salto de línea */
  84.         $lectura=chop($lectura);
  85.        
  86. /* Llegados a este punto, la línea leida es parte de una consuilta SQL,
  87. por lo que se incorpora a la variable que contendrá la misma para su
  88. posterior ejecución. */
  89.         $consultaSQL.=$lectura;
  90.        
  91. /* A continuación se comprueba si el último carácter de la ínea es un punto y coma,
  92. lo que determina el final de una consulta SQL. Dado el formato que ha recibido el fichero,
  93. el último carácter puede no ser un caracter válido, por lo que se comprueba si el punto y coma
  94. el último o el penúltimo. */
  95.  
  96.         if (substr($lectura, $longitudLeida-2, 1)==";" || substr($lectura, $longitudLeida-1, 1)==";"){
  97.        
  98. /* Llegados aqui, ya tenemos la consulta SQL lista para su ejecución. */
  99.           mysql_query($consultaSQL,$conexion);
  100.          
  101.           if (mysql_errno()!=0){ // Si se produce algún error, a pesar de todo.
  102.             $mensajeDeError="SE HA PRODUCIDO EL ERROR SIGUIENTE<br>";
  103.             $mensajeDeError.=mysql_errno()."***".mysql_error()."<br>";
  104.             $mensajeDeError.="NO SE HA PODIDO COMPLETAR LA OPERACIÓN.";
  105.            
  106.             die ($mensajeDeError);
  107.           }
  108.          
  109. /* Ahora e limpia la variable donde se almacena la consulta SQL, para empezar con la siguiente. */
  110.           $consultaSQL="";
  111.         }
  112.       }
  113.       fclose ($manejadorDeFichero); // Se cierra el fichero.
  114. /* Se elimina el fichero del servidor. */
  115.    
  116.     }
  117.   ?>

Debes crear un archivo llamado ficheroParaRestaurar.sql y dejarlo en blanco.
Si no te sirve con la opción de examinar avisas y posteo uno que te restaura automaticamente la ultima copia hecha....