Hallo beisammen!
Ich sichere meine MySQL-Tabellen über ein PHP-Script, das via Cronjob alle 8 Stunden aufgerufen wird.
Das hat die letzen Monate wunderbar funktioniert.
Aber seit heute um 13 Uhr läuft die Sicherung nicht mehr durch.
Der letzte Erfolgreiche Aufruf war heute Nacht um 04:55 Uhr.
Beim nächsten um 12:55 Uhr brach die Sicherung nach ein paar Tabellen ab.
Meldung:
Fatal error: Allowed memory size of 104857600 bytes exhausted (tried to allocate 14682616 bytes) in /kunden/222772_84172/....php on line 105
Ich habe jetzt verschiedenste Tests laufen lassen und interessant ist dabei, dass die Sicherung auffallend früh abbricht.
Schon nach 27 Dateien/Tabellen - die gesamte Sicherung, die heute Nach noch durchlief hat dagegen 47 Dateien/Tabellen.
HIer das Script, welches ich für die Sicherung verwende - wie gesagt, daran wird's wohl nicht liegen, aber vielleicht ist es hilfreich:
Bevor ich mich jetzt daran mache, das Problem zu umgehen (in dem ich z.B. das Backup in mehrere Teile aufgliedere) wollte ich fragen, ob sich bei DF irgend etwas geändert hat.
Weiß da jemand etwas?
Ich finde es so seltsam, dass so plötzlich diese Meldung zur Speicherbegrenzung kommt, wo es doch ein paar Stunden vorher noch funktioniert hat ...
Danke und herzliche Grüße
Anton
Ich sichere meine MySQL-Tabellen über ein PHP-Script, das via Cronjob alle 8 Stunden aufgerufen wird.
Das hat die letzen Monate wunderbar funktioniert.
Aber seit heute um 13 Uhr läuft die Sicherung nicht mehr durch.
Der letzte Erfolgreiche Aufruf war heute Nacht um 04:55 Uhr.
Beim nächsten um 12:55 Uhr brach die Sicherung nach ein paar Tabellen ab.
Meldung:
Fatal error: Allowed memory size of 104857600 bytes exhausted (tried to allocate 14682616 bytes) in /kunden/222772_84172/....php on line 105
Ich habe jetzt verschiedenste Tests laufen lassen und interessant ist dabei, dass die Sicherung auffallend früh abbricht.
Schon nach 27 Dateien/Tabellen - die gesamte Sicherung, die heute Nach noch durchlief hat dagegen 47 Dateien/Tabellen.
HIer das Script, welches ich für die Sicherung verwende - wie gesagt, daran wird's wohl nicht liegen, aber vielleicht ist es hilfreich:
PHP-Code:
mysql_query("SET NAMES 'utf8'");
$tables = '*';
//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}
$return='';
//cycle through
foreach($tables as $table)
{
if ($table != 'Messages' AND $table != 'Listen_Elemente') {
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);
$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";
for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = str_replace("\n","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
//save file
$filename = 'backup/db-backup-'.$table.'-'.date("Y-m-d-H-i-s", time()).'.sql';
$handle = fopen($filename,'w+');
fwrite($handle,$return);
fclose($handle);
echo '<br/><b>'.$table.'</b> <span style="color:gray;">('.$filename.')</span>';
$return = "";
}
}
Bevor ich mich jetzt daran mache, das Problem zu umgehen (in dem ich z.B. das Backup in mehrere Teile aufgliedere) wollte ich fragen, ob sich bei DF irgend etwas geändert hat.
Weiß da jemand etwas?
Ich finde es so seltsam, dass so plötzlich diese Meldung zur Speicherbegrenzung kommt, wo es doch ein paar Stunden vorher noch funktioniert hat ...
Danke und herzliche Grüße
Anton
Kommentar