\n
MySql - DB-Restore\n";
echo "\n\n";
echo "\n";
echo "\n\n";
// Datei oeffnen
$f = ($gz) ? gzopen($path.$filename,"r") : fopen($path.$filename,"r");
if ($f)
{
// Wenn GZ-Komprimierung aus ist, koennen wir mit Hilfe der Filegroesse
// ausrechnen, wieviel Prozent der Datei fertig sind.
// Bei GZ=1 geht es nicht, weil sich der Offset auf die ungepackte Groesse
// bezieht und somit nicht ins Verhältnis zur Dateigroesse gestellt werden kann.
if ($gz==0) $filegroesse=filesize($path.$filename);
$sql_command=array();
// Dateizeiger an die richtige Stelle setzen
($gz) ? gzseek($f,$offset) : fseek($f,$offset);
// Jetzt basteln wir uns mal unsere Befehle zusammen...
$a=0;
WHILE ( ($a<$anzahl_zeilen_restore) && (!$end) )
{
$befehl="";
// Einen MySQL-Befehl holen. Solange, bis wir wirklich etwas sinnvolles haben...
WHILE ( ($befehl=="") && (!$end) ) { $befehl=get_sqlbefehl();}
if ($befehl=="end of file")
{
// Am Ende der Datei angekommen - Schleife verlassen
$end=true;
break;
}
else
{
$sql_command[$a]=$befehl;
$a++;
}
}
// Offset merken, um beim naechsten Seitenaufruf an die richtige Stelle zu springen
$offset= ($gz) ? gztell($f) : ftell($f);
if ($gz) gzclose($f); else fclose($f);
// Und jetzt koennen wir unsere MySQL-Befehle an die Datenbank schicken
$link = mysql_connect($dbhost, $dbuser, $dbpass) or die("Keine Verbindung zur Datenbank möglich!");
mysql_select_db($dbname) or die("
Fehler:
Auswahl der Datenbank '".$dbname."' fehlgeschlagen!\n");
for ($i=0;$i";
echo "Fehler beim Eintrag des Befehls:
".$sql_command[$i];
die();
}
}
}
if (!$end)
{
// Noch nicht fertig? - Dann Anzeige der Infos und Selbstaufruf durch Javascript
$aufruf=$aufruf+1;
if (!$gz) $prozent=($offset*100)/$filegroesse;
echo "Wiederherstellung
";
echo "der Datenbank '".$dbname."' auf '".$dbhost."'.
";
echo "
";
if ($table_ready>0) echo $table_ready-1; else echo "0";
echo " Tabellen wurden komplett wiederhergestellt.";
echo "
Bisher wurden ";
echo number_format(($aufruf*$anzahl_zeilen_restore)-$table_ready,0,",",".")." Datensätze erfolgreich eingetragen.";
echo "
Momentan wird die Tabelle '".$actual_table."' mit Daten gefüllt.
";
if (!$gz) echo "
".number_format(sprintf("%.4f",$prozent),4,",",".")." % der Datei eingetragen.";
echo "";
}
else
{
// Uff, geschafft! Jetzt darf die Leitung wieder abkuehlen. :-)
echo "Wiederherstellung
";
echo "der Datenbank '".$dbname."' auf '".$dbhost."'.
";
echo "
Herzlichen Glückwunsch.";
echo "
Die Datenbank wurde komplett wiederhergestellt.";
echo "
Alle Daten aus der Backupdatei wurden erfolgreich in die Datenbank eingetragen.
";
echo "
Alles fertig. :-)";
echo "
Hier geht es zurück zum Kontrollzentrum";
}
}
else echo "Ich konnte die Datei '".$path.$filename."' nicht öffnen.";
echo "\n\n