Jump to content
xt:Commerce Community Forum
Sign in to follow this  
gswkaiser

Datenbank-Sicherung mit "mysqldump"

Recommended Posts

Da die Datenbanksicherung mit PHPmyAdmin vergleichsweise lange dauert, und deshalb gerne von der Laufzeit?berwachung der Shared Hoster abgebrochen wird, habe ich mir ein Script entwickelt, dass die Sicherung ?ber das MySQL-Tool mysqldump vornimmt, was wesentlich schneller ist.

Danach wird der Dump mit gzip gezipped, und auch gleich zum Download angeboten.

Das Script setzt voraus, dass im Root-Verzeichnis das Unterverzeichnis DB_backup existiert.

Diese Verzeichnis muss unbedingt ?ber Username/Passwort gesichert werden, damit es niemand sonst ausf?hren kann.

Das Script wurde f?r die 1&1-Plattform entwickelt, sollte aber auf allen (UNIX-basierten?) Servern funktionieren.

================================================================

DB_backup/db_save.php

<?php

 // Bitte hier Ihre Daten eintragen

 $host= 'dbxx.puretec.de';

 $user= 'dbxxxxxx';

 $pass= 'xxxxxxxx';

 $db=  'dbxxxxxxx';



$subdir = "DB_backup";

$path = getenv('DOCUMENT_ROOT')."/".$subdir;

$name = "dumpDB.sql.gz";

// Befehl ausf?hren und in Zipfile speichern


$command = sprintf(

  'mysqldump --opt -h%s -u%s -p%s %s | gzip > %s/' . $name,

  $host,

  $user,

  $pass,

  $db,

  $path

  );


system($command);   	//Execute dump	


define('OFFER_DOWNLOAD', true);  //Offer download after dump

//define('OFFER_DOWNLOAD', false); 	//Do not offer download after dump


if(OFFER_DOWNLOAD)

{

	if($file = fopen($path, 'rb'))

	{


 header("Cache-Control: no-cache, must-revalidate");

 header("Pragma: no-cache");

 header("Content-Type: application/octet-stream");

 header("Content-Length: " .(string)(filesize($path)) );

 header('Content-Disposition: attachment; filename="'.$name.'"');

 header("Content-Transfer-Encoding: binary\n");

 if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE"))	//Special treatment for MS IE

 {

 	header("Location: ".$name);   // Just point to file as new URL

 }

 else

 {

 	$path .= "/".$name;

 	while( (!feof($file)) && (connection_status()==0) ){

  print(fread($file, 1024*8));

  flush();

 	}

 	fclose($file);

 }

	}

	else

	{

 die("Datei '" . $path . "' kann nicht ge?ffnet werden!");

	}

}?>

Share this post


Link to post
Share on other sites

W?re ja sch?n wenn das im Supportbereich angebotene Migrationsscript auch mit der aktuellen Version funktionieren w?rde aber leider versteht MySql die Datens?tze nicht.

Jetzt bin ich Sponsor und genauso weit wie vorher. H?tte ich mir denken k?nnen.

Auch die VPN Angabe wurde lediglich f?r product_info Seite gedacht. Der VPN Preis sollte aber an jeder Stelle sein wo mit einem Preis geworben wird.

Und bevor ich mich auf Auslegungen verschiedener Richter einlasse setze ich xt nicht ein.

Solange sollte man noch warten bis entsprechende ?nderungen erfolgt sind. Dann sind die vielen Erweiterungen sofern diese nicht auch fehlerhaft bzw. unzureichend sind sicher eine gute Wahl. Meine Meinung.

Ich benutze ein einfacheres php script welches lediglich ein backup direkt von server einspielt oder anlegt. Ist nur 1 Zeile.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...