#1
| ||||
| ||||
Sicherung der mySQL-DBAbend. Sichert ihr eure mySQL-Tabellen als Backup? Wenn ja, womit und wie oft? Auf dem Server oder auf dem Recher? Würde mich sehr gerne interessieren __________________ .: eBiene Deluxe - dein professioneller Bookmark-Manager im Web :. |
#2
| |||
| |||
Hi Stalker, also ich sichere die Datenbank täglich per Cron-Job. Dazu folgt dann 1-2mal die Woche das Komplettbackup auf USB-Stick. Als Backup-Tool für gelegentliche Sicherungen dient mir nach wie vor phpmyadmin. |
#3
| |||
| |||
ein Cron Job & das in Mysql integrierte Tool mysqldump senden mir täglich eine Mail ;-) |
#4
| ||||
| ||||
Zitat:
__________________ Daniel Richter Immer ein Besuch wert: TVBlogger.de - Aktuelle Nachrichten aus der Welt des Fernsehens |
#5
| |||
| |||
Warum nicht? Ich mache ebenfalls mysqldump per cronjob 1 mal täglich. Alle 2 Tage lade ich mir ein Backup herunter. |
#6
| |||
| |||
Cron-Job...Zitat:
betreibe selbst ein YaBBSE Forum und sichere auch nahezu Täglich via mysqldump des Forums und via PHPMyAdmin. Gerne würde ich mich mit der Materie Cron-Job beschäftigen da ich bei meinem neuen Provider einen frei habe. Brauch ich ein selbstgeschriebenes Skript? Sollten die mir soetwas anbeiten? Wie geht soetwas von statten? Für ein WebBackup nutze ich BTW, klappt sehr gut Geändert von netzopfer (24.06.2008 um 21:04 Uhr). |
#7
| |||
| |||
Vielleicht hilft dir dieses Script weiter: Es liefert keinen Output und besteht aus einer Config-Datei und dem Script. config.inc Code: <?php /*******************************************/ /* MySQL Database Backup */ /*******************************************/ // ------------------------------------------------------------------------------------- // Script configuration: $path = "../../phptmp/"; // backup path $host = "localhost"; // hostname $use_date = 1; // use date in file name $numdb = 2; // number of databases to backup $account[1] = "name"; // any name (used for filename) $user[1] = "wwXXXX"; // DB user $pw[1] = "XXXXXXXX"; // password $databasename[1] = "XXDatenbanknameXX"; // DB $account[2] = "name2"; // any name (used for filename) $user[2] = "wwXXXX"; // DB user $pw[2] = "XXXXXXXX"; // password $databasename[2] = "usr_wwXXXX_1"; // DB ?> backup.php Code: <?php /*******************************************/ /* MySQL Database Backup for Cron Jobs */ /*******************************************/ // ------------------------------------------------------------------------------------- include ("config.inc"); for ($idb = 1; $idb <= $numdb; $idb++) { $conn_id = mysql_connect($host,$user[$idb],$pw[$idb]) or die(mysql_error()); $database = $databasename[$idb]; $zaehler = 0; $start=0; // generate filesuffix if it should be used if($use_date == 1) { $datum = date(Ymd)."_"; } else{ $datum = ""; } $file_name = $path.$datum.$account[$idb].".sql"; $file_old = $path.$database.".old"; $aktime=date("d-m-Y H:i"); $db_name = $dump1."$aktime\n"; $db_name.= $dump2."$database \r\n"; if (file_exists($file_name)){unlink($file_name);} $fd = fopen($file_name,"a+"); fwrite($fd, $db_name); fclose($fd); // Tabellenname Array auslesen und aufbauen $tbl_array = array(); $c = 0; $result2 = mysql_list_tables($database); for($x=0; $x<mysql_num_rows($result2); $x++) { $tabelle = mysql_tablename($result2,$x); if ($tabelle <>"") { $tbl_array[$c] = mysql_tablename($result2,$x); $c++;$zaehler++; } } flush(); // Start Ausgabe und Berechnung for ($y = 0; $y < $c; $y++) { $tabelle=$tbl_array[$y]; // Struktur der Tabelle einlesen $def = ""; $def .= "DROP TABLE IF EXISTS $tabelle; \n"; $def .= "CREATE TABLE $tabelle (\n"; $result3 = mysql_db_query($database, "SHOW FIELDS FROM $tabelle",$conn_id); while($row = mysql_fetch_array($result3)) { $def .= " $row[Field] $row[Type]"; if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'"; if ($row["Null"] != "YES") $def .= " NOT NULL"; if ($row[Extra] != "") $def .= " $row[Extra]"; $def .= ",\n"; } $def = ereg_replace(",\n$","", $def); $result3 = mysql_db_query($database, "SHOW KEYS FROM $tabelle",$conn_id); while($row = mysql_fetch_array($result3)) { $kname=$row[Key_name]; if(($kname != "PRIMARY") && ($row[Non_unique] == 0)) $kname="UNIQUE|$kname"; if(!isset($index[$kname])) $index[$kname] = array(); $index[$kname][] = $row[Column_name]; } while(list($xy, $columns) = @each($index)) { $def .= ",\n"; if($xy == "PRIMARY") $def .= " PRIMARY KEY (" . implode($columns, ", ") . ")"; else if (substr($xy,0,6) == "UNIQUE") $def .= " UNIQUE ".substr($xy,7)." (" . implode($columns, ", ") . ")"; else $def .= " KEY $xy (" . implode($columns, ", ") . ")"; } $def .= "\n); \n"; // Ende Struktur Modul $db = @mysql_select_db($database,$conn_id); $tabelle="".$tabelle; $ergebnis=array(); $tbl_name = $dump3."$tabelle \r\n"; $fd = fopen($file_name,"a+"); fwrite($fd, $tbl_name.$def); fclose($fd); unset($data); if ($tabelle>""){ $ergebnis[]=@mysql_select_db($database,$conn_id); $result=mysql_query("select * from $tabelle"); $anzahl= mysql_num_rows ($result); $spaltenzahl = mysql_num_fields($result); for ($i=0;$i<$anzahl;$i++) { $zeile=mysql_fetch_array($result); $data.="insert into $tabelle ("; for ($spalte = 0; $spalte < $spaltenzahl;$spalte++) { $feldname = mysql_field_name($result, $spalte); if($spalte == ($spaltenzahl - 1)) { $data.= $feldname; } else { $data.= $feldname.","; } }; $data.=") VALUES ("; for ($k=0;$k < $spaltenzahl;$k++){ if($k == ($spaltenzahl - 1)) { $data.="'".addslashes($zeile[$k])."'"; } else { $data.="'".addslashes($zeile[$k])."',"; } } $data.= ");\n"; } $data.= "\n"; } else { $ergebnis[]= $err; } $zeit = (date("d_m_Y")); $fd = fopen($file_name,"a+"); $zeit = time() - $start; $speed = $speed+$zeit; for ($i3=0;$i3<count($ergebnis);$i3++){ fwrite($fd, $data); fclose($fd); } } $groesse = filesize($file_name) / 1024; $place = $place+$groesse; mysql_close($conn_id); } exit; ?> ...und dann in den Account-Einstellungen "backup.php" als Cron-Job wählen. |
#8
| ||||
| ||||
oh das gefällt mir! ich werde mir das mal genauer anschaun thx edit: was mir nicht gefällt: config.inc wird normaler weiße nicht geparst sprich jeder könnte sich die db pws im klartext runterladen! am besten in config.inc.php umbennen und in backup.php anpassen mfg __________________ Björn C. Klein Welt-Held! PunkRockNews.de |
#9
| ||||
| ||||
Zitat:
Mal sehen, vielleicht schreibe ich das in den nächsten Tagen mal um MfG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
#10
| |||
| |||
Zitat:
Kommen gleich Fehler hinter fehler und wenn ich mir das Dumpfile mal so anschaue sieht es etwas merkwürdig aus Code: 05-01-2004 13:51 XXDBNameXX yabbse_banned DROP TABLE IF EXISTS yabbse_banned; CREATE TABLE yabbse_banned ( type tinytext NOT NULL, value tinytext NOT NULL ); yabbse_boards DROP TABLE IF EXISTS yabbse_boards; CREATE TABLE yabbse_boards ( ID_CAT tinyint(4) DEFAULT '0' NOT NULL, ID_BOARD int(11) NOT NULL auto_increment, name tinytext NOT NULL, description text, moderators text, boardOrder tinyint(4) DEFAULT '0' NOT NULL, numTopics int(11) DEFAULT '0' NOT NULL, numPosts int(11) DEFAULT '0' NOT NULL, isAnnouncement tinyint(4) DEFAULT '0' NOT NULL, notifyAnnouncements tinyint(4) DEFAULT '0' NOT NULL, count tinyint(4) DEFAULT '0' NOT NULL, ID_LAST_TOPIC int(11), PRIMARY KEY (ID_BOARD), KEY ID_CAT (ID_CAT), KEY boardOrder (boardOrder) ); insert into yabbse_boards (ID_CAT,ID_BOARD,name,description,moderators,boardOrder,numTopics,numPosts,isAnnouncement,notifyAnnouncements,count,ID_LAST_TOPIC) VALUES ('5','1','Test','Teste bis der Arzt kommt...','test','2','1','5','0','0','1','170'); ... ... ... edit: Das Dumpfile der ForenSW funktioniert? Was habe iuch falsch gemacht? Geändert von netzopfer (24.06.2008 um 21:05 Uhr). |
#11
| ||||
| ||||
Warum ich eigentlich gefragt habe: Ich bin grad dabei eine mySQL-Backup-Applikation zu schreiben. Damit ist es möglich gesamte Datenbank oder auch einzelne Tabellen zu archivieren - auf dem WebServer oder es wird als downloadbare Datei bereitgestellt, im SQL- oder GZ-Format. Es wäre fein, wenn noch jemand, ausser mir , die Anwendung testet. Reports bitte an mich... Schon mal danke! Hier die fast blanke DL-Seite: http://lab.ebiene.de/ P.S: Struktur und Restore kommen noch. __________________ .: eBiene Deluxe - dein professioneller Bookmark-Manager im Web :. |
#12
| ||||
| ||||
Der Vielfalt zuliebge möchte ich noch eine weitere Lösung vorstellen, mit der ich heute unseren neuen Server bei all-inkl.com mit einer 140 MB-Datenbak gefüttert habe: "DumpTimer" von http://www.mywitch.de/usindex.php4. Diese Anwendung finde ich persönlich recht "trickreich". Sie setzt auf eine Kombination aus Win32-Anwendung und PHP-Script und ist mittels inkrementeller Datenströme in der Lage, nahezu beliebig große Datenbanken zu transferieren, ohne in einen Timeout zu laufen. Dazu ist es nicht einmal nötig, daß die DB von außen zugänglich ist, da diese Verbindung über ein PHP-Script hergestellt wird, welches (per Hand bzw. per FTP *g*) auf dem Webspace abzulegen ist. Bei 1&1 haben wir unsere Dumps immer schön über die Konsole mit mySQL-Dump erledigt - jetzt dürfen wir dies ja leider nicht mehr und ich denke, mit diesem Produkt etwas (für uns) brauchbares gefunden zu haben. Grüße, Gérome |
#13
| |||
| |||
|
#14
| |||
| |||
Hat jemand von Euch schon mal mit mysqlhotcopy gearbeitet und kann einige Erfahrungen berichten? Es soll bei größeren Datenbanken das schnellere und sicherere Verfahren sein die Datenbank zu sichern. Aus dem MySQL-Handbuch: Zitat:
__________________ Thomas Babut Gruß, Tomek |
#15
| ||||
| ||||
-> MySQL Backup erstellen (auch bei grossen Datenbanken) hier auch schon ausgiebig diskutiert ich verwende ebenfalls den mysql eigenen Befehl für Backups und sicher die Datenbank 70MB täglich! |
#16
| ||||
| ||||
Online : MySQLDumper MySQLDumper - smart backup for all your web projects Lokal: Dumptimer MySql Sicherung s (MySQL Backup)- Software für MySQL Datenbanken, auch für MySQL Datenbanken im Internet. - RichtSoft __________________ [size=1][URL=http://www.politikstube.de]politikstube - die andere Politikcommunity[/URL][/size] |
Stichworte |
- |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
bestes board ohne MySql? | ernstl | Entscheidungshilfe | 15 | 30.12.2004 18:13 |
Einträge von Heute aus einer MySQL DB auslesen. | Daniel Richter | Programmierung und Datenbanken | 10 | 08.11.2004 18:57 |
MySQL Volltextsuche - Leistungsfähigkeit? | exe | Programmierung und Datenbanken | 8 | 05.05.2004 13:05 |
PHP & MySQL: Lizenzkonflikte wurden gelöst | Michael Przybyla | Boardunity-Talk | 5 | 06.04.2004 21:57 |
forenentwicklung und die neuen mysql lizenzen | Björn | Entwicklung und Konzeption sozialer Software | 4 | 12.11.2003 18:33 |